Employee Tracker

Employee Tracker is a human resources application used by small corporations to keep track of the structure and activities of their employees.

Employee Tracker Specification

1.     Employee is a role filled by a person with a name, address, and phone number. Employees have Social Security numbers.

2.     There are two types of employees: managers and laborers.

3.     A manager has a title (Department Head, Director, Vice President, President, etc.) and a salary. A manager supervises a staff of one or more employees. These could be laborers or lesser managers.

4.     Every employee (except maybe the president) has a supervising manager.

5.     A laborer has an hourly wage and a list of tasks that must be executed each day. Common tasks include copying and filing. There is also a Make Coffee task that existed in a legacy system that needs to be integrated into the Employee Tracker without modification.

6.     A laborer can choose what order to execute his or her tasks: First-i-first-out, last-in-first-out, or shortest-job-first.

Employee Tracker Design

Design Patterns Used

Which of the design patterns described here are used in this design? For each pattern say which class plays each role in the pattern.

 

Implementation

Complete the implementation of EmployeeTracker.java. (Missing pieces of code are marked.)