Software Engineering

Another module I completed in second year was Software Engineering. For this module I got 95% in the coursework assignment and 83% in the exam. The coursework was to create a Booking and Check-In system for a ski centre where I was part of a group of five, but each of us were responsible for only our own part of the project. The main idea of this module was to create software using different design patterns, principles and methodologies, and to have a better understanding of how to create a proper software application.

For this project, we were given a brief to create a booking and checking in software for a ski centre, and according to the business’ requirements we set out what the main five tasks were. We created our solution using Java, which was then integrated together at the end of the project. My part was the actual booking of a session which was combining the registering of a customer and creating a session, which other members of my group did. The below screenshot is an example of how my booking screen looked:

enter_date.png

For this software project, we used the four layered architecture model to separate the different areas of concern. We also used the GRASP Use Case controller pattern to split up the different functionalities of the software. Also, we used many object oriented principles such as polymorphism, to assign alternative behaviour for some functions.

Another aspect of the project was that we used the prototyping model, with our tutor acting as the client. We provided two different prototypes during the semester where we were provided feedback accordingly. We also used version control tool GitHub for us to easily integrate within the group. Unit testing was also required for the final product. We also set out the design for this software using a class diagram and use case documentation, which we had to ensure the criteria were met.

I was particularly proud of this project because I put a lot of effort into it, and I really enjoyed being creative to make my own piece of software and to be able to consider using different software design patterns. I received 95% for this assignment which I was very pleased with because I think it reflected the amount of effort I put in.