Skip to content

tukcps/SysMD

Repository files navigation

SysMD

SysMD Notebook

This is SysMD Notebook for SysML v2.

SysMD Notebook supports the creation of requirements and specification documents and models, where

  • Document cells are linked with a model in a Notebook-like way with document and code cells, and
  • Model cells can be executed, i.e., by computing values and checking consistency.
  • Documents and models can be exchanged as Markdown documents via, e.g., Email. This allows the inclusion of many stakeholders that are not expert in systems engineering.

Furthermore, SysMD Notebook's requirements are executable. With executable requirements and specification documents, we mean that an integrated constraint solver checks the consistency of SysML v2 models and computes missing values. Excel in early system analysis does a similar job; SysMD does it a bit more sophisticated and integrated with SysML v2. SysMD Notebook's UI looks as follows:

SysMD

The links below give a brief introduction into SysMD Notebook (Kickstart) and SysML v2. Note that these Markdown-Documents with its integrated SysML v2 and KerML models can be edited (and computed!) with SysMD Notebook:

These Markdown files are also available after starting SysMD notebook as Projects. Then, one can see how the solver computes and constrains values in the rendered documents.

The compiler translates model cells into the SysMLv2 KerML metamodel. On this metamodel, the constraint solver checks the consistency of

  • values and
  • units

and returns an over-approximation of values that satisfy all constraints or an empty set if no consistent values exist.

Also, in the folder 'doc' some documentation is provided.

Running SysMD Notebook

Via binary installer

  1. Make sure you have at least Java 21 installed on your Computer.
  2. Download the installer of the SysMD Notebook from the 'releases' page in GitHub (https://github.com/tukcps/SysMD/releases)
  3. Run the Installer and use the SysMD Notebook.

Note that eventually on Windows or OS X you have to permit installation of non-signed software in the security settings.

Via Gradle

To run the frontend, just use the build system Gradle:

./gradlew bootRun

resp. on Windows systems:

gradlew.bat bootRun

Creating installer

To create a platform-specific installer, use the gradle target sysMDPackage.

./gradlew sysMDPackage

Access via REST

SysMD notebook can also be used via REST in a headless mode. Check the swagger API documentation after start under the local URL http://localhost:8081/swagger-ui/index.html#/

Supported and unsupported parts of KerML and SysML v2

SysMD Notebook is a work in progress and does not (yet) support the full range of KerML and SysML v2. However, a significant subset is supported with a focus on the intended use case. The following gives some indications on what is supported:

  • Supported: modeling of packages, items, parts, ports, interfaces, connections, attributes, calculations, expressions, requirements, constraints, states; both usages and definitions.
  • Not supported: time slices, user-defined keywords, views, etc.

Note that automata and states might compile, but the constraint propagation mechanism does not use the respective parts properly. Also, KerML is implemented with support for features, classes, packages, expressions, etc. -- but with some restrictions for expressions.

Acknowledgements

SysMD was developed and is maintained by

  • University of Kaiserslautern-Landau, Chair of Cyber-Physical Systems
    • Christoph Grimm (RPTU)
    • Sebastian Post (RPTU)
    • Axel Ratzke (RPTU)
    • Carna Zivkovic (NXP)
    • Theogene Uribumeneshi (RPTU, NXP)
    • Moritz Schuler (RPTU)
    • Moritz Herzog (RPTU)
    • Nicolas Theobald (RPTU)
  • HOOD Group
    • Markus Eberhard

The solver very much profits from the AADD library for computation with ranges:

The work was partially supported by EC and German BMBF within the research projects

  • Arrowhead Tools (EC & BMBF)
  • GENIAL! (BMBF)
  • KI4BoardNet (BMBF)

About

SysMD is a SysML v2/KerML tool with an intuitive, notebook-style interface that makes getting started easy. What truly sets SysMD apart is its integrated solver, enabling engineering calculations directly within the model while automatically ensuring consistency across constraints and requirements.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Languages