Reference no: EM132120870 
                                                                               
                                       
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
Learning Outcomes
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.
Assessment Details
A new  party plan company (which sells any product of your choice) is opening  in Australia. This company operates on a membership structure, offering  discounts on the recommended retail price of product purchases based on a  tiered membership approach:
| Membership   Level | Discount   on Product Purchases | 
| Member | 5% | 
| Bronze Member | 10% | 
| Silver Member | 15% | 
| Gold Member | 20% | 
| Platinum Member | 25% | 
You  have agreed to design and develop a small Java console program for this  company, with four menu options. Option 1: Create a member.
The member needs to have a name and a membership tier.
Option  2: Make a purchase. Select a member who is making a purchase, enter the  total recommended retail value of that purchase and calculate the  corresponding discounted price.
Option 3: Display a summary of transaction data for the current session, showing:
- The total number of sales processed and the payment amount received for these sales
-  The total number of sales processed for each membership tier, the  payment amount received for each tier and the total discount given at  each membership tier.
Option 4: Exit the system
After  completing any of the first three options, the program returns to the  menu so the user can select another option. After selecting the fourth  option, the program closes. There is no need for the program data to  persist once the program has closed.
The  party plan company wants to be able to add additional membership tiers  at a later date, so the system needs to be flexible. This means you will  need to use an interface for processing payments, and polymorphism for  the various membership classes, so that new, different levels of  membership may be added at a later date with minimal updates to the  code. The company has also asked that you provide them with some  documentation before you commence coding, so that they are able to  verify that the program you intend to code will address their  requirements. They would like to see use cases to summarize the  requirements in written format, as well as use case diagrams, class  diagrams and sequence diagrams.