blob: f3ed0426f53269740b157d880c629487741b7cd1 [file] [log] [blame]
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>State machine glossary</title><link rel="stylesheet" href="boostbook.css" type="text/css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"><link rel="home" href="index.html" title="Meta State Machine (MSM) V2.12"><link rel="up" href="ch02.html" title="Chapter&nbsp;2.&nbsp;UML Short Guide"><link rel="prev" href="ch02s02.html" title="Concepts"><link rel="next" href="ch03.html" title="Chapter&nbsp;3.&nbsp;Tutorial"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">State machine glossary</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s02.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter&nbsp;2.&nbsp;UML Short Guide</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch03.html">Next</a></td></tr></table><hr></div><div class="sect1" title="State machine glossary"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e344"></a>State machine glossary</h2></div></div></div><p>
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>state machine: the life cycle of a thing. It is made of states,
regions, transitions and processes incoming events.</p></li><li class="listitem"><p>state: a stage in the life cycle of a state machine. A state (like
a submachine) can have an entry and exit behaviors.</p></li><li class="listitem"><p>event: an incident provoking (or not) a reaction of the state
machine</p></li><li class="listitem"><p>transition: a specification of how a state machine reacts to an
event. It specifies a source state, the event triggering the
transition, the target state (which will become the newly active
state if the transition is triggered), guard and actions.</p></li><li class="listitem"><p>action: an operation executed during the triggering of the
transition.</p></li><li class="listitem"><p>guard: a boolean operation being able to prevent the triggering of
a transition which would otherwise fire.</p></li><li class="listitem"><p>transition table: representation of a state machine. A state
machine diagram is a graphical, but incomplete representation of the
same model. A transition table, on the other hand, is a complete
representation.</p></li><li class="listitem"><p>initial state: The state in which the state machine starts. Having
several orthogonal regions means having as many initial
states.</p></li><li class="listitem"><p>submachine: A submachine is a state machine inserted as a state in
another state machine and can be found several times in a same state
machine.</p></li><li class="listitem"><p>orthogonal regions: (logical) parallel flow of execution of a
state machine. Every region of a state machine gets a chance to
process an incoming event.</p></li><li class="listitem"><p>terminate pseudo-state: when this state becomes active, it
terminates the execution of the whole state machine. MSM does not
destroy the state machine as required by the UML standard, however,
which lets you keep all the state machine's data.</p></li><li class="listitem"><p>entry/exit pseudo state: defined for submachines and are defined
as a connection between a transition outside of the submachine and a
transition inside the submachine. It is a way to enter or leave a
submachine through a predefined point.</p></li><li class="listitem"><p>fork: a fork allows explicit entry into several orthogonal regions
of a submachine.</p></li><li class="listitem"><p>history: a history is a way to remember the active state of a
submachine so that the submachine can proceed in its last active
state next time it becomes active.</p></li><li class="listitem"><p>completion events (also called completion/anonymous transitions):
when a transition has no named event triggering it, it automatically
fires when the source state is active, unless a guard forbids
it.</p></li><li class="listitem"><p>transition conflict: a conflict is present if for a given source
state and incoming event, several transitions are possible. UML
specifies that guard conditions have to solve the conflict.</p></li><li class="listitem"><p>internal transitions: transition from a state to itself without
having exit and entry actions being called.</p></li></ul></div><p>
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s02.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Concepts&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;3.&nbsp;Tutorial</td></tr></table></div></body></html>