Objective
Develop skills to design, code, and implement classes that follow design criteria such as reusable code, effective inheritance, coupling and cohesion.
Problem
An organization has employees of two types: Salaried employees and contract employees. Each employee has a name, mailing address, email, and pay. Pay of salaried employees is specified at the time of hire as amount per annum to be paid as 26 equal payments. The pay of contract employees is specified each time when the contract is offered and is paid in three equal payments.
Develop a Java application that can prepare payment statement for all employees.
The output of the application should be
Employees Payment Statement
Date: mm-dd-yyyy
Name Email Payment amount
………….. ………. $dddd.dd
………….. ………. $dddd.dd
………….. ………. $dddd.dd
Requirements
1. UML class diagram for each class and a class hierarchy diagram
2. Code to implement
employee
class as an abstract class with abstract payment method.
3. Code to implement
salaried employee
as a subclass of employee with payment method defined as described in the problem statement
4. Code to implement
contract employee
as a subclass of employee with payment method defined as described in the problem statement.
5. Java application that creates an ArrayList of employee objects, creates at least two objects of salaried employee type, creates at least two objects of contract employee type, and prints a payment statement properly formatted as outlined in the problem statement.
Evaluation
Submitted work will be assessed for the following:
1. UML diagrams ------------ 15 points
2. Application architecture 15 points
3. Class definitions ---------- 30 points
4. Application and Output 30 points
5. Overall quality ------------ 10 points