Skip to main content
To KTH's start page To KTH's start page

SMP Tool

As safety-critical systems grows in complexity, so does also the task of performing dependability analyses of them. Dependability of safety-critical systems is however essential in arguing about their level of safety.

SMP Tool (Semi-Markov Process-tool) is a Matlab application, developed on Matlab version R2023b, for dependability analysis of safety-critical systems using SMPs (Semi-Markov Processes). By modelling the system of interest as a Stochastic StateFlow (SSF) model, SMP Tool can analyze the system in several manners:

  • Steady state analysis
  • Dependability analysis
  • Sensitivity analysis

For more information about each functionality of SMP-tool as well as how to install the app, consult the quickstart guide downloadable below. The .zip-folder SMP-tool contains the tool itself as well as example models. The tool depend on the Matlab toolboxes: symbolic toolbox, statistics and machine learning toolbox, Simulink, and Stateflow.

SMP Tool v3.9 (zip 3.8 MB)

SMP Tool v3.8 (zip 3.8 MB)

SMP Tool v3.7.1 (zip 9.6 MB)

SMP Tool v3.7 (zip 9.8 MB)

SMP-tool v3.6 (zip 9.9 MB)

SMP-tool v3.5 (zip 9.9 MB)

SMP-tool v3.4 (zip 9.2 MB)

SMP-tool v3.3.1 (zip 9.2 MB)

SMP-tool v3.3 (zip 9.2 MB)

SMP-tool v3.2.2 (zip 9.1 MB)

SMP-tool v3.2.1 (zip 9.1 MB)

SMP-tool v3.2 (zip 9.1 MB)

SMP-tool v3.1 (zip 9.0 MB)

SMP-tool v2.3 (zip 8.9 MB)

Quick-start guides:

Quickstart guide v3.9 (pdf 336 kB)

Quickstart guide v3.8 (pdf 336 kB)

Quickstart guide v3.7 (pdf 322 kB)

Quickstart guide v3.6 (pdf 401 kB)

Quickstart guide v3.5 (pdf 402 kB)

Quickstart guide v3.4 (pdf 298 kB)

Tool manuals:

Manual for v3.6 (pdf 1.5 MB)

Manual for v3.5 (pdf 1.5 MB)

Manual for v3.4 (pdf 1.5 MB)

Manual for v3.3 (pdf 1.5 MB)

Manual for v3.2 (pdf 1.5 MB)

Manual for v3.1 (pdf 1.5 MB)

Manual for v2.3 (pdf 1.1 MB)


Release notes


Beta v3.9 (2024-04-16)

- Popup when analysis is running is added
- Automatic reloading of changed models is added
- Some bugs are fixed

Beta v3.8 (2024-02-06)

- New GUI

Beta v3.7.1 (2023-12-21)

- Bug fixed in analytical solver

Beta v3.7 (2023-11-07)

- GUI is simplified
- Support for other models than SSFs is removed
- Analytical solver for SSFs is optimised
- Some bugs are fixed

Beta v3.6 (2023-07-07)

- Analytical solver for SSFs is optimised
- Some bugs are fixed

Beta v3.5 (2023-05-02)

- SSF to GSMS transformation is optimised
- Support is added for broadcasting of multiple events in SSFs
- Support is added for inner transitions which doesn't broadcast events in SSFs
- Support is added for branches at time zero in SSFs
- Analytical solver for SSFs is added
- Some bugs are fixed

Beta v3.4 (2022-09-07)

- 64-bit Windows is no longer required but GSMS simulation will be significantly slower on other plattforms
- OR states without default transition are allowed if it has no sinked transitions
- ... is allowed in guard expressions for multi line guards
- Commented out objects are allowed in SSF models and are ignored
- SSF sanity checker is improved and allows SSF models without top level AND state
- A configurable confidence level is added to settings
- Memory usage for GSMS simulation is reduced
- SSF to GSMS transformation is optimised
- Simulation cache file size is reduced
- Some bugs and GUI issues are fixed

Beta v3.3.1 (2022-06-03)

-The version only works for windows 64-bit

-Upload updated så that all files are contained

