Assignment title: Information


​​ ITECH7201 Software Engineering: Analysis and Design CRICOS Provider No. 00103D ITECH7201 Assignment 1 1607 V2.docx Page 1 of 3 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  Object-oriented programming, focusing on polymorphism and the use of interfaces Timelines and Expectations Percentage Value of Task: 20% Due: 11:55pm Sunday the 8th May 2016 (week 7) Minimum time expectation: 20 hours Learning Outcomes Assessed The following course learning outcomes are assessed by completing this assessment:  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  Demonstrate skills in designing and implementing an information system. CRICOS Provider No. 00103D ITECH7201 Assignment 1 1607 V2.docx Page 2 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 written report comprising:  Use Cases summarizing the requirements  UML Diagrams, created in Enterprise Architect, comprising:  a Use Case Diagram for processing a purchase  a Class Diagram of the intended system  a Sequence Diagram for processing a loyalty reward client's purchase.  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. o Enterprise Architect file(s) containing your UML Diagrams for the Use Case, Class and Sequence Diagrams o Your finished Java program, addressing the requirements outlined in the Assignment Details. CRICOS Provider No. 00103D ITECH7201 Assignment 1 1607 V2.docx Page 3 of 3 Marking Criteria/Rubric Task Available Marks Student Mark Requirements Analysis and Design  Use Cases summarizing the requirements of the program 2  A Use Case Diagram for processing a purchase 2  A Class Diagram of the intended system 2  A Sequence Diagram for processing a loyalty reward client's purchase. 2 Development of Code A complete Java program addressing the requirements outlined in the Assignment Details section of this specification, including:  Functionality to process standard customer payments 1  Functionality to process loyalty reward and employee payments, including display of the total sales amount with a 5% or 10% discount removed. 2  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) 1  Code demonstrating the use of an interface and polymorphism to handle payments and the various payment options available 6 Reflection on Learning  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 object-oriented programming with interfaces and polymorphism. 2 Total 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.