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 modeled with underlying GSMPs (Generalized Semi-Markov Processes). By modelling the system of interest as a Stochastic StateFlow (SSF) model, SMP Tool can analyze the system in several manners. Firstly, a transient analysis can be performed to find the probability of a system failure after a time period. Secondly, a sensitive analysis can bu utilized to identify which parameters in the model have the greatest impact on the system failure probability. Both of these analysis can be performed both through Monte Carlo simulations and through an engine mainly relying on symbolic manipulations.
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.
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:
Contact
Release notes
------------------------------------------------------------------------------------------------------------
Beta v3.9.3
-Minor bug fixes
Beta v3.9.2
-Minor bug fixes
Beta v3.9.1
-Minor bug fixes
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).