fsm:tools
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| fsm:tools [2007/06/10 16:37] – fgm | fsm:tools [2020/11/23 17:23] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Tools usable with the OSInet FSM ====== | ====== Tools usable with the OSInet FSM ====== | ||
| - | |||
| - | |||
| - | |||
| ===== Generating FSM from UML State machine diagrams ===== | ===== Generating FSM from UML State machine diagrams ===== | ||
| Line 14: | Line 11: | ||
| ==== OOo Draw to FSM ==== | ==== OOo Draw to FSM ==== | ||
| - | |||
| - | |||
| === A FSM subset for OOo Draw === | === A FSM subset for OOo Draw === | ||
| Line 31: | Line 26: | ||
| * output conditions | * output conditions | ||
| * action | * action | ||
| - | |||
| === Sample data === | === Sample data === | ||
| This following excerpt represents the useful part of a two-state transition diagram: | This following excerpt represents the useful part of a two-state transition diagram: | ||
| - | < | + | |
| + | < | ||
| | | ||
| < | < | ||
| Line 60: | Line 55: | ||
| [..snip..] | [..snip..] | ||
| </ | </ | ||
| - | |||
| - | |||
| === Parsing the graph === | === Parsing the graph === | ||
| Supposing for now that the OOo document has already been unzipped to directory '' | Supposing for now that the OOo document has already been unzipped to directory '' | ||
| - | <php> | + | |
| + | <code php> | ||
| error_reporting(E_ALL|E_STRICT); | error_reporting(E_ALL|E_STRICT); | ||
| - | | + | |
| $doc = new DOMDocument(); | $doc = new DOMDocument(); | ||
| $doc-> | $doc-> | ||
| $doc-> | $doc-> | ||
| - | |||
| $xpath = new DOMXPath($doc); | $xpath = new DOMXPath($doc); | ||
| $xpath-> | $xpath-> | ||
| Line 85: | Line 78: | ||
| . ' | . ' | ||
| $result = $xpath-> | $result = $xpath-> | ||
| - | |||
| foreach ($result as $node) | foreach ($result as $node) | ||
| { | { | ||
| Line 110: | Line 102: | ||
| } | } | ||
| } | } | ||
| - | </php> | + | </code> |
| From there on, it's a simple matter of merging the two trees and generating the resulting FSM XML file. | From there on, it's a simple matter of merging the two trees and generating the resulting FSM XML file. | ||
| + | |||
| + | ==== Dia UML to FSM ==== | ||
| + | |||
| + | Like OOo, Dia saves its content in an easy to parse zipped XML format. | ||
| + | |||
| + | Since Dia includes dedicated UML widgets, these can be used to semantically extract them instead of relying on format limitations as was the case in the OOo converter test. | ||
| + | |||
| + | The elements recognized are: | ||
| + | |||
| + | * "UML - State Term": used for initial and final states | ||
| + | * "UML - State": | ||
| + | * "UML - Transition": | ||
| + | * Trigger (event) | ||
| + | * Guard (event outcome) | ||
| + | * Action (post-state-switch behaviour) | ||
| + | |||
| + | Other UML elements are available but not processed yet. The "UML - Fork" division/ | ||
fsm/tools.1181493468.txt.gz · Last modified: (external edit)
