Notes
Slide Show
Outline
1
StateModel Design - 1
Data Stucture Diagram (DSD/EERD)
2
StateModel Design – 2:
StateModel.sch File
  • SchemaVersion SV /* schema version containing this state mode */
  • {   /* SV Attributes: 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 i4 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 /* Was pointer, now integer index since 04s522) */
  • Descrip NA t80 0 /* Full Name or Description of State */
  • }
  • Transition  TR /* Allowable transition: STid1 to 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 /* Event Type Name; 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 */
  • }


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 */
  • }


4
StateModel Design - 4:
bde2sch Conversion
5
StateModel Design - 5
Schema Tables TT and TA
6
StateModel Design - 6
Two-State SM Example
7
StateModel Design - 7
(Two-State Model Conversion to a SM.dat File)