Beta v3.3 (2022-06-02)
- SSF parser used for GSMS simulation backend is optimised (5x speedup)
- GSMS simulator used for GSMS simulation backend is compiled (30x speedup)
- Initial state for OR states with one child is automatically set
- Some bugs are fixed

Beta v3.2.2 (2022-04-08)

-Error messages improved

Beta v3.2.1 (2022-04-08)

-Bugfixes for edge-case models

Beta v3.2 (2022-04-08)

- Support for older version than MATLAB R2021b ends
- Add new parallel model GSMS simulation backend (SSF parser, transformation and GSMS simulator)
- Add button for reverting to v3.1 parallel model simulation backend
- Improve MC sensitivity analysis caching
- Add new parallel model button
- Some bugfixes

Beta v3.1 (2021-12-06)

- Bug fix resolving issues for the sensitivity analysis when using Monte Carlo simulation.
- Bug fix resolving that new models were saved in the incorrect directory.
- The plot for sensitivity analysis using Monte Carlo simulation has been improved and is now also showing the confidence intervals.
- The naming convention for the numerical solver has been changed to numerical/symbolic.
- The progress bar has now been updated for the sensitivity analysis using Monte Carlo simulation so it is cancellable over all simulations.
- A progress bar is now showing for loading and creating new models.
- It is now possible to use earlier saved simulations for transient analysis to add more simulations to the final result, without having to recalculate the earlier simulations.
- A GUI switch has been added to inform about what model type is being used in the tool, and in turn which analysis that are possible to use.
- Improved sanity checks for model parsing and when performing sensitivity analysis, for example checks for whether the parameters are valid or not.
- The x-axis for the sensitivity analysis is now fixed to the specific ranges of the parameters.
- The user will now receive a confirmation message if starting multiple analysis at the same time.
- General backend improvements and fixes.

Beta v3.0 (2021-10-27)

- Introducing support for SSF models including:

  -Syntax and semantics closer to the syntax of Stateflow

  -Support for transient and sensitivity analysis through simulation if the model has parallel components

Beta v2.3 (2021-10-06)

-Support for Matlab version 2020b added

  -Progressbar fixed for simulations.

  -Compare button fixed (for comparing several results)

-When creating a new model through the SMP-gui the model is directly loaded into the tool.

Beta v2.2 (2021-09-06)

-License file added

-Sensitivity analysis have gotten a designated button in the “run analysis” tab of the gui.

-The choice “no” has been removed from the “parameter and sensitivity analysis” tab

-The user can in the general settings choose whether to utilize previous simulations or not when performing a Monte Carlo simulation of a model

-In the resulting plots of comparing a result from the numerical and the Monte Carlo method the visualization of the confidence interval has been improved for readability.

-The user can now under the “transient analysis” tab choose between using “serial simulation” (slower but cancelable) or “parallel simulation” (faster but not cancelable and requires “parallel computing toolbox” for Matlab)

Beta v2.1.1 (2021-07-09)
-GUI window scaling reworked.
-Bug fixes:
-Error and warning messages been made more distinct for different errors.
-The settings windows now lock the main gui until they have been closed.
-Parameters created in the model can now be read without errors
-Other GUI related bugs fixed.
-Error handling has been expanded for some edge cases.

Beta v2.1 (2021-06-28):

-Button for comparison of results from different analyses added.

-Support for sensitivity analysis of hierarchical SMP-models added.

-Support for steady-state analysis of hierarchical SMP-models added.

-Bug fixed which caused problem when simulating a sample path for a model with non-absorbing down-states.

Beta v2.0.1 (2021-05-10):

-Support for transient analysis of hierarchical SMP-models added 

Beta v2.0 (2021-04-01):

-GUI reworked

-Support for general expolynomial distributions added

-Parameters in models updated to be more consistent with Stateflow

Beta v1.4.1 (2021-01-07):

-Manual file updated.

Beta v1.4 (2020-10-30):

-Speed for dependability- and sensitivity-analysis majorly increased.

-Support for specifying matlab expressions such as "logspace(1,2,10)" in the analysis time field.

-Different algorithms for inverse Laplace transform added which makes the analysis quicker and more accurate.

