代写 algorithm Scheme GUI Java junit UML compiler software SOFT251: Object-oriented Programming

SOFT251: Object-oriented Programming
Coursework Assignment 2018/2019
Assignment Brief
Assignment Title:
Submission Deadlines: Submitted at:
Contribution to final grade: Individual / Group assignment Module:
Module Leader: Scenario:
Requirements
Object-oriented Programming
23:59 on 10 February 2019
Online through the DLE site
SOFT251 – 70%
Individual
SOFT 251: Object-oriented Programming
Dr Alma Rahat (alma.rahat@plymouth.ac.uk)
(modified by Dr Ronald Mo (ronaldkmo@gmail.com)) Please see Appendix 1: Scenario.
You are required to produce a Java web application that meets the requirement specification in Appendix 1 of this assignment. This application should follow the MVC pattern (as defined in lecture). In addition, your data model design must use at least two other software design patterns covered in the course.
You are required to use test driven development (TDD) to create your solution to the scenario. Your solution should be implemented in the Java programming language using the NetBeans IDE. The implementation should contain two NetBeans projects as follows:
1. A Java Class Library containing the implementation of your data model as per your UML Class diagram. This project should also include the set of JUnit tests used to create your data model. The data model should have a full set of documentation generated for it using the Javadoc tool. It is not sufficient to simply mark-up your classes you MUST GENERATE the Javadoc web site. A 5% marking penalty will be applied if this is not done.
2. A Java NetBeans project which provides a Java web project front end for your application. This project MUST make use of the classes in your Java Class Library (see 1 above). The GUI should provide the functionality listed in Appendix 1: Scenario.
You MUST use git version control with bitbucket.org in your development process. You MUST add the module leader (user arahat in bitbucket or AlmaRahat in github) to your repository. You will be assessed on appropriate use of version control.
In addition to the software you are also required to write a short reflection on the design and implementation of your solution. There is no minimum word count for this section. You are expected to write no more than 1000 words. The reflection should cover the following:
• The design process leading up to the finally submitted system
• A description of the design choices made, and the motivations behind them
• A discussion of the degree to which the design meets good design criteria
• A discussion of any shortcomings that may exist in the submitted work, and how these
might be addressed
Furthermore, you MUST provide a user guide with appropriate instructions on how to run and use your code. If sufficient information is not provided, and the assessor fails to run your
Coursework – 2018/19
Module Code: SOFT251
Page 1 of 8

SOFT251: Object-oriented Programming
application to test functionalities, you risk losing ALL MARKS for the implementation of your system.
Submission Details
You are required to make two online submissions for this assignment. In each case you should place all the files being submitted into a single folder and create one .zip file for that submission. Your zip file should contain the following:
1. NetBeans class library
2. NetBeans project
3. Javadoc web site
4. A reflective report
5. A user guide
All the contents of the zip file MUST also appear in your git repository. Please submit via the
link provided on the SOFT251 DLE. Your zip file submission should be named:
SOFT251_Coursework.zip You MUST add your git repository address in your report.
Plagiarism:
This is an individual assignment and must reflect the work of that individual. Thus, while you may discuss, in general terms, this assignment with your colleagues, the
assignment MUST be your own work.
Do not: Share designs or code with anyone, OR submit a program design or code which is
wholly or partially the work of someone else.
The University treats plagiarism very seriously. In all cases of suspected plagiarism, formal action will be taken
The penalty for submitting work which is wholly or partially the work of someone else is usually, at least, a mark of zero for the assignment. Also do not be tempted to help a colleague out who is ‘stuck’, by giving them your code or design, as BOTH parties will be guilty of an assessment offence and BOTH face the risk of a zero mark. Please refer to your student handbook for guidance as to what constitutes original / individual work.
The module leader may viva students on the contents of any part of their submission of their assignment.
Ok so how much can you share with your colleagues? The following table gives an indication as to what is allowed / not allowed:
Allowed
Discussing in general terms, i.e. if started / finished assignment; how easy/difficult; clarifying requirements (but should email me to confirm).
Helping to fix compiler errors, but NOT suggesting a better way to do the coding.
NOT Allowed
Suggesting better way to do things, i.e. giving or suggesting an algorithm1
1 Note an Algorithm in the table refers also to giving or sharing pseudo-code. Coursework – 2018/19
Module Code: SOFT251
Page 2 of 8

SOFT251: Object-oriented Programming
Meeting as a group to discuss design and / or algorithms and then, later, individually coding in the design / algorithm
Give ANY: code, design or algorithms to a colleague.
Using someone else’s designs/ code found on some media (i.e. a hard-drive), or some printed document found somewhere
Working collaboratively with a colleague or colleagues to complete the assignment
Getting someone else to complete the assignment for you!
Essentially if the level of collaboration is not covered by the allowed section, above, you MUST assume that it is NOT allowed. If you have any doubt then email the module leader BEFORE you do it!
Deadline
The deadline for submission is at 23:59 on 10 February, 2019 via the submission link on the modules Dynamic Learning Environment (DLE) home page.
Backup
It is YOUR RESPONSIBILITY to ensure that the zip file submitted will open correctly and will run on a standard Plymouth University computer, using NetBeans 8 (or greater). All files must be free from viruses.
You must also retain copies of all coursework until after the examination boards have met and final transcripts issued.
Other Information
Module Learning Outcomes Assessed
• ALO-1: Specify and document the design of an object-oriented web application for a given scenario.
• ALO-2: Discuss the applicability of common design styles or patterns to a given software development project.
• ALO-3: Implement a web application using an object-oriented language (Java) and evaluate the implemented solution.
Assessment Criteria
In order to PASS this coursework you must demonstrate your ability:
• To design a software solution that meets user requirements
• To code some basic Java classes according to specific requirements.
• To run tests to ensure that the classes you have coded meet the requirements
and produce correct results.
• To design a simple desktop application and link it to data model classes.
• To use version control system git appropriately.
To achieve a second class honours mark you need to demonstrate a greater ability in coding and testing of the more complex aspects of the classes and their associations. Examples would include:
• Using inheritance and composition appropriately in your design and implementation.
• Using software interfaces and abstract classes appropriately.
Coursework – 2018/19
Module Code: SOFT251
Page 3 of 8

