Sismic Interactive State Machine Interpreter and Checker
Project description
Sismic Interactive State Machine Interpreter and Checker
Statecharts are a well-known visual language for modeling the executable behavior of complex reactive event-based systems. The Sismic library for Python >= 3.4 provides a set of tools to define, validate, simulate, execute and debug statecharts. More specifically, Sismic provides:
An easy way to define and to import statecharts, based on the human-friendly YAML markup language
A statechart interpreter offering a discrete, step-by-step, and fully observable simulation engine
Synchronous and asynchronous simulation, in real time or simulated time
Support for communication between statecharts and co-simulation
Built-in support for expressing actions and guards using regular Python code
A design-by-contract approach for statecharts
A unit testing framework for statecharts, including generation of test scenarios
Sismic provides full support for the majority of the UML 2 statechart concepts:
simple states, composite states, orthogonal (parallel) states, initial and final states, shallow and deep history states
state transitions, guarded transitions, automatic (eventless) transitions, internal transitions
statechart variables and their initialisation
state entry and exit actions, transition actions
internal and external events, parametrized events, timed events
In addition to this, contracts can be specified to express invariants, pre- and postconditions on states, transitions and the statechart itself.
The Sismic library is written in a modular way:
The semantics of the statechart interpreter is based on the specification of the SCXML semantics (with a few exceptions), and can be easily tuned to other semantics.
While currently, contracts, guards and actions are expressed in Python, this support can be easily extended to other languages.
Installation
Sismic can be installed using pip as usual: pip install sismic. This will install the latest stable version.
You can also install Sismic from this repository by cloning it. The development occurs in the master branch, the latest stable distributed version is in the stable branch.
Sismic requires Python >=3.4 but should also work with Python 3.3.
Documentation
The latest version of the documentation is available at http://sismic.readthedocs.org/ .
It can also be directly built from the docs/ directory using Sphinx.
Credits
Developed by Alexandre Decan at the University of Mons (Belgium).
GNU Lesser General Public License, version 3.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sismic-0.12.2.tar.gz
.
File metadata
- Download URL: sismic-0.12.2.tar.gz
- Upload date:
- Size: 47.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73e6dd692a5b161201252b5baadcfaa4c4b5273eac2e4bfb7743b38fe0f6533a |
|
MD5 | 0de63648cfd18a405a79c9ad9c8c7441 |
|
BLAKE2b-256 | c66fb1eec6bf39acda6a459ed2186845446a33c47e69643b0e17944194c033f2 |
File details
Details for the file sismic-0.12.2-py3-none-any.whl
.
File metadata
- Download URL: sismic-0.12.2-py3-none-any.whl
- Upload date:
- Size: 23.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 300b9ec757a654da9627748b4971a1c55973abea9dc07a3612a342b649e3f24a |
|
MD5 | 821df7d5928989ae61e91f3bb8965e58 |
|
BLAKE2b-256 | 5039e358fe296127d6dbed4068b790d45a1e318e80d6596a482bc63250854117 |