Assignment Task
This assignment is aimed at allowing you to demonstrate a holistic set of skills in object- oriented programming and systems engineering as required for the design and implementation of real- world Internet applications. This includes the adoption of UML-based systems design concepts and Java-based coding techniques ensuring professional software development. You are required to complete a portfolio of tasks related to a specific case study described below. These tasks constitute a comprehensive design of an electronic system to support the core system’s functionality. Consider yourself a senior software engineer delivering this assignment as a stand- alone project for your organisation.
Case study
MyFitness is a local gym catering to individuals aged 18 and above. Customers must register before selecting a membership, with options available for both long-term and short-term subscriptions. Memberships are offered on an annual, monthly, or pay-as-you-go basis.
Members can conveniently view, search for, and book special classes, manage their subscriptions, and make online payments through the MyFitness website/app. Upon completing the registration process, new members receive a welcome email or message confirming their membership and providing key details such as gym hours, contact information, upcoming events, and classes schedule. Members also enjoy access to state- of-the-art equipment, showers, changing rooms, flexible membership options, free Wi -Fi, and MyFitness special sports water during their workouts at the gym. The gym also offers three bootcamp classes in Fat Burn, Fitness & Endurance and Full Body. The bootcamp is available for new and existing members for the duration of 30 days per class. There are five full-time and four part-time staff who are making sure that the gym is safe, welcoming, and a good place to come and train every day. In addition, there are three Fitness expert instructors who organise the exercise programmes of the bootcamp classes.
The membership types and charges are as follows:
- Student saver membership – 20% off for 9 months: Save over £35 on 9 months student saver membership. Equivalent to £15.91 per month, the discounted rates available for students with a valid student ID
- Standard Memberships – from £20.99 a month + £5 joining fee: Members have access to the gym’s services 24/7. Also, members can freeze their membership once for free, bring a friend 4 times per month. Track fitness and body composition (where available)
- Pay-as-You-Go Memberships – Complete flexibility just pay when you go, from £4.95 per visit. 30 days to use it.
- Discount Membership Rates: Discounts can range from 10% to 50% off the regular membership price. Eligibility: Often available for new sign-ups, students and senior citizens.
Task 1
Draw a UML Class diagram that correctly represents the scenario detailed within the case study described above. Briefly describe your class diagram, the relationships and cardinality with appropriate justification. (Equivalent 800 Words)
Task 2
Write a Java program to code the UML class diagram from Task 1 to show only the Base classes, as this will be further developed within Task 3. You should describe and justify the attributes and operations for each class you have written. Add appropriate methods to set and get the instance variables in the classes. Test your code for robustness. Include screenshot evidence of execution and obtained output. (Equivalent 800 Words)
Task 3
(Mini Project)
As the gym administrator, the CEO has asked you to create a Java application, to replicate the process of managing memberships by applying appropriate object-oriented programming methodologies. The program should handle multiple queries on the members and staff related to book classes, manage their memberships and make online payme nts through MytFitness website/app, and support the following functionality:
- Updating gym records by adding or removing memberships.
- Display the membership details of a member including how many days/months left.
- Managing bootcamp class memberships by adding or removing participants to the classes and instructors.
This task will be divided into three parts, constituting a mini project.
- Using the class and object diagrams created in response to Task 1, select the appropriate base classes and decide how many derived classes are appropriate to make the code as efficient as possible and implement the hierarchy in Java. Write the Java code for the base classes and derived classes.(20 marks)
- Assume the database for this task is composed of multiple ArrayLists. Include dummy data representing both full-time and part-time staff, along with their availability for bootcamp classes. Demonstrate the functionality for different membership types and the management of the bootcamp classes. Implement these interactions in Java and validate them by printing relevant details, such as member’s name, phone number, instructor’s name, and bootcamp class details for each test case. (20 marks)
- Set the bootcamp class fees in part (b) at £35.50 per month for new customers, with a 7% discount applied if they enrol in two or more bootcamp classes. Demonstrate this functionality as an abstract method defined in an abstract class/interface. Demonstrate how the full functionality of this abstract method can be implemented in Java. (20 Marks) (Equivalent 800 Words)
Learning outcomes (LO)
By completing this assessment, you will have shown and be assessed on all four of the learning outcomes:
- LO1 Demonstrate an understanding of object-oriented programming principles e.g. inheritance, interface and abstract classes.
- LO2 Demonstrate and understanding of key concepts and modelling techniques in object-oriented analysis and design
- LO3 Analyse a set of system requirements and design, develop and test a solution which satisfies those requirements using an object-oriented programming language.

