SW Code Generation - State Machine Diagrams
A State Machine in a Class internally generates the following constructs in software languages to enable effective execution of the States' behaviors (do, entry and exit) and also to code the appropriate transition's effect when necessary.
Topics
|
|
|
Enumerations
|
• | StateType - comprises an enumeration for each of the States contained within the State Machine |
• | TransitionType - comprises an enumeration for each transition that has a valid effect associated with it; for example ProcessOrder_Delivered_to_ProcessOrder_Closed |
• | CommandType - comprises an enumeration for each of the behavior types that a State can contain (Do, Entry, Exit) |
|
State Machine Diagrams
Java Code Generated From State Machine Diagram
|
Attributes
|
• | currState:StateType - a variable to hold the current State's information |
• | nextState:StateType - a variable to hold the next State's information, set by each State's transitions accordingly |
• | currTransition:TransitionType - a variable to hold the current transition information; this is set if the transition has a valid effect associated with it |
• | transcend:Boolean - a flag used to advise if a transition is involved in transcending between different State Machines (or Submachine states) |
• | xx_history:StateType - a history variable for each State Machine/Submachine State, to hold information about the last State from which the transition took place |
|
State Machine Diagrams
Java Code Generated From State Machine Diagram
|
Operations
|
• | StatesProc - a States procedure, containing a map between a State's enumeration and its operation; it de-references the current State's information to invoke the respective State's function |
• | TransitionsProc - a Transitions procedure, containing a map between the Transition's enumeration and its effect; it invokes the respective effect |
• | <<State>> - an operation for each of the States contained within the State Machine; this renders a State's behaviors based on the input CommandType, and also executes its transitions |
• | initializeStateMachine - a function that initializes all the framework-related attributes |
• | runStateMachine - a function that iterates through each State, and executes their behaviors and transitions accordingly |
|
State Machine Diagrams
Java Code Generated From State Machine Diagram
Operations Dialog - Behavior
|
Notes
• | To be able to generate code from behavioral models, all behavioral constructs should be contained within a Class |
Learn more
Learning Center topics
• | (Alt + F1) | Software Engineering | Behavioral Code Generation | State Machines |
The material ("material" includes all pages, documents and on-line graphics) on this web site is protected by copyright law. (C) 1998-2011 Sparx Systems Pty Ltd.