MIT license
|
PauWare
is both a Java engine and an Application Programming Interface -API-
for implementing and executing UML State Machine Diagrams and SCXML models.
|
© Franck.Barbier@FranckBarbier.com
- PauWare 1.3: Feb. 2015 (Java ME, SE and, EE)
- PauWare 2.0 (a.k.a. PauWare2): Sep. 2021 (Java 9)
|
Harel's Statecharts are used to graphically model and implement reactive software-intensive systems.
UML State Machine Diagrams and SCXML models are variations of Harel's Statecharts. Further information:
Technical notes
PauWare2 has been released on Sep. 2021 based on the
Java 9 module technology. Since PauWare2 has no library dependencies, its memory print is low.
Beyond, PauWare2 may benefit from native compilation based on Ahead-Of-Time (AOT) compilation.
PauWare2 is then particularly, but not exclusively, appropriate and useful for the design ofInternet of Things (IoT)
applications.
PauWare2 comes up with PauWare2Web.
PauWare2Web is an optional tool that allows the live visualization of running state machines within a Web browser.
Typically, IOT applications written with PauWare2 won't use PauWare2Web
because of their (probable) embedded nature. However, at design time, requirements capture and comprehension,
test, tuning… may greatly benefit from PauWare2Web.
Getting started (access, use and play with case studies below)
- Download PauWare2.zip
as a Maven project;
download PauWare2Web.zip
as a Maven project
- API: Javadoc
- Users' guide: book on PauWare
- Case studies
- “Allowed event conflict”
here…
The principle of “allowed event” in UML and SCXML and how to manage possible conflicts with “common” events on transitions.
- Android energy management
here…
Why PauWare is appropriate and useful for the Internet of Things (IoT)!
- Barbados Crisis Management System (BCMS)
here…
A sizeable case study with parallelism issues to show that PauWare scales up!
- Banking system (PauWare 1.3)
here…
A professional case study that is based on a SQL database and
JavaFX
for the user interface.
- Beverage vending machine
here…
A simple way to use timer events in PauWare.
- “Completion event”
here…
The principle of “completion” in UML (i.e., a transition without any labeling event) that is not part of SCXML.
- History
here…
The principle of shallow and deep “history” states in UML and SCXML.
- My device
here…
A complex behavior modeled with a state machine dealing with tricky state nesting, parallelism and, event sending.
- My stack
here…
The best way to start for beginners: a state machine for a stack having
Empty
, Not empty
… as states
with pop
, push
… as events.
- Programmable thermostat
here…
A complex professional case study based on
JavaFX.
The idea of models@run-time is illustrated: while the “normal” app. is running,
models in a Web browser are animated as images of what happens in the app. in an asynchronous way.
- Railcar control system (PauWare 1.3)
here…
A professional case study that is based on a SQL database and the
Java Enterprise Edition (Java EE) technology.
- ReMiCS (PauWare 1.3)
here…
a simple business “Tourist excursion management” app.
- Single nesting
here…
How to, if needed, have a single state nested in its wrapper state.