Functional specification
The problem domain is straightforward: there are
projects,
users,
tasks,
calendars and
timesheets. The users can participate in projects. The tasks belong to a project. The calendars and timesheets belong to a user, but are not part of the OPSAdmin. They are accessed, modified and viewed by their respectve owners and later by the admin through the OpsTimesheet HttpClient, see
GettingStarted.
The calendars and timesheets are in fact files.
All the data about projects, users, tasks, calendars and timesheets is stored in LDAP. Access rights to project-specific shared imap folder are set on the IMAP server.
The attributes of each element are described in
ldapschema.
Technical specification
Create classes with the attributes given.
Project
| member |
type |
# |
flag |
| name |
String |
1 |
U |
| mailfolder |
String |
(0,1) |
| UID |
long |
1 |
U |
| status |
ENUM |
1 |
| manager |
Person |
(0,1) |
| members |
<Person> |
1 |
| tasks |
<Tasks> |
1 |
| startDate |
Date |
(0,1) |
R |
| endDate |
Date |
(0,1) |
R |
Task
| member |
type |
# |
flag |
| status |
ENUM |
1 |
| name |
String |
1 |
| project |
Project |
1 |
R |
| description |
String |
(0,1) |
| UID |
long |
1 |
U for project |
The gray fields would have to be added in LDAP too
Person
| member |
type |
# |
flag |
| UID |
long |
1 |
U |
| firstName |
String |
1 |
| lastName |
String |
1 |
| opsenabled? |
boolean |
1 |
Flags: U = unique, R = read only
Discussion
What kind of behaviour should the objects in the domain have? Some discussion has been waged on this topic.
The two extreme options are POJO's with behaviour and data jammed together on the one end and beans incoporating only data with matching getters and setters combined with a Manager object for every bean.
The best approach may well be somewhere in the middle. The domain objects modeled with thier properties, the buissiness logic implememted in a separate manager object. If it turns out that objects have
only variables, getters and setters fine, and if they turn out more complex still no problem.
Hours
--
FlaviaPaganelli - 14 Mar 2007