Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit




com6516: Object Oriented Programming and Software Design


Assignment    (60 points)

1     The Task

You have a client who is a manager of a swimming pool, now aiming to extend their business to a larger scale sport club. As a rst step to that end, they would like to improve their membership management scheme by replacing a traditional spreadsheet with a bit more modern system using a GUI (graphical user interface).

The client is requesting you to propose a new scheme. Your task is to demonstrate your system design which should be implemented using the object oriented programming language Java.

Loose description for the membership.  A swimming club has recently expanded to accom- modate a gym and some other facilities, also started offering yoga and aerobics lessons for its customers. Customers consist of individual members, family members, and visitors. An individ- ual member should be at least 12 years old on the 1st of September of the current year. A family member should be at least 18 years old and can include themselves, their spouse and children. Both individual and family members are required to pay a membership fee. Any person under 12 years old can use facilities without a fee, if accompanied by a member. A visitor of at least

12 years old can also use facilities without being a member, but by paying a fee for each visit.

Loose description for the fee system. The membership management scheme should be main- tained in a way that the fee income up to the current date from the beginning of the year (1st January of this year) can be calculated easily. An individual member pays a xed monthly fee of 36 pounds and has unlimited access to its facilities, including yoga and aerobics lessons free of charge. A family membership requires 60 pounds per month, with the same benet to all family members as individual members. A visitor pays a fee each time they visit the club how- ever, if someone visits the club frequently, a visitor fee will accumulate substantially more than membership fees.

Apart from the above rough guidline, you may decide the fee system sensibly. In addition to monthly fees, quarterly and yearly fees can be introduced. It may also be possible to apply different fee levels for use of swimming pool, gym, and lessons for visitors. Further, it is your design how to present the fee income using the system.

Core requirement. Each membership information may consist of rst and last names, date of birth, gender, postal address, contact telephone number, and some other information information that may be useful, such as health condition, allergy information, or anything else. An age on the 1st September of the current year, dates for starting and ending the membership, as well as the type of membership and the amount of fee paid, may also be required. The number of visitors per day can be logged into the system separately without their personal information.

A new membership management system using a GUI may require manual entry for many elds, however

        a unique membership number is created automatically and randomly (i.e., not sequen- tially),

        the age on the 1st September of the current year is calculated from the date of birth, and

        the end date for the membership is automatically derived from the start date and the membership type.


 

In addition, the membership management system should be able to (1) load/save the customers data from/to a csv (comma-separated values) format le, (2) add/delete a customer to/from the system, (3) add/revise entries for existing customers, and (4) search any customer record in the system.

You may review the csv format in the following link:

https://en.wikipedia.org/wiki/Comma-separated_values

A sample data le ‘customerlist.csv’ is provided (you may be able to open this le using a text editor, or Microsoft  Excel), that was salvaged from the previously used spreadsheet based membership data. However, there are a few issues. For example, many elds in the the sample data le are incomplete (e.g., blank). Also there exist careless mistakes such as multiple entries of a same person, that should have been avoided. In the new GUI based system, you may be required to handle these issues.

System extensions / sensible changes to the requirements. This part is not a core requirement for this assignment, however read on the following paragraph...

The client is most willing to hear your idea for useful and interesting extension(s) that can be incorporated to the system, as well as sensible change(s) to the core requirement described above, such as the membership structure, the fee system, or the approach to GUI operation. If you are proposing such ideas, you should describe them clearly in the report and demonstrate them by implementing your design using Java.

Constraints on programming. Program code should compile and run on the console command line under Java 16. (However you are free to use an IDE to develop your code.) If needed, you can import the sheffield package as well as any package(s) listed at

https://docs.oracle.com/en/java/javase/16/docs/api/allpackages-index.html but none of other packages.

 

2     Submission

Your submission should consists of a set of Java source code (*.java les) for your demo system and a report that outlines your proposal to the client.

Java code. All source code should be placed within a ‘code’ folder, and the name of the main class should be ‘ClubMembership.java’. The ‘code’ folder should include (1) Java source code (*.java), (2) a sample input le ‘customerlist.csv’, and (3) optionally the entire sheffield package if your system requires it, but nothing else. The ‘code’ folder should not include, e.g., bytecode (*.class), output les, or documentation (e.g., html le), apart from those in the sheffield package.

