All Projects → AlexandreDecan → Sismic

AlexandreDecan / Sismic

Licence: lgpl-3.0
Sismic Interactive Statechart Model Interpreter and Checker http://sismic.readthedocs.org/

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Sismic

Kissmda
Keep It Simple Stupid, MDA!
Stars: ✭ 31 (-66.3%)
Mutual labels:  uml
Vnote
A pleasant note-taking platform.
Stars: ✭ 8,714 (+9371.74%)
Mutual labels:  uml
Jstate
Advanced state machines in Java.
Stars: ✭ 84 (-8.7%)
Mutual labels:  finite-state-machine
Uml Diagram For Python Design Pattern Examples
UML diagram list of GoF design pattern examples written in Python.
Stars: ✭ 40 (-56.52%)
Mutual labels:  uml
Asciidoctor Kroki
Asciidoctor.js extension to convert diagrams to images using Kroki!
Stars: ✭ 55 (-40.22%)
Mutual labels:  uml
Designpattern
设计模式
Stars: ✭ 66 (-28.26%)
Mutual labels:  uml
Microflow
Microservice orchestration inspired by AWS Step functions and Apache Airflow
Stars: ✭ 24 (-73.91%)
Mutual labels:  finite-state-machine
Finity
A finite state machine library for Node.js and the browser with a friendly configuration DSL.
Stars: ✭ 88 (-4.35%)
Mutual labels:  finite-state-machine
Floatsidebar.js
Lightweight (2kb gzipped), zero-dependency javascript library for making float sidebars based on the finite state machine
Stars: ✭ 56 (-39.13%)
Mutual labels:  finite-state-machine
Resumablefunctions.jl
C# style generators a.k.a. semi-coroutines for Julia.
Stars: ✭ 82 (-10.87%)
Mutual labels:  finite-state-machine
Lein Plantuml
A Leiningen plugin for generating UML diagrams using PlantUML
Stars: ✭ 43 (-53.26%)
Mutual labels:  uml
Supreme
Generate UML diagrams of Shiny modules
Stars: ✭ 52 (-43.48%)
Mutual labels:  uml
Modelio
Modelio is a modeling solution offering a wide range of functionalities based on the main standards of enterprise architecture, software development and systems engineering.
Stars: ✭ 65 (-29.35%)
Mutual labels:  uml
Plantuml Styler
Online tool to make your PlantUML diagrams look great.
Stars: ✭ 35 (-61.96%)
Mutual labels:  uml
Fsm
Finite State Machine for Go
Stars: ✭ 1,269 (+1279.35%)
Mutual labels:  finite-state-machine
Uml Synchronously Store To Db
UML建模,实时存储到数据库,Java实现
Stars: ✭ 14 (-84.78%)
Mutual labels:  uml
Hal
🔴 A non-deterministic finite-state machine for Android & JVM that won't let you down
Stars: ✭ 63 (-31.52%)
Mutual labels:  finite-state-machine
Metauml
UML diagrams for LaTeX/MetaPost
Stars: ✭ 91 (-1.09%)
Mutual labels:  uml
Plantuml Service
High-performance HTTP service for PlantUML, used in Kibela
Stars: ✭ 86 (-6.52%)
Mutual labels:  uml
Xstateful
A wrapper for xstate that stores state, handles transitions, emits events for state changes and actions/activities, and includes an optional reducer framework for updating state and invoking side-effects
Stars: ✭ 81 (-11.96%)
Mutual labels:  finite-state-machine

Sismic for Python

.. image:: https://travis-ci.com/AlexandreDecan/sismic.svg?branch=master :target: https://travis-ci.com/AlexandreDecan/sismic .. image:: https://coveralls.io/repos/AlexandreDecan/sismic/badge.svg?branch=master&service=github :target: https://coveralls.io/github/AlexandreDecan/sismic?branch=master .. image:: https://api.codacy.com/project/badge/grade/10d0a71b01c144859db571ddf17bb7d4 :target: https://www.codacy.com/app/alexandre-decan/sismic .. image:: https://badge.fury.io/py/sismic.svg :target: https://pypi.org/project/sismic/ .. image:: https://readthedocs.org/projects/sismic/badge/?version=latest :target: https://sismic.readthedocs.io/

