Task: Something that:
is achieved by Work
requires 0..n Inputs
creates 1..n Outputs
requires 1..n resources to do the Work. Without resources, the work cannot be performed.
can have dependencies on other Tasks
Has a start and end date/time
Has an assignee who is responsible for progressing
Has a workflow
Work: The execution of a Task by a resource.
TaskDependency: The start or end of one Task restricts the start of end of another Task. It can also have a delay factor.
Project: Contains 0..n Tasks and is defined by it's Tasks. A Project has a ResourcePool which contains 0..n Resources.
Baseline: Project Tasks are frozen so Work progress can be measured against Tasks
Resource: Can be either financial, systems or personnel. A resource has a
Calendar of availability.
Backlog of assigned tasks
A set of active tasks that are using a resource
ResourcePool: A set of Resources that can be allocated to work on a Task.
TaskWorkflow: A Task has a TaskWorkflow assigned to it. This contains a set of states that the task can move between.
TaskState: Part of a Workflow. Roles can invoke StateTransitions
StateTransition: Defines which States a Task can transition between. It has a set of roles associated with it to restrict who can invoke the transition.
Role: A person can have 0..n roles. These define a link between AuthorisationObjects objects and permissions.
AuthorisationObject: Can have roles associated with them. An AuthorisationObject exposes 0..n permissions