Warning: mkdir() [
function.mkdir]: Permission denied in
/home/webs/affiliatelib2/CacheManager.php on line
12
Warning: mkdir() [
function.mkdir]: No such file or directory in
/home/webs/affiliatelib2/CacheManager.php on line
12
Warning: fopen(/home/templatecore2cache//*cluesnet.com/34/34765aaf257596e676afb13b75716498f4a33c7a.tc2cache) [
function.fopen]: failed to open stream: No such file or directory in
/home/webs/affiliatelib2/CacheManager.php on line
130
Warning: fwrite(): supplied argument is not a valid stream resource in
/home/webs/affiliatelib2/CacheManager.php on line
131
Warning: fclose(): supplied argument is not a valid stream resource in
/home/webs/affiliatelib2/CacheManager.php on line
132
State diagrams are used to graphically represent
finite state machines. State transition tables are another possible representation.
There are many forms of state diagrams, which differ slightly and have different semantics.
Directed graph
A classic form of a
state diagram for a finite state machine is a
directed graph with the following elements:
States Q: a finite set of vertices normally represented by circles and labelled with unique designator symbols or words written inside them (Booth (1967) p. 69, John Hopcroft and
Jeffrey Ullman (1979) p. 16, Michael Sipser (2006) p. 34).
Input symbols Σ: a finite collection of input "symbols" or designators
Σ (Booth,
John Hopcroft and Jeffrey Ullman, Michael Sipser). For a
deterministic finite state machine (DFA), nondeterministic finite state machine (NFA), generalized nondeterministic finite state machine (GNFA), or Moore machine, input is signified on each edge, usually near the originating state. For a Mealy machine, input and output are signified on each edge usually shown separated with a slash "/":
Mealy input and output labels on an edge (arrow): "1/0" designates symbol "1" caused symbol "0" as output.
Output symbols Z: a finite collection of output "symbols" or designators (Booth, Hopcroft and Ullman, Sipser). For a
Mealy machine, input and output are signified on each edge as shown above. For a
Moore machine the state's output is usually written inside the state's circle, separated from the state's designator with a slash "/".
Example: If a state has a number of outputs (e.g. "a= motor counter-clockwise=1, b= caution light inactive=0") the diagram should reflect this : e.g. "q5/1,0" designates state q5 with outputs a=1, b=0. This designator will be written inside the state's circle.
The "Output function ω" represents the mapping
ω of input symbols
Σ × states
Q into output symbols
Z (Booth).
Edges δ: represent the "transitions" between two states as caused by the input (identified by their symbols drawn on the "edges"). An 'edge' is usually drawn as an arrow directed from the present-state toward the next-state.
δ represents the mapping of input symbols
Σ × states
Q onto output symbols
Z (Booth, Hopcroft and Ullman, Sipser).
Start state qo: (not shown in the examples below). The start state qo is usually represented by an "arrow pointing at it from nowhere" (cf Sipser (2006) p. 34, Hopcroft and Ullman (1979) p. 16). In older texts (e.g. Booth (1969), McCluskey (1965), Hill and Peterson (1974)) the start state is not shown and must be inferred from the text.
Accepting state(s) F: If used -- a collection of double circles used to designate accept states (Hopcroft and Ullman, Sipser). Sometimes the accept state(s) function as "
Final" (halt, trapped) states (cf Hopcroft and Ullman (1979) Figure 2.15, p. 33).
Examples
DFA, NFA, GNFA, or Moore machine
S1 and
S2 are states and
S1 is an accept state. Each edge is labeled with the input.
Mealy machine
S0,
S1, and
S2 are states. Each edge is labeled with "
j /
k" where
j is the input and
k is the output.
Harel statechart
Harel statecharts (developed in 1987 by
David Harel) are gaining widespread usage since a variant has become part of the Unified Modeling Language. The diagram type allows the modeling of superstates, concurrent states, and activities as part of a state.
Classic state diagrams are "or" (disjunctive) diagrams, because the machine can only be in one of all the possible states. With Harel statecharts it is possible to model "and" machines, where a machine can be in two or more states concurrently. This is due in part to the modelling of superstates and in part to the modelling of concurrent machines.
== UML state diagram ==
The
Unified Modeling Language (UML) state diagram is essentially a Harel statechart with standardized notation, which can describe a lot of things, from computer programs to business processes. The following are the basic notational elements that can be used to make up a diagram:
- Filled circle, pointing to the initial state
- Hollow circle containing a smaller filled circle, indicating the final state (if any)
- Rounded rectangle, denoting a state. Top of the rectangle contains a name of the state. Can contain a horizontal line in the middle, below which the activities that are done in that state are indicated
- Arrow, denoting transition. The name of the event (if any) causing this transition labels the arrow body. A guard expression may be added, enclosed in brackets( ) denoting that this expression must be true for the transition to take place. If an action is performed during this transition, it is added to the label following a "/". eventNameguardExpression/action'
- Thick horizontal line with either x>1 lines entering and 1 line leaving or 1 line entering and x>1 lines leaving. These denote join/fork, respectively.
Other extensions
An interesting extension is to allow arcs to flow from any number of states to any number of states. This only makes sense if the system is allowed to be in multiple states at once, which implies that an individual state only describes a condition or other partial aspect of the overall, global state. The resulting formalism is known as a Petri net.
Another extension allows the integration of flowcharts within Harel statecharts. This extension supports the development of software that is both event driven and workflow driven.
References
- David Harel and his home page
- D. Harel. Statecharts: A visual formalism for complex systems. Science of Computer Programming, 8(3):231--274, June 2002.
- Introduction to UML 2 State Machine Diagrams by Scott W. Ambler
- UML 2 State Machine Diagram Guidelines by Scott W. Ambler
- SCXML an XML language that provides a generic state-machine based execution environment based on Statechart#Harel statechart.
- Modelling and verification using UML statecharts, Drusinsky, D., Elsevier, 2006,
- Michael Sipser (2006), Introduction to the Theory of Computation, Thomson Course Technology, Boston. ISBN-13: 978-0-534-95097-2, ISBN-10: 0-534-95097-3.
- John Hopcroft and Jeffrey Ullman (2002) Introduction to Automata Theory, Languages, and Computation, Addison-Wesley Publishing Company, Reading Mass, ISBN 0-201-02988-X.
- Taylor Booth (2002) Sequential Machines and Automata Theory, John Wiley and Sons, New York. Library of Congress Catalog Card Number: 67-25924.
- Practical Statecharts in C/C++ by Miro Samek
- Round-trip Engineering State Charts
state transition diagram from FOLDOC
state diagram ==> state transition diagram. A diagram consisting of circles to represent states and directed line segments to represent transitions between the states.
State diagram - Wikipedia, the free encyclopedia
State diagrams are used to graphically represent finite state machines. State transition tables are another possible representation. There are many forms of state diagrams, which ...
Diagram
State Transition Diagram
Some systems or objects can be in different states. A kettle may be full or empty, on or off, cold or hot, and the state will change under the influence of outside circumstances ...
state diagram
The Free Online Dictionary of Computing (http://foldoc.doc.ic.ac.uk/) is edited by Denis Howe < dbh@doc.ic.ac.uk >. Previous: state Next: stateless
State Diagram -- from Wolfram MathWorld
A state diagram is a labeled directed graph together with state information that can be used to indicate that certain paths on in a system may be traversed only in a certain way.
State Diagram
State Diagram ... Ananda Amatya 11/3/1999
state transition diagram
The Free Online Dictionary of Computing (http://foldoc.doc.ic.ac.uk/) is edited by Denis Howe < dbh@doc.ic.ac.uk >. Previous: state machine Next: State University of New York
Essentials of state and activity diagram
2 . So far we have discussed: How to describe the requirements of a system using use cases; How to model the static structure of a system using a class model; How to ...
UML Tutorial - State Diagrams
Previous | Home | Next. State diagrams are used to describe the behavior of a system. State diagrams describe all of the possible states of an object as events occur.