The document discusses the dependability engineering tool SimfiaNeo. It defines dependability as a system property where users have justified confidence in the system's services. Dependability engineering involves predicting failures, assessing risks, and mitigating consequences. SimfiaNeo allows modeling systems using the AltaRica language, validating models for consistency, simulating models, generating cuts of failure scenarios, and producing documentation reports. Existing components from Simfia like the AltaRica engine are reused in SimfiaNeo.
4. | P. 4
Dependability
Dependability as a property of a system:
a system is dependable if the users can have a justified confidence in the
service it provides
SimfiaNeo – SiriusCon 2022 | 2022-06-14
5. | P. 5
Dependability
Dependability as a property of a system:
a system is dependable if the users can have a justified confidence in the
service it provides
Dependability as a field of engineering:
dependability consists in foreseeing failures, assess potential risks and
mitigating consequences
SimfiaNeo – SiriusCon 2022 | 2022-06-14
6. | P. 6
Dependability
Dependability as a property of a system:
a system is dependable if the users can have a justified confidence in the
service it provides
Dependability as a field of engineering:
dependability consists in foreseeing failures, assess potential risks and
mitigating consequences
Keywords: Reliability, Availability, Maintainability, Safety
SimfiaNeo – SiriusCon 2022 | 2022-06-14
12. | P. 12
SimfiaNeo – AltaRica
Developed by LaBRI (University of Bordeaux) with several industrials partners
High level formal description language based on the notion of mode automata
dedicated to modeling complex systems
Textual language
SimfiaNeo – SiriusCon 2022 | 2022-06-14
13. | P. 13
SimfiaNeo – AltaRica
Developed by LaBRI (University of Bordeaux) with several industrials partners
High level formal description language based on the notion of mode automata
dedicated to modeling complex systems
Textual language
SimfiaNeo – SiriusCon 2022 | 2022-06-14
14. | P. 14
SimfiaNeo – Model edition – System breakdown
SimfiaNeo – SiriusCon 2022 | 2022-06-14
15. | P. 15
SimfiaNeo – Model edition – System breakdown
Control system
∟Main line
∟ Engine 1
∟ Engine 2
∟ Power supply 1
∟ …
∟Backup line
∟ …
∟Switch
SimfiaNeo – SiriusCon 2022 | 2022-06-14
16. | P. 16
SimfiaNeo – Model edition – System breakdown
Control system
∟Main line
∟ Engine 1
∟ Engine 2
∟ Power supply 1
∟ …
∟Backup line
∟ …
∟Switch
SimfiaNeo – SiriusCon 2022 | 2022-06-14
node Engine
[…]
edon
[…]
node Main_line
Engine_1 : Engine;
Engine_2 : Engine;
[…]
edon
node Control_system
Main_line : Main_line;
[…]
edon
17. | P. 17
SimfiaNeo – Model edition – System breakdown
SimfiaNeo – SiriusCon 2022 | 2022-06-14
18. | P. 18
SimfiaNeo – Model edition – Behavior
SimfiaNeo – SiriusCon 2022 | 2022-06-14
19. | P. 19
SimfiaNeo – Model edition – Behavior
Events/Transitions represent
switches in state automatons
They are made of:
- A name
- A guard
- Effects
- A law
Majority of events represent
failure modes
SimfiaNeo – SiriusCon 2022 | 2022-06-14
20. | P. 20
SimfiaNeo – Model edition – Behavior
Events/Transitions represent
switches in state automatons
They are made of:
- A name
- A guard
- Effects
- A law
Majority of events represent
failure modes
SimfiaNeo – SiriusCon 2022 | 2022-06-14
node Computer
[…]
event
fail_loss;
fail_erroneous;
trans
state1 = nominal |- fail_loss -> state1 := lost;
(state1 = nominal) |- fail_erroneous -> state1 := erroneous;
extern
law <event fail_loss> = exponential(0.0001) ;
law <event fail_erroneous> = exponential(0.0001) ;
edon
21. | P. 21
SimfiaNeo – Model edition – Behavior
SimfiaNeo – SiriusCon 2022 | 2022-06-14
22. | P. 22
SimfiaNeo – Model edition – Behavior
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Law
Name
Guard
Effects
23. | P. 23
SimfiaNeo – Model edition – Failures Propagation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
24. | P. 24
SimfiaNeo – Model edition – Failures Propagation
Connectors are interfaces of
bricks
Assertions are logical
equations, used in two places:
- To define value of an
output depending on the
brick inputs and the brick
internal state (state
automaton)
- To define value of an input
as equal to the output
from another brick
SimfiaNeo – SiriusCon 2022 | 2022-06-14
25. | P. 25
SimfiaNeo – Model edition – Failures Propagation
Connectors are interfaces of
bricks
Assertions are logical
equations, used in two places:
- To define value of an
output depending on the
brick inputs and the brick
internal state (state
automaton)
- To define value of an input
as equal to the output
from another brick
SimfiaNeo – SiriusCon 2022 | 2022-06-14
node Computer
[…]
flow
supply : PowerValues : in;
data : Data : out;
assert
data = if (state1 = lost) // no matter the input, we have no output data
then no_data
else if (state1 = erroneous) and (supply = power) // we produce erroneous data
then erroneous_data
else if (state1 = nominal) and (supply = power) // everything is nominal
then nominal_data // last cases are when not being powered
else no_data;
edon
node Main_line
[…]
assert
Voter.data_1 = Computer_1.data;
edon
26. | P. 26
SimfiaNeo – Model edition – Failures Propagation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Assertions typing with
autocompletion feature
27. | P. 27
SimfiaNeo – Model edition – Failures Propagation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Assertions typing with
autocompletion feature
Assertions drawing
in diagrams
28. | P. 28
SimfiaNeo – Model edition – Observers
SimfiaNeo – SiriusCon 2022 | 2022-06-14
29. | P. 29
SimfiaNeo – Model edition – Observers
Observers are used to define
feared situations, and/or
indicators we want to
compute
An observer is defined by:
- A name
- A type (5 possible)
- An expression
SimfiaNeo – SiriusCon 2022 | 2022-06-14
30. | P. 30
SimfiaNeo – Model edition – Observers
Observers are used to define
feared situations, and/or
indicators we want to
compute
An observer is defined by:
- A name
- A type (5 possible)
- An expression
SimfiaNeo – SiriusCon 2022 | 2022-06-14
node Control_system
[…]
extern
predicate Loss_of_control = <term(Control = no_data)>;
predicate Erroneous_control = <term(Control = erroneous_data)>;
edon
31. | P. 31
SimfiaNeo – Model edition – Observers
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Creation and
caracterization
through table
NatTable
32. | P. 32
SimfiaNeo – Model edition – Observers
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Creation and
caracterization
through table
Expressions typing with
autocompletion feature
NatTable
40. | P. 40
SimfiaNeo – Model validation – Truth table
SimfiaNeo – SiriusCon 2022 | 2022-06-14
41. | P. 41
SimfiaNeo – Model validation – Truth table
AltaRica expressions can be
complex and/or not easily
understandable for external
reviewers
SimfiaNeo – SiriusCon 2022 | 2022-06-14
if ((data_1 != nominal_data) and (data_2 != nominal_data))
or ((data_1 != nominal_data) and (data_3 != nominal_data))
or ((data_2 != nominal_data) and (data_3 != nominal_data))
// if at least 2 channels are lost
then no_data
// at least 2 channels are nominal so 2 consistent
else nominal_data
42. | P. 42
SimfiaNeo – Model validation – Truth table
AltaRica expressions can be
complex and/or not easily
understandable for external
reviewers
=> Truth table formalism
SimfiaNeo – SiriusCon 2022 | 2022-06-14
if ((data_1 != nominal_data) and (data_2 != nominal_data))
or ((data_1 != nominal_data) and (data_3 != nominal_data))
or ((data_2 != nominal_data) and (data_3 != nominal_data))
// if at least 2 channels are lost
then no_data
// at least 2 channels are nominal so 2 consistent
else nominal_data
43. | P. 43
SimfiaNeo – Model validation – Simulation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
44. | P. 44
SimfiaNeo – Model validation – Simulation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
45. | P. 45
SimfiaNeo – Model validation – Simulation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Variables
view
46. | P. 46
SimfiaNeo – Model validation – Simulation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Graphical
view
Variables
view
47. | P. 47
SimfiaNeo – Model validation – Simulation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Graphical
view
Variables
view
Events
to play
49. | P. 49
SimfiaNeo – Model exploitation – Cuts generation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
50. | P. 50
SimfiaNeo – Model exploitation – Cuts generation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Generation of combinations
of failures leading to a given
feared situation
Computation of probabilities
of these feared scenarios
51. | P. 51
SimfiaNeo – Model exploitation – Cuts generation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Generation of combinations
of failures leading to a given
feared situation
Computation of probabilities
of these feared scenarios
Storage of the results with the
project
52. | P. 52
SimfiaNeo – Model exploitation – Going further…
SimfiaNeo – SiriusCon 2022 | 2022-06-14
53. | P. 53
SimfiaNeo – Model exploitation – Going further…
SimfiaNeo – SiriusCon 2022 | 2022-06-14
54. | P. 54
SimfiaNeo – Model exploitation – Going further…
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Statistics of
events in cuts
55. | P. 55
SimfiaNeo – Model exploitation – Going further…
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Dashboards
Statistics of
events in cuts
56. | P. 56
SimfiaNeo – Model exploitation – Monte-Carlo
SimfiaNeo – SiriusCon 2022 | 2022-06-14
57. | P. 57
SimfiaNeo – Model exploitation – Monte-Carlo
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Computation of a great
number of random
simulations
Computation of numerical
indicators on each simulation
Average of the simulations
approximate the indicators
58. | P. 58
SimfiaNeo – Model exploitation – Monte-Carlo
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Computation of a great
number of random
simulations
Computation of numerical
indicators on each simulation
Average of the simulations
approximate the indicators
59. | P. 59
SimfiaNeo – Model exploitation – Document generation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
60. | P. 60
SimfiaNeo – Model exploitation – Document generation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Generation of reports
referencing libraries, system,
results, …
Fully customizable template
61. | P. 61
SimfiaNeo – Model exploitation – Document generation
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Generation of reports
referencing libraries, system,
results, …
Fully customizable template
79. | P. 79
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Table – Sirius vs NatTable
80. | P. 80
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Table – Sirius vs NatTable
81. | P. 81
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Table – Sirius vs NatTable
Quick result
Easy
Declarative
Not flexible
UX can be refined
82. | P. 82
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Table – Sirius vs NatTable
Quick result
Easy
Declarative
Not flexible
UX can be refined
83. | P. 83
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Table – Sirius vs NatTable
Quick result
Easy
Declarative
Not flexible
UX can be refined
Flexible
Good UX
Still benefits some Sirius capabilities
Expensive
Hard
84. | P. 84
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Table – Sirius vs NatTable
Quick result
Easy
Declarative
Not flexible
UX can be refined
Flexible
Good UX
Still benefits some Sirius capabilities
Expensive
Hard
Sirius Editor (ISiriusEditor)
Sirius Session
86. | P. 86
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Storing elements in Database
87. | P. 87
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Storing elements in Database
Tens of observers
88. | P. 88
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Storing elements in Database
Tens of observers Tens of computations
×
89. | P. 89
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Storing elements in Database
Tens of observers Tens of computations Tens of thousands of
cuts
× ×
90. | P. 90
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Storing elements in Database
Tens of observers Tens of computations Tens of thousands of
cuts
× ×
=
Millions of cuts
91. | P. 91
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Storing cuts – model vs database
Loading
Saving
Model traversal
Memory usage
Useless data in memory
92. | P. 92
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Storing cuts in database
93. | P. 93
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Storing cuts in database
94. | P. 94
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Storing cuts in database
95. | P. 95
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Storing cuts in database
96. | P. 96
SimfiaNeo – SiriusCon 2022 | 2022-06-14
Storing cuts in database