Software Engineering Assignmnet
Software Engineering Assignmnet
Assignment 1
Overview
You are required to design and develop a small Java console application. Completion of this
assignment requires an understanding of:
Analysis and design techniques, including development of use cases and UML diagrams
specifically, use case diagrams, class diagrams and sequence diagrams
Understand the significance of detailed project planning and control, good communication and
documentation and the use of appropriate tools in order to provide a quality product
Understand the distinction between software engineering and programming, and thus the
distinction between a software configuration and a program
Understand the methods and techniques involved in designing, implementing and maintaining
an information system, in particular using an object-oriented approach
Page 1 of 3
Assessment Details
Matthew is a small business owner who is establishing a loyalty rewards scheme for his regular clients. He also
wants to reward his staff for their work by offering them discounted purchases through his business. His plan is to
offer no discount to clients who are not offered the loyalty rewards scheme, a 5% discount to his regular clients and
10% discount to his employees.
You have agreed to design and develop a small Java console program for Matthew, enabling him to select the type
of customer making the purchase and determine and track the appropriate discounts. For standard clients, no
additional charges are required. For loyalty customers payments, the program will calculate the 5% discount and
display the updated total of the sale. For employees, the program will calculate the 10% discount and display the
updated total of the sale. Once the sales have been completed, the program will provide options to enter another
sale (standard, loyalty, staff), or to display the current payments received. These payments should be broken
down into standard sales, loyalty sales, staff sales, total discounts given and total product sales (using the
discounted values where appropriate). There is no need for this data to persist once the program has stopped
running.
Matthew wants the system to be flexible so that he can include additional functionality at a later date without having
to rewrite the entire program. This means you will need to use an interface for processing payments, and
polymorphism for the various payment classes, so that new, different payment types may be added at a later date
with minimal updates to the code. He asked that you provide him with some documentation before you commence
coding, so that he is able to verify that the program you intend to code will address his requirements. He would like
to see use cases to summarize the requirements in written format, as well as use case diagrams, class diagrams
and sequence diagrams.
Submission
You are required to submit the assignment before the due date consisting of:
A Zip file containing the following (submitted via Moodle under the Assignment 1 link)
o
A short reflection (approximately 200-300 words) of what you have learned, if anything, on this
assignment, particularly relating to requirements design and analysis, UML diagrams and objectoriented programming with interfaces and polymorphism. As an example, if you found that you
would change your initial UML diagrams after you had commenced coding, you should explain
what these changes would be and explain what you learnt that led to these changes.
Enterprise Architect file(s) containing your UML Diagrams for the Use Case, Class and Sequence Diagrams
Your finished Java program, addressing the requirements outlined in the Assignment Details.
Page 2 of 3
Marking Criteria/Rubric
Task
Available
Marks
Student
Mark
Development of Code
A complete Java program addressing the requirements outlined in the Assignment Details
section of this specification, including:
A payments received option that displays the total standard sales amount, the
total loyalty reward sales amount, the total employee sales amount, the total
discounts given and the total product sales amount (all types of sales taking
discounts into account where appropriate)
Reflection on Learning
2
20
Feedback
Marks will be uploaded in fdlGrades and a completed marking guide provided in Moodle within 2
weeks of assignment submission.
Plagiarism:
Plagiarism is the presentation of the expressed thought or work of another person as though it is one's
own without properly acknowledging that person. You must not allow other students to copy your work
and must take care to safeguard against this happening. More information about the plagiarism policy
and procedure for the university can be found at http://federation.edu.au/students/learning-andstudy/online-help-with/plagiarism.
Page 3 of 3