Mega-Installfest Desiderata List

Joseph Sinclair plug-devel@lists.PLUG.phoenix.az.us
Mon Apr 25 02:26:02 2005


This looks like a good start on some of the entity analysis.  I'd drop
the "HR" moniker, perhaps replace with EM (Entity Management) or some
such.  "HR" sounds too corporate (IMHO).
The following presents a proposed enhancement:

An Item is the basic unit of reference
A Tracked Item is an Item with history
An Untracked Item is an Item without history
A Limited Item is a Tracked Item that has a quantity

An Inventory Item is a Limited Item
An Inventory Item MAY have an origin
An Inventory Item has an acquisition method (Purchased, Loaned, Donated,
etc...)

A Consumable item is an Inventory Item
The quantity of a Consumable decreases with each use
A Consumable has a quantity consumed per use

A Place is a Limited Item with geographic information
A Place has a maximum capacity
A Place has a minimum capacity (preferred minimum?)

A Time is an Untracked Item
A Time has a start moment and an end moment, both are full date/time values

A Skill is an Untracked Item
A Skill SHALL be selected from a controlled list

A Role is an Untracked Item
A Role SHALL be selected from a controlled list
A Role SHALL have 0..n required Skills
  Business Rule: If a Worker lacks the required skills, applying the
Role MUST fail)

An Entity is a Limited Item with quantity === 1
An Entity has 0..n Roles.
  Business Rule: An Entity may not have a Role with Required Skills
unless the Entity is a Worker

A Schedule is a ternary gerund connecting Place, Time, and Entity

A Corporation is a a type of Entity.

A Person is a type of Entity
A Person has 0..n Skills.

A Donor is a type of Entity (multiple-inheritance from Person and
Corporation?).

A Worker is a type of Person.
A Volunteer is a type of Worker.

An Event is an Entity

An Action is an Untracked Item
An Action SHALL be from a pre-defined set (Add quantity, Reduce
Quantity, Open, Close, etc...)
Business Rule: When an Event is scheduled, the Action for each Effect
MUST be applied to the Inventory Item at the Place at the Time scheduled.

An Effect is a quaternary gerund connecting an Event, Inventory Item,
and an Action
An Effect MAY have a quantity

Note: The definitions of SHALL, MUST, SHOULD, etc... are those used in
IETF RFC documents.


P.S. I am still working on getting the Subversion set up, it seems Ed's
been a bit overloaded the past couple weeks, and the server seems to be
down ATM.  Until the Subversion site is up, I've begun adding
information to the Forum site that Jason Santos was kind enough to set
up at (http://opensource.megaslow.net/forum/).  I hope to have a lot of
the basics, and some of the more significant discussion items up there
soon.  I figure the mailing list should be a working area, and the fora
can be where concrete results (as well as larger initial offerings, such
as Trent's full desired-items list) are posted.  That way a person
coming onboard, or just watching the project can find the significant
items on the fora, without having to wade through the email chains every
time.

==Joseph++

Trent Shipley wrote:

>After talking to Bryan and Hans at the ASU semi-annual installfest, I have 
>added a few items to the "list".  
>
>I've also taken a second look at the list and reorganized it by standard 
>business domains.
>
>If we want programming objects to follow domain analysis then some 
>implications are emerging.
>
>Desiderata are dominated by HR, inventory, and scheduling issues.
>
>Inventory contains catalog entries.
>Catalog entries contain batches.
>Batches contain items.
>
>Items have histories
>Items have scheduling.
>
>
>HR contains an agent list (a rolodex)
>The agent list contains agents (more accurately, it has pointers to agent 
>records of type "Agent".)
>Humans are a type of agent
>Corporations are a type of agent.
>Workers are a type of agent.
>Volunteers are a type of worker.
>Donors are a type of worker.
>HR contains a role catalog
>HR contains a skill catalog
>Roles imply skills (oooh! logic programming meets objects).
>Agents have roles.
>Agents have skills.
>Agents have histories.
>Agents have role histories.
>Items have scheduling.
>
>
>Scheduling is pervasive.  It is not an object _per se_.  It is more of a 
>universally available subscription service.
>
>SEE:
>http://trents-stuff.belfryenterprises.com/Engineering/Mega-Installfest_Desiderata_List.sxw
>_______________________________________________
>PLUG-devel mailing list  -  PLUG-devel@lists.PLUG.phoenix.az.us
>http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-devel
>
>  
>