Professional Documents
Culture Documents
Page 1 of 3
School of Physics, Engineering and Computer Science
This Assignment assesses the following module Learning Outcomes (from Definitive Module
Document):
• LO4 - Design and implement a substantial software artefact.
• LO5 - Evaluate, choose and employ appropriate data structures and algorithms.
• LO6 - Refactor part of a software item to achieve a specified goal.
• LO7 - Be able to design a test suite, and perform a set of tests.
Assignment Brief:
Submission Requirements:
Students should submit on Studynet the following three items:
1. a single pdf document containing the practical report and UML class diagrams,
2. a zipped folder containing the final source code, and
3. an executable jar file for running the final system.
A detailed mark sheet will be provided; verbal feedback after the marks are released.
Page 2 of 3
School of Physics, Engineering and Computer Science
The Weekend Fitness Club (WFC) needs software for managing bookings made by the customers. The club offers
different group fitness lessons on both Saturday and Sunday. The types of fitness lessons could be SPIN, YOGA,
BODYSCULPT, ZUMBA, etc. Each lesson can accommodate 5 customers at most. For either day (Saturday or
Sunday), there are 2 fitness lessons per day. The lesson prices are different for different types of fitness activities.
However, the same type of lessons will have the same price no matter what time they are run.
A customer who wants to book a lesson has two choices to view the timetable. The first choice is to view by day.
For example, a customer has chosen Saturday, then all the lessons on all the Saturdays will be displayed. The
second choice is to view by the fitness type. For example, a customer has chosen YOGA, then all the YOGA
lessons on all the days in the timetable will be displayed. The customer will then book a lesson according to the
timetable s/he has viewed. Customers are allowed to change a booking, provided there are still spaces available
for the newly selected lesson. A customer can book as many lessons as they want. Customers are also allowed to
cancel a booking before the booked lesson was attended.
After each group fitness lesson, customers can write a review of the lesson they have attended and provide a
numerical rating ranging from 1 to 5 (1: Very dissatisfied, 2: Dissatisfied, 3: Ok, 4: Satisfied, 5: Very Satisfied).
The review and rating information will be recorded in the system. After four weeks (four weekends), the software
system must print:
• a report containing the number of customers per lesson on each day, along with the average rating of each
lesson;
• a report containing the type of fitness lessons which has generated the highest income, counting all the
same type of lessons together.
In your final deliverable, you need to design at least 8 weekends of timetable (i.e., 32 lessons) by yourself and
cover at least 4 different types of fitness lessons. All the customers may be assumed to be pre-registered or you
can provide a function to add customers to the system.
Note: you do not need any kind of external database for this program. The final program should be self-contained.
The reports can be printed to System.out, or output to a suitable GUI interface. You also do not need any kind of
security protocol.
Your tasks:
1. Create a class diagram, highlighting the main Java classes in the system and their associations. Include the
attributes and key methods.
2. Implement the system, using Junit tests to confirm the functionality.
3. Write a short report (no page limit, about 8 pages should be sufficient) explaining your program.
Discuss:
a) Any assumptions made about the system, in addition to the above description.
b) The overall structure and design of your program.
c) Any design patterns/design principles used.
d) The JUnit tests.
e) Any refactoring used during the development of the system.
Deliverables:
A. Develop your code using any version control software. Take snapshots of your project repository and
commit messages. Include the snapshots in your report.
B. Submit to Studynet:
1. Your report with the UML class diagrams in a single PDF document.
2. An executable jar file, demonstrating your final system. The system should have some customer data
preloaded or allow new customer to be added (as described above).
3. A zip-file containing the source code of your project.
Page 3 of 3