SOFT251: Object-oriented Programming
• Use proper Java coding conventions in your implementation
• Apply software design patterns in appropriate places in the design and
implementation.
To achieve a first class honours mark you need to meet the pass & second class criteria and:
• Implement the data model to a high standard providing all requested functionality.
• Apply good human computer interface (HCI) to the creation of your web application.
• Make reasonable design choices showing an awareness of the real-world
consequences in the provided scenario.
• Go beyond the use of two design patterns.
Contribution to overall module mark
In total this assignment is worth 70% of the overall module mark.
Mark allocation within the assessment
Segment
Percentage of marks
Design.
The design elements include:
• UML class diagram.
• Development of JUnit tests.
• Reflection of your design.
50%
Software implementation.
The implementation elements include:
• Java Class Library containing your data model implementation.
• Java web project with appropriate HCI that uses the class library.
• The Javadoc web site produced from your class library.
• Appropriate use of git version control.
50%
Staff Responsible
This assignment has been prepared by the module leader, Dr Alma Rahat. In case of queries, please email Alma Rahat: alma.rahat@plymouth.ac.uk
Coursework – 2018/19
Module Code: SOFT251
Page 4 of 8

SOFT251: Object-oriented Programming
Appendix 1: Scenario.
A clinic has approached you to develop a Patient Management System. They have provided the following scope of the project.
The system should have at least four types of users: administrator, doctors, secretaries, and patients. The user-specific functionalities are given below.
User
All users
Patient Patient Patient Patient
Patient Patient Patient Patient Administrator Administrator Administrator Administrator
Secretary Secretary Secretary Secretary Secretary Secretary Secretary Doctor Doctor Doctor Doctor Doctor Doctor
All users of the system must be identifiable with a given name, a surname, an address, and a unique identification number (which will be assigned when an account is created: see Appendix 2: User identification system for valid identification number scheme). Each patient must also have an age and a gender (assigned at birth) associated with them2.
All requests or notifications for a specific user must appear as a message to the user when they log in. For instance, when an appointment is created, all involved users should receive a notification message. This message may be viewed once a relevant user logs in.
Functionality
Log in to the system using unique ID and password and perform user- specific functionalities.
Request to create account – this requires approval from a secretary.
Rate doctors and provide feedback messages.
View doctors’ ratings.
Request appointment – there should be an avenue to ask for a specific doctor and a range of potential dates.
View his or her own history.
View appointment.
View prescription.
Request account termination.
Create own account.
Add or remove doctor and secretary accounts.
View the ratings of the doctors.
Provide feedback to each doctor based on ratings and comments from patients.
Approve patient accounts.
Receive requests for appointments.
Create an appointment between a patient and a free doctor.
Give medicines to patients if available.
Order and stock medicines if necessary.
Remove patients.
Approve account removal request from patients.
View appointments.
Make notes during a consultation.
Inspect patient history.
Propose and create future appointments for a specific patient.
Prescribe medicines and dosages.
Create new medicines and request secretaries to order these.
2 In this document, they is sometimes used as a gender-neutral pronoun. Coursework – 2018/19
Module Code: SOFT251
Page 5 of 8

Coursework – 2018/19
Module Code: SOFT251
SOFT251: Object-oriented Programming
In addition, the system should record all appointments, in particular patient specific notes, and prescriptions. A doctor may review an individual patient record: neither an administrator nor a secretary should be able to access this record.
During an appointment, the doctor will log in to the system and make notes. They may also prescribe medicines (with required quantity) and recommend dosages: an example prescription is given in the Appendix. If medicines were prescribed, a patient may see a secretary and collect appropriate medicines. The secretary will then update the system to update the stock of medicines. At this point, the secretary may replenish the stock. If a prescribed medicine is not available, then the patient must be notified to come back when the stock has been replenished by a secretary.
Data must be saved automatically as and when we interact with the system. Essentially, if the application is restarted, it should be possible to view the last state of the application.
For assessment purposes, please populate the system with an administrator, three doctors, three patients, and a secretary. Also, populate the clinic stock of medicine with 10 different products.
Page 6 of 8

SOFT251: Object-oriented Programming
Appendix 2: User identification system
The identification number for a user has two parts: the first letter is designated according to his or her role, and then there are four digits for numbers. The role specific letters are given below:
For example, an administrator may have the following identification number: A9875.
Role
Letter
Administrator
A
Doctor
D
Patient
P
Secretary
S
Coursework – 2018/19
Module Code: SOFT251
Page 7 of 8

Appendix 3: Sample prescription
Patient.
Name: John Doe
Address: Portland Square Building, Drake Circus, Plymouth, PL4 8AA.
Sex: Male
Age: 45
Doctor.
Name: Serina James
Address: Fictitious Clinic, Diagon Alley, Drake Circus, Plymouth, PL4 8AA.
SOFT251: Object-oriented Programming
Notes.
Mr. John Doe has been suffering from fever for the last two weeks. He is coughing and the phlegm is green in colour. Suspected bacterial infection – we have collected his phlegm for testing. We are immediately starting him on an anti-biotic course.
Medicine
Quantity
Dosage
Amoxicillin
24
4 per day – at least 6 hours between each dose.
Coursework – 2018/19
Module Code: SOFT251
Page 8 of 8