Sismic Interactive Statechart Model Interpreter and Checker

Sismic is a recursive acronym that stands for Sismic Interactive Statechart Model Interpreter and Checker.

Statecharts are a well-known visual modeling language for representing the executable behavior of complex reactive event-based systems. Sismic library for Python (version 3.5 or higher) provides a set of tools to define, validate, simulate, execute and test 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
  • Fully controllable simulation clock, with support for real and simulated time
  • Built-in support for expressing actions and guards using regular Python code, can be easily extended to other programming languages
  • Support for Design by Contract (DbC) for statecharts: contracts can be specified to express invariants, pre- and postconditions on states and transitions
  • Runtime monitoring of behavioral properties expressed as statecharts
  • Built-in support for behavior-driven development (BDD)
  • Support for communication between statecharts
  • Synchronous and asynchronous executions
  • Statechart visualization using PlantUML <http://www.plantuml.com/plantuml>__

Installation

Sismic requires Python >=3.5. 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.

Starting from release 1.0.0, Sismic adheres to a semantic versioning <https://semver.org>__ scheme.

Documentation

The documentation for the latest distributed version is available on sismic.readthedocs.io <http://sismic.readthedocs.io/>_.

Many examples are available in docs/examples <https://github.com/AlexandreDecan/sismic/tree/master/docs/examples>_.

The documentation can also be directly built from the docs <https://github.com/AlexandreDecan/sismic/tree/master/docs>_ directory using Sphinx.

The scientific article A method for testing and validating executable statechart models <https://doi.org/10.1007/s10270-018-0676-3>_ presenting the method and techniques supported by Sismic for validating and testing statecharts, is published in Springer's Software and Systems modeling journal in 2018.

Changelog

See documentation's changelog <http://sismic.readthedocs.io/en/master/changelog.html>_.

Credits

The Sismic library for Python is mainly developed by Alexandre Decan at the Software Engineering Lab <http://informatique.umons.ac.be/genlog>_ of the University of Mons <http://www.umons.ac.be>_ with the help of many contributors <http://sismic.readthedocs.io/en/master/authors.html>_.

Sismic is released as open source software under the GNU Lesser General Public Licence version 3.0 (LGPLv3) <http://www.gnu.org/licenses/lgpl-3.0.html>_.

You can cite the Sismic library using:

.. code::

@article{sismic-article,
    title = "Sismic—A Python library for statechart execution and testing",
    journal = "SoftwareX",
    volume = "12",
    pages = "100590",
    year = "2020",
    issn = "2352-7110",
    doi = "https://doi.org/10.1016/j.softx.2020.100590",
    url = "http://www.sciencedirect.com/science/article/pii/S2352711020303034",
    author = "Alexandre Decan and Tom Mens",
}

or

.. code::

@software{sismic,
  author = {Decan, Alexandre},
  title = {Sismic Interactive Statechart Model Interpreter and Checker},
  url = {https://github.com/AlexandreDecan/sismic},
}

You can cite the associated research article (PDF <https://decan.lexpage.net/files/SOSYM-2018.pdf>_) using:

.. code::

@article{sismic2018-sosym,
   author = {Mens, Tom and Decan, Alexandre and Spanoudakis, Nikolaos},
   journal = {Software and Systems Modeling},
   publisher = {Springer},
   year = 2018,
   title = {A method for testing and validating executable statechart models},
   doi = {10.1007/s10270-018-0676-3},
   url = {https://link.springer.com/article/10.1007/s10270-018-0676-3},
 }
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].