DomainObjectsStory

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

task estiimated hrs
whole story 4 3
Total 4 3

-- FlaviaPaganelli - 14 Mar 2007

Topic revision: r1 - 14 Mar 2007 - 18:32:26 - FlaviaPaganelli

tip TWiki Tip of the Day
The Go Box as a browser
The go box (also called jump box) is not only a tool to allow you to jump from page to page, you can ... Read on Read more

 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback