StateModelRev05s.ppt - RJL rev. 050207  3
StateModel Design - 3
With ST to FP M to N Relation
•SchemaVersion SV /* schema version which contains this state model model */ 
•{ /* contents not shown, for brevity: name, versionNo, lastModAuthor, lasModDate*/  }
•
•StateModel SM /* State Model for one Active Class (-> TT000001 SM) */
•{
• SMid NA c8 1 /* pkey of this State Model */
• SVid NA c8 1 /* fkey of Schema Version */
• Abbrev NA c4 0 /* ttabbrev of Modeled Object? */
• Name NA t80 0 /* Full Name or Description of SM */
•}
•State ST / * One state or stage of  behavior ( -> TT000002  ST) */ 
•{
• STid NA c8 1 /* pkey of this STat e */
• SMid NA c8 1 /* fkey of parent State Model */
• STname NA c32 0 /* a name to identify this state */
• ARname NA c8 0 /* Action Routine Name */
• /* ARptr  NA i4 0  (not needed;  child_loop from ST to SF gets FTid –sequence)  */
• Descrip NA t80 0 /* Full Name or Description of State */
•}
•Transition  TR /* Possible transition from state STid1 to state STid2 (-> TT000003 TR ) */
•{
• TRid NA c8 1 /* pkey of this State Transition */
• STid1 NA c8 1 /* Transition Source or 'From' State */
• STid2 NA c8 1 /* Transition Destination or 'To' STate */
•}
•EventType  ET /* Event Type (asynchronous message type) (-> TT000004 ET) */                       
•{
• ETid NA c8 1 /* pkey of Event Type */
• SMid NA c8 1 /* State Model target of EventType */
• Label NA c8 0 /* Label for events of this type; syntax:  <SM>E##:<name> */
• Descrip NA t80 0 /* Event Type description */
•}
•EventEnable  EN /* Relates Event Types to State Transitions (-> TT000005 EN) */
•{
• ENid NA c8 1 /* pkey of ENable relation (ET to TR) */
• ETid NA c8 1 /* fkey to Event Type */
• TRid NA c8 1 /* fkey of enabled State Transition */
•}
•FunctionTable FT /* holds ActRtnfunction name and index, runs on  entry to state (TT # 6)*/
•{
• FTid NA c8 1 /* pkey of Function Table entry */
• SMid NA c8 1 /* fkey of parent StateModel */
• ARname NA c2 0 /* name of action routine or method */
• ARptr NA i4 0 /* index into function ptr table (initialized at  load time) */
• }
•StateFunction SF /* M:N relationship from state entered to action routine sequence  (TT # 7) */
•{
• SFid NA c8 1 /* pkey of StateFunction table (associative entity) */
• STid NA c8 1 /* fjey of a STate which will execute function */
• FTid NA c8 1 /* fkey of Function in Table FT to be executed */
•}
•