The marker will use the following two command lines under Java 16:

→    javac  *.java

→    java  ClubMembership

to compile and test your demo system within the ‘code’ folder. If you develop your demo system using some IDE, you should make sure it works from the command line without requiring the marker to change any part of your program code.

 

Report.  Your report is a proposal to the client. The client is not an engineer, however we conveniently assume that the client has a child who studies computer science in some university, helping their parents’ business. Hence, although you should describe your work using plain language, use of UML diagrams is optional and acceptable, where appropriate.

The report must use fonts of 11pt or larger size, and it should not be more than 5 (ve) pages long using A4 size papers. A cover page is not required, but if you create a cover page, it is also counted within the 5 page limit. The report can include not only text, but gures, dia- grams, and/or tables where appropriate. The report must be in the pdf format, and named as ‘yourAccount.pdf’ (e.g., suppose your account is ‘acp99yg’ then the report should be named as ‘acp99yg.pdf’).

Handin procedure.  Suppose your account is ‘acp99yg’, then the ‘code’ folder and the report should be arranged as

 

and zipped into a single le ‘acp99yg.zip’, which is then submitted to Blackboard. Do not use other compression format such as rar, tar, etc. When marking, your handin should be unzipped by ‘unzip  yourAccount.zip’ in a command line.

Before the deadline, you are able to submit your work more than once through Blackboard. If you have made multiple submissions, the last version submitted will be marked.

Late handin rule. For each day late from the handin deadline, 5% will be deducted from your total mark. If the assignment is handed in more than one week late, it will not be accepted (meaning that it results in a mark of 0).

Unfair means. Any work that you handin must be your own as this is an individual assignment. All code submitted may be examined using specialised software to identify evidence of code

written by another student or downloaded from online resources.

You may review the University guidance on unfair means:

https://www.sheffield.ac.uk/ssid/unfair-means/index

 

3     Marking Scheme

The total points allocated for the assignment is 60 points. Your work will be assessed based on the following criteria:

Overall system (20 points)

16-20 Stylishness and originality that stand out from others, in addition to fully satisfying the marking criteria below;

14-15 Construction of a functional system that fully achieves the task requirements; Sen- sible structure for the overall object oriented design and the system, e.g., encapsu- lation, class hierarchies, abstraction;

10-13 The marking criteria above is roughly satised;

0-9 Overall development of the system is not satisfactory;

 

GUI design, use of collections framework, etc. (20 points)

16-20 Stylishness and originality that stand out from others, in addition to fully satisfying the marking criteria below;

14-15 Easy to use, nice looking, clean and fully functional GUI; Sensible choices and the classes structure from the collections framework; Consideration for event handling, where appropriate;

10-13 The marking criteria above is roughly satised;

0-9 Unsatisfactory development for GUI, or use of collections framework, etc.

 

System design, documentation and programming style (20 points)

16-20 The marking criteria below is achieved at an exceptional level;

14-15 Clear description of the design for the demonstration system implemented, includ- ing any extensions and/or some changes that were incorporated; Sensibly structured, clean, unambiguous report (possibly using UML use cases and/or class diagrams); Good programming style — things to be mindful include adequate commenting, clear indentation, layout, sensible naming for elds, methods, classes, etc.;

10-13 The marking criteria above is roughly satised;

0-9 Unsatisfactory system design, documentation and programming style;

 

Point deductions

up to –10 (minus ten) points No deduction if the submitted code is unzipped, compiled and run on a command line without any modication; Deduction of –1 point if the submission contains any le, apart from source code (*.java), sample input (customerlist.csv), the sheffield package, and the report. Further deduction of up to –10 points, depending on the effort made to modify, compile and run the code within a limited amount of marking time;

up to –10 (minus ten) points No deduction if the submitted report follows the handin rule, e.g., the pdf format is used and it does not go beyond the page limit of 5 pages; Deduction of –1 point if the pdf format is not used; Further deduction of –1 point per page beyond the page limit, e.g., –2 points if a report is 7 pages long;