Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/libs/statechart/doc/index.html @ 33

Last change on this file since 33 was 29, checked in by landauf, 16 years ago

updated boost from 1_33_1 to 1_34_1

File size: 8.2 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
3<html>
4<head>
5  <meta http-equiv="Content-Language" content="en-us">
6  <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
7  <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
8  <meta name="ProgId" content="FrontPage.Editor.Document">
9  <link rel="stylesheet" type="text/css" href="../../../boost.css">
10
11  <title>The Boost Statechart Library - Overview</title>
12</head>
13
14<body link="#0000FF" vlink="#800080">
15  <table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
16  "header">
17    <tr>
18      <td valign="top" width="300">
19        <h3><a href="../../../index.htm"><img alt="C++ Boost" src=
20        "../../../boost.png" border="0" width="277" height="86"></a></h3>
21      </td>
22
23      <td valign="top">
24        <h1 align="center">The Boost Statechart Library</h1>
25
26        <p align="center">(formerly known as boost::fsm)</p>
27
28        <h2 align="center">Overview</h2>
29      </td>
30    </tr>
31  </table>
32  <hr>
33
34  <h2>Contents</h2>
35
36  <dl class="index">
37    <dt><a href="#Overview">Overview</a></dt>
38
39    <dd><a href="#SupportedPlatforms">Supported platforms</a></dd>
40
41    <dd><a href="#GettingStarted">Getting started</a></dd>
42
43    <dd><a href="#Audience">Audience</a></dd>
44
45    <dt>&nbsp;</dt>
46
47    <dt><a href="tutorial.html">Tutorial</a> [pdf: <a href=
48    "tutorial.pdf">English</a>, <a href=
49    "http://prdownloads.sourceforge.jp/jyugem/7127/fsm-tutorial-jp.pdf">Japanese</a>]</dt>
50
51    <dt><a href="uml_mapping.html">UML to Boost.Statechart mapping
52    summary</a></dt>
53
54    <dt><a href="faq.html">Frequently Asked Questions (FAQs)</a></dt>
55
56    <dt><a href="configuration.html">Configuration</a></dt>
57
58    <dt><a href="definitions.html">Definitions</a></dt>
59
60    <dt><a href="reference.html">Reference</a> [pdf: <a href=
61    "reference.pdf">English</a>]</dt>
62
63    <dt><a href="rationale.html">Rationale</a> [pdf: <a href=
64    "rationale.pdf">English</a>]</dt>
65
66    <dt><a href="performance.html">Performance</a></dt>
67
68    <dt><a href="acknowledgments.html">Acknowledgments</a></dt>
69
70    <dt><a href="future_and_history.html#ToDoList">To-do list</a></dt>
71
72    <dt><a href="future_and_history.html#ChangeHistory">Change
73    history</a></dt>
74  </dl>
75  <hr>
76
77  <h2><a name="Overview" id="Overview">Overview</a></h2>
78
79  <p>Welcome to Boost.Statechart, a C++ library for finite state machines.
80  Features include:</p>
81
82  <ul>
83    <li>Straightforward transformation from UML statechart to executable C++
84    code and vice versa. Currently, this needs to be done manually both ways
85    but it should not be difficult to automate these tasks</li>
86
87    <li>Comprehensive <a href=
88    "http://www.omg.org/cgi-bin/doc?formal/03-03-01">UML semantics</a>
89    support:
90
91      <ul>
92        <li>Hierarchical (composite, nested) states</li>
93
94        <li>Orthogonal (concurrent) states</li>
95
96        <li>Entry-, exit- and transition-actions</li>
97
98        <li>Guards</li>
99
100        <li>Shallow/deep history</li>
101
102        <li>Event deferral</li>
103      </ul>
104    </li>
105
106    <li>Error handling support</li>
107
108    <li>Maximum type-safety</li>
109
110    <li>Compile-time statechart validation</li>
111
112    <li>Support for asynchronous state machines and multi-threading</li>
113
114    <li>State-local storage</li>
115
116    <li>Generic design allowing for the customization of memory management,
117    error handling and threading</li>
118  </ul>
119
120  <h3><a name="SupportedPlatforms" id="SupportedPlatforms">Supported
121  platforms</a></h3>
122
123  <p>Whether and how Boost.Statechart will work on your platform is best
124  determined on the <a href=
125  "http://engineering.meta-comm.com/boost-regression/CVS-RC_1_34_0/developer/statechart.html">
126  status page</a>. If the cells in your compilers column are all green, the
127  library should work as advertised. Cells of different color indicate
128  possible problems; follow the links for details. Before employing the
129  library I would also advise to run the tests (see <a href=
130  "#GettingStarted">Getting started</a>) on your particular platform in all
131  the modes (debug, release, etc.) that are later used during development
132  (the status page shows debug mode results only). The closer the test
133  compiler switches mirror the ones that are later used during development,
134  the less likely are future surprises. An example of such a surprise is
135  Intel 9.0 with MSVC 7.1 base toolset, where DllTestNormal and DllTestNative
136  pass in debug mode but fail in release mode.</p>
137
138  <h3><a name="GettingStarted" id="GettingStarted">Getting started</a></h3>
139
140  <ol>
141    <li>Follow the steps 1-4 described on the <a href=
142    "../../../more/getting_started.html">Boost Getting Started Page</a>.
143    Since Boost.Statechart is a header-only library, you should now know
144    enough to compile the examples in the tutorial in your favorite
145    environment (except PingPong which requires Boost.Thread binaries)</li>
146
147    <li>Optional: If you want to compile the PingPong example or use <a href=
148    "reference.html#ClassTemplatefifo_scheduler">fifo_scheduler&lt;&gt;</a>
149    in your project, you need to get hold of the Boost.Thread binaries and
150    link against them, see steps 5-6 on the Boost Getting Started Page</li>
151
152    <li>Optional: If you want to run the tests, you need to get the bjam
153    executable, as described under step 5.2 on the Boost Getting Started
154    Page. After doing so, bjam should be installed in your <code>PATH</code>.
155    Open a command prompt and change the current directory to
156    <code>boost_1_34_0/libs/statechart/test</code>. Type
157      <pre>
158bjam --toolset=<i>your-toolset</i>
159</pre>
160
161      <p>(where <code><i>your-toolset</i></code> is one of the names
162      documented under step 5.2.2 on the Boost Getting Started Page) and hit
163      CR. After the test run, failures (if any) are indicated at the end of
164      the output, in the form of&nbsp; a "<code>...failed updating X
165      targets...</code>" message. For some platforms certain failures are
166      expected, see <a href="#SupportedPlatforms">Supported
167      platforms</a>.</p>
168    </li>
169  </ol>
170
171  <h3><a name="Audience" id="Audience">Audience</a></h3>
172
173  <p>Throughout all Boost.Statechart documentation it is assumed that the
174  reader is familiar with the state machine concept, UML statecharts and most
175  of the UML state machine terminology. The following links might be
176  interesting if this is not the case:</p>
177
178  <ul>
179    <li><a href=
180    "http://www.objectmentor.com/resources/articles/umlfsm.pdf">http://www.objectmentor.com/resources/articles/umlfsm.pdf</a>
181    introduces state machines and UML statecharts</li>
182
183    <li><a href=
184    "http://www.sts.tu-harburg.de/teaching/ws-99.00/OOA+D/StateDiagrams.pdf">http://www.sts.tu-harburg.de/teaching/ws-99.00/OOA+D/StateDiagrams.pdf</a>
185    explains most of the UML statechart elements and terminology</li>
186
187    <li>The inventor of statecharts, David Harel, presents a thorough but
188    still very readable discussion in his original paper: : <a href=
189    "http://www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Statecharts.pdf">
190    http://www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Statecharts.pdf</a></li>
191
192    <li>The UML specifications (formal) can be found here: <a href=
193    "http://www.omg.org/cgi-bin/doc?formal/03-03-01">http://www.omg.org/cgi-bin/doc?formal/03-03-01</a>
194    (see chapters 2.12 and 3.74)</li>
195  </ul>
196
197  <p>Some of the used terminology cannot be found in the UML specifications,
198  please see <a href="definitions.html">Definitions</a> for more
199  information.</p>
200  <hr>
201
202  <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src=
203  "http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional"
204  height="31" width="88"></a></p>
205
206  <p>Revised
207  <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->09 April, 2007<!--webbot bot="Timestamp" endspan i-checksum="30014" --></p>
208
209  <p><i>Copyright &copy; 2003-<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y" startspan -->2007<!--webbot bot="Timestamp" endspan i-checksum="778" -->
210   <a href="contact.html">Andreas Huber D&ouml;nni</a></i></p>
211
212  <p><i>Distributed under the Boost Software License, Version 1.0. (See
213  accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
214  copy at <a href=
215  "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</i></p>
216</body>
217</html>
Note: See TracBrowser for help on using the repository browser.