-The visualization of the Monte-Carlo simulation updated, e.g. plots showing confindence interval now added.

-Sanity check updated so that a branching transition where the probability adds up to more than 1 cannot be created.

-Old simulation alternative removed in favor of the newer ones.

-Loading bars for branching and non-branching transitions in the sensitivity analysis reduced to one common loading bar.

-"cancel"-option added for dependability analysis

-Error handling for when non-acceptable values are specified in the user-defined fields of the main-gui.

-Possibility to specify parameters that can be used in specifying transition timers has been added.

-A new sensitivity analysis for only chosen parameters has been added.

-Format changed for tables showing result of dependability analysis.

-Minor bug fixes for corner cases.

-Units for transition timer-distribution changed to Matlab units.

-Support for functions of parameters added for transition timer-distributions.

Beta v1.3.1 (2020-09-22):

-Bug fixed which caused the translation from seconds to hours for the model parameters to be wrong

Beta v1.3 (2020-09-07):

-Support for branching transitions has been added.

-Bug that sometimes would give the wrong expected sojourn in "table of transitions" has been fixed.

-Bug that sometimes would give the wrong holding time in "table of transitions" has been fixed.

-Visuals of "table of transition" has been updated.

-Support for naming models something else than "S1"and "S2" etc. has been added.

-The method for performing the steady-state analysis has been changed for higher accuracy.

-Additional fields has been added to the sensitivity analysis when branching transitions are present.

-Update button added "table of transitions" for if the model is changed while the window is open.

-Bug giving error for when opening a model without annotations has been fixed.

-Bug giving error when right-clicking in an empty stateflow chart has been fixed.

-The previous simulation functino has been replaced with two new simulation alternatives.

-It is now possible to comment off "down_state" without the tool still interpreting the state as a down state.

Beta v1.2 (2020-07-02):

 -User can now specify which units to give the parameters in when creating models

 -There is now a possibility to run the analyses of the tool from the Matlab command prompt

 -Bug in dependability and sensitivity analysis for when there are several uniform transitions from the same state fixed

 -Bug fixes in the display table of transitions window

 -Sanity check of models added which is run before performing analyses

 -The states of models are no longer required to be sequentially numbered

 -Start-up script for adding some modelling support tools into Stateflow added

 -"const" has been changed to "deg" to describe degenerate distributions

 -Possiblity to perform dependability analysis for several times as once added

 -Visual results from the dependability analysis changed

 -Support for branching transitions added

 -Bugs for steady-state analysis fixed

Beta v1.1:

  -User can now specify what relative error to calculate the dependability quantities with

  -The number of digits shown for the dependability quantities is now depending on the user specified error

  -Version name of the tool has been added to the top left corner of the main gui

Beta v1.0:

  -First release of SMP-tool


The creators acknowledge the following agencies and
projects for financial support: FFI, the Swedish strategic vehicle research and innovation programme through the AVerT project (reference number
2018-02727), and the European H2020 - ECSEL PRYSTINE (grant agreement number 783190).

Belongs to: Engineering Design
Last changed: May 20, 2024
EXHILO: Real-time exoskeleton control for human-in-the-loop optimization
HARU: On the compliance, reliability and motion control of a tabletop robot
IRIS: Novel Mechatronic Systems and Soft Robotics enabled by 4D Printing and Machine Learning
Excellence in production research (XPRES)
FIRE - the Future of mItigating Rural firEs
PICTORIAL - Predictive Intelligent Control for Resistance Welding
TADDO: Trustworthy Automated Driving DevOps
Entice - Enablers for trustworthy, infrastructure supported, autonomous vehicles
StorAIge: Embedded storage elements on next MCU generation ready for AI on the edge
BOAUT - Boundaries Of AUTonomy
Susan's Ride on Campus 2030
WASP: AD-EYE – an Open Modular Testbed
CAMPUS 2030 – Enabling systemic solutions for smart roads
ATRIUM: ArchiTectural RefInement using Uncertainty Management
InSecTT – Intelligent Secure Trustable Things
Rigorous Systems Engineering
SMP Tool