Keeping track of time

Our “company” is going to keep track of the work that employees have done. The class diagram shows the important elements of the core datastructure.

Note: Lines with a closed diamond mean: “This Company MUST maintain a list of Employees. The consequence is that a company with zero employees is not “legal”. (This is a one or many relationship.)

Lines with an open diamond mean: This Employee MAY maintain a list of Work. This allows for the situation that an Employee has an empty list of Work. (This is a zero or many relationship.)

This diagram shows this distinction as an example. Logically a company may start without any employees after begin instantiated.

We suggest that you start with a single employee and their work. And then add the company later.

We also provide a csv file with test data.

This file assumes five employees:

id Name
1 Pothoven, T.
2 Bonte, F.
3 Beekveld, M.
4 Hommels, R.
5 Bradley, C.

To start simply add all entries to one employee and split them up in a later version of your application. Of skip entries that don’t belong to employee 1.

Example

Your application may generate overviews like this:

**** Employees ****
Pothoven, T. --- 55 hours
Bonte, F. --- 42 hours
Beekveld, M. --- 73 hours
Hommels, R. --- 32 hours
Bradley, C. --- 51 hours

**** Tasks ****
Programming --- 5413 minutes
Documentation --- 3102 minutes
Testing --- 151 minutes
Mucking about --- 1928 minutes