-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
70 lines (52 loc) · 2.21 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
sf2dve - Stateflow to DVE transformation tool
=============================================
Licence: GNU LGPL 2.1 or any later version (more in LGPL.txt)
Copyright: Pavla Kratochvilova, 2015
Overview
Sf2dve is a tool transforming Stateflow diagrams into DVE,
the native input language of DiVinE model checker
(https://divine.fi.muni.cz/), in order to enable automated
formal verification of the Stateflow systems. The program takes
either MathWorks SLX file format or XML document and generates
DVE source code to either standard output or a file.
Because of the Stateflow format being proprietary, formal
correctness of the transformation cannot be guaranteed.
The algorithm is based on informal specification contained in User's
Guide (http://www.mathworks.com/help/pdf_doc/stateflow/sf_ug.pdf)
and on observations of Stateflow behaviour.
Supported Stateflow features:
* states with 'entry', 'during' and 'exit' actions
* transitions with conditions, 'condition' and 'transition' actions
* hierarchy of the states
* labelled default transitions
* implicit tick event
* variables of integer and boolean types
* C as action language
Unsupported Stateflow features:
* events (including 'on event' actions, transitions guarded with
events, event broadcasting)
* bind actions
* AND decomposition of states
* connective and history junctions
* functions, boxes
* variables of float types
* MATLAB as action language
Limitations:
The range of integer types differ in Stateflow and DVE. Also boolean
variables from Stateflow are translated as byte variables in DVE.
Dependencies:
Sf2dve is written in python3 and uses libraries lxml a ply.
Following fedora or debian packages are required for running sf2dve:
* python3 (version >=3.2)
* python3-lxml
* python3-ply
Usage examples:
python3 sf2dve.py lift.slx lift.dve
python3 sf2dve.py lift.xml lift.dve
Full usage: python3 sf2dve.py --help
The program is also able to generate an additional process that
models simplified environment for the model. The variables with the
scope 'input' are then nondeterministically assigned values within
given range.
This tool was created as part of a bachelor's thesis on Masaryk
University Faculty of Informatics, Brno.