Safety, Dependability and Performance Analysis of Extended AADL Models 1 Marco Bozzano 2 Alessandro Cimatti 2 Marco Roveri 2 Joost-Pieter Katoen 1 Viet Yen Nguyen 1 Thomas Noll 1 1 Software Modelling and Verification Group RWTH Aachen University, Germany 2 Embedded Systems Group Fondazione Bruno Kessler, Italy ROCKS Kick-Off Meeting 28 September 2009 1 Funded by ESA/ESTEC under Contract No. 21171/07/NL/JD
54
Embed
Safety, dependability and performance analysis of extended AADL models
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Safety, Dependability and PerformanceAnalysis of Extended AADL Models1
Marco Bozzano2 Alessandro Cimatti2 Marco Roveri2
Joost-Pieter Katoen1 Viet Yen Nguyen1 Thomas Noll1
1Software Modelling and Verification GroupRWTH Aachen University, Germany
2Embedded Systems GroupFondazione Bruno Kessler, Italy
ROCKS Kick-Off Meeting28 September 2009
1Funded by ESA/ESTEC under Contract No. 21171/07/NL/JD
Safety, Dependability and PerformanceAnalysis of Extended AADL Models
AnalysesI Symbolic Model CheckingI SAT-SolvingI Probabilistic Model CheckingI FTAI FMEA
Case StudiesI Satellite Thermal Regulation
ManagerI Satellite FDIRI European Train Control
System Level 3
2009,Viet Yen Nguyen 5/23
AADL Syntax
AADL Example: Redundant Power System
Power
primary
backup
batt1
voltage
empty
voltage
batt2
voltage
empty
We shall show:I hybrid behaviour of the batteries,I composition of the power system,I formalisation to automata,I semantics as transition systems,I interweaving of errors.
2009,Viet Yen Nguyen 7/23
AADL: Modelling the BatteryComponent Type and Implementation
device type Battery
featuresempty: out event port;voltage: out data port real initially 6.0;
end Battery;
device implementation Battery.Imp
subcomponentsenergy: data continuous initially 100.0;
modescharged: activation modewhile energy’=-0.02 and energy>=20.0;
Formalising AADL Components as Event-Data Automata
Definition (Event-Data Automaton)
An event-data automaton (EDA) is a tuple
A = (M ,m0,X , v0, ι,E , −→ )
withI M finite set of modesI m0 ∈ M initial modeI X = IX ]OX ] LX finite set of input/output/local variablesI V := {v | v : X → . . .} valuationsI v0 ∈ V initial valuationI ι : M → (V → B) mode invariants (where ι(m0, v0) = true)I E = IE ]OE finite set of input/output eventsI −→ ⊆M × Eτ︸︷︷︸
trigger
× (V → B)︸ ︷︷ ︸guard
× (V → V )︸ ︷︷ ︸effect
×M
(mode) transition relation (where Eτ := E ∪ {τ})
2009,Viet Yen Nguyen 11/23
Formalising AADL Components as Event-Data Automata
I AADL modes/invariants/transitions; EDA modes/invariants/transitions
I Incoming/outgoing data ports ; input/output variablesI Data subcomponents ; local variablesI AADL incoming/outgoing event ports ; EDA input/output events
Example (Battery)I M = {charged, depleted}, m0 = charged
I IX = ∅, OX = {voltage}I LX = {energy}I IE = ∅, OE = {empty}
2009,Viet Yen Nguyen 12/23
Formalising AADL Components as Event-Data Automata
I AADL modes/invariants/transitions; EDA modes/invariants/transitions
I Incoming/outgoing data ports ; input/output variables
I Data subcomponents ; local variablesI AADL incoming/outgoing event ports ; EDA input/output events
Example (Battery)I M = {charged, depleted}, m0 = chargedI IX = ∅, OX = {voltage}
I LX = {energy}I IE = ∅, OE = {empty}
2009,Viet Yen Nguyen 12/23
Formalising AADL Components as Event-Data Automata
I AADL modes/invariants/transitions; EDA modes/invariants/transitions
I Incoming/outgoing data ports ; input/output variablesI Data subcomponents ; local variables
I AADL incoming/outgoing event ports ; EDA input/output events
Example (Battery)I M = {charged, depleted}, m0 = chargedI IX = ∅, OX = {voltage}I LX = {energy}
I IE = ∅, OE = {empty}
2009,Viet Yen Nguyen 12/23
Formalising AADL Components as Event-Data Automata
I AADL modes/invariants/transitions; EDA modes/invariants/transitions
I Incoming/outgoing data ports ; input/output variablesI Data subcomponents ; local variablesI AADL incoming/outgoing event ports ; EDA input/output events
Example (Battery)I M = {charged, depleted}, m0 = chargedI IX = ∅, OX = {voltage}I LX = {energy}I IE = ∅, OE = {empty}
2009,Viet Yen Nguyen 12/23
LTS Semantics of Event-Data Automata
I States := M ×VI Transitions: timed or internal or event-labeled
Example (Battery)
〈mode = charged, energy = 100.0, voltage = 6.0〉↓ 30.0
〈mode = charged, energy = 40.0, voltage = 6.0〉↓ τ〈voltage:=...〉
〈mode = charged, energy = 40.0, voltage = 4.8〉↓ 10.0
〈mode = charged, energy = 20.0, voltage = 4.8〉↓ τ〈voltage:=...〉
〈mode = charged, energy = 20.0, voltage = 4.4〉↓ empty
〈mode = depleted, energy = 20.0, voltage = 4.4〉↓ · · ·
2009,Viet Yen Nguyen 13/23
LTS Semantics of Event-Data Automata
I States := M ×VI Transitions: timed or internal or event-labeled
Example (Battery)
〈mode = charged, energy = 100.0, voltage = 6.0〉
↓ 30.0〈mode = charged, energy = 40.0, voltage = 6.0〉
↓ τ〈voltage:=...〉〈mode = charged, energy = 40.0, voltage = 4.8〉
↓ 10.0〈mode = charged, energy = 20.0, voltage = 4.8〉
↓ τ〈voltage:=...〉〈mode = charged, energy = 20.0, voltage = 4.4〉
↓ empty〈mode = depleted, energy = 20.0, voltage = 4.4〉
↓ · · ·
2009,Viet Yen Nguyen 13/23
LTS Semantics of Event-Data Automata
I States := M ×VI Transitions: timed or internal or event-labeled
Example (Battery)
〈mode = charged, energy = 100.0, voltage = 6.0〉↓ 30.0
〈mode = charged, energy = 40.0, voltage = 6.0〉
↓ τ〈voltage:=...〉〈mode = charged, energy = 40.0, voltage = 4.8〉
↓ 10.0〈mode = charged, energy = 20.0, voltage = 4.8〉
↓ τ〈voltage:=...〉〈mode = charged, energy = 20.0, voltage = 4.4〉
↓ empty〈mode = depleted, energy = 20.0, voltage = 4.4〉
↓ · · ·
2009,Viet Yen Nguyen 13/23
LTS Semantics of Event-Data Automata
I States := M ×VI Transitions: timed or internal or event-labeled
Example (Battery)
〈mode = charged, energy = 100.0, voltage = 6.0〉↓ 30.0
〈mode = charged, energy = 40.0, voltage = 6.0〉↓ τ〈voltage:=...〉
〈mode = charged, energy = 40.0, voltage = 4.8〉
↓ 10.0〈mode = charged, energy = 20.0, voltage = 4.8〉
↓ τ〈voltage:=...〉〈mode = charged, energy = 20.0, voltage = 4.4〉
↓ empty〈mode = depleted, energy = 20.0, voltage = 4.4〉
↓ · · ·
2009,Viet Yen Nguyen 13/23
LTS Semantics of Event-Data Automata
I States := M ×VI Transitions: timed or internal or event-labeled
Example (Battery)
〈mode = charged, energy = 100.0, voltage = 6.0〉↓ 30.0
〈mode = charged, energy = 40.0, voltage = 6.0〉↓ τ〈voltage:=...〉
〈mode = charged, energy = 40.0, voltage = 4.8〉↓ 10.0
〈mode = charged, energy = 20.0, voltage = 4.8〉
↓ τ〈voltage:=...〉〈mode = charged, energy = 20.0, voltage = 4.4〉
↓ empty〈mode = depleted, energy = 20.0, voltage = 4.4〉
↓ · · ·
2009,Viet Yen Nguyen 13/23
LTS Semantics of Event-Data Automata
I States := M ×VI Transitions: timed or internal or event-labeled
Example (Battery)
〈mode = charged, energy = 100.0, voltage = 6.0〉↓ 30.0
〈mode = charged, energy = 40.0, voltage = 6.0〉↓ τ〈voltage:=...〉
〈mode = charged, energy = 40.0, voltage = 4.8〉↓ 10.0
〈mode = charged, energy = 20.0, voltage = 4.8〉↓ τ〈voltage:=...〉
〈mode = charged, energy = 20.0, voltage = 4.4〉
↓ empty〈mode = depleted, energy = 20.0, voltage = 4.4〉
↓ · · ·
2009,Viet Yen Nguyen 13/23
LTS Semantics of Event-Data Automata
I States := M ×VI Transitions: timed or internal or event-labeled
Example (Battery)
〈mode = charged, energy = 100.0, voltage = 6.0〉↓ 30.0
〈mode = charged, energy = 40.0, voltage = 6.0〉↓ τ〈voltage:=...〉
〈mode = charged, energy = 40.0, voltage = 4.8〉↓ 10.0
〈mode = charged, energy = 20.0, voltage = 4.8〉↓ τ〈voltage:=...〉
〈mode = charged, energy = 20.0, voltage = 4.4〉↓ empty
〈mode = depleted, energy = 20.0, voltage = 4.4〉
↓ · · ·
2009,Viet Yen Nguyen 13/23
LTS Semantics of Event-Data Automata
I States := M ×VI Transitions: timed or internal or event-labeled
Example (Battery)
〈mode = charged, energy = 100.0, voltage = 6.0〉↓ 30.0
〈mode = charged, energy = 40.0, voltage = 6.0〉↓ τ〈voltage:=...〉
〈mode = charged, energy = 40.0, voltage = 4.8〉↓ 10.0
〈mode = charged, energy = 20.0, voltage = 4.8〉↓ τ〈voltage:=...〉
〈mode = charged, energy = 20.0, voltage = 4.4〉↓ empty
〈mode = depleted, energy = 20.0, voltage = 4.4〉↓ · · ·
2009,Viet Yen Nguyen 13/23
Complete AADL Specifications as Networks of EDAs
Dynamic reconfiguration=⇒ component activity and port connections mode dependent
Definition (Networks of Event-Data Automata)
A network of event-data automata (NEDA) is a tuple
N = ((Ai)i∈[n], α,EC ,DC )
with n ≥ 1, [n] := {1, . . . , n}, andI each Ai an EDA Ai = (Mi,m
i0,Xi, v
i0, ιi,Ei, −→ i)
I M :=∏ni=1 Mi set of global modes
I α : M → 2[n] activation mappingI EC : M → ({i.e | i ∈ [n], e ∈ Ei})2 event connection mappingI DC : M → ({i.x | i ∈ [n], x ∈ Xi})2 data connection mapping
2009,Viet Yen Nguyen 14/23
Complete AADL Specifications as Networks of EDAs
I AADL subcomponent in modes declarations; activation mapping:
I root component always activeI c active and in mode m, sc is subcomponent of c, sc in modes m
I AADL event/data connections ; EC /DC mappings:follow all end-to-end chains of port connections
c c’
in−to−in
out−to−in
out−to−out
Root
Example (Power System)
For Power︸ ︷︷ ︸1
/Battery1︸ ︷︷ ︸2
/Battery2︸ ︷︷ ︸3
:
I EC (primary,m1,m2) = {(2.empty, 1.batt1.empty)}EC (backup,m1,m2) = {(3.empty, 1.batt2.empty)}
DC (primary,m1,m2) = {(2.voltage, 1.voltage)}DC (backup,m1,m2) = {(3.voltage, 1.voltage)}
2009,Viet Yen Nguyen 15/23
LTS Semantics of NEDAs
I States := (M1 ×V1)× . . .× (Mn ×Vn)I Transitions determined by active EDAs:
1. Perform local transitions:I timed local transition in all EDAs orI internal transition in EDA orI multiway event communication from EDA to ≥ 1 connected EDAs
2. Initialize (re-)activated subcomponents3. Establish consistency w.r.t. DC (copy source→ target data port)
Example (Power system)〈m=primary, v=6.0〉 〈m=charged, e=100.0, v=6.0〉 〈m=charged, e=100.0, v=6.0〉
I States := (M1 ×V1)× . . .× (Mn ×Vn)I Transitions determined by active EDAs:
1. Perform local transitions:I timed local transition in all EDAs orI internal transition in EDA orI multiway event communication from EDA to ≥ 1 connected EDAs
2. Initialize (re-)activated subcomponents3. Establish consistency w.r.t. DC (copy source→ target data port)
Example (Power system)〈m=primary, v=6.0〉 〈m=charged, e=100.0, v=6.0〉 〈m=charged, e=100.0, v=6.0〉
I States := (M1 ×V1)× . . .× (Mn ×Vn)I Transitions determined by active EDAs:
1. Perform local transitions:I timed local transition in all EDAs orI internal transition in EDA orI multiway event communication from EDA to ≥ 1 connected EDAs
2. Initialize (re-)activated subcomponents3. Establish consistency w.r.t. DC (copy source→ target data port)
Example (Power system)〈m=primary, v=6.0〉 〈m=charged, e=100.0, v=6.0〉 〈m=charged, e=100.0, v=6.0〉
I States := (M1 ×V1)× . . .× (Mn ×Vn)I Transitions determined by active EDAs:
1. Perform local transitions:I timed local transition in all EDAs orI internal transition in EDA orI multiway event communication from EDA to ≥ 1 connected EDAs
2. Initialize (re-)activated subcomponents3. Establish consistency w.r.t. DC (copy source→ target data port)
Example (Power system)〈m=primary, v=6.0〉 〈m=charged, e=100.0, v=6.0〉 〈m=charged, e=100.0, v=6.0〉
I States := (M1 ×V1)× . . .× (Mn ×Vn)I Transitions determined by active EDAs:
1. Perform local transitions:I timed local transition in all EDAs orI internal transition in EDA orI multiway event communication from EDA to ≥ 1 connected EDAs
2. Initialize (re-)activated subcomponents3. Establish consistency w.r.t. DC (copy source→ target data port)
Example (Power system)〈m=primary, v=6.0〉 〈m=charged, e=100.0, v=6.0〉 〈m=charged, e=100.0, v=6.0〉
I States := (M1 ×V1)× . . .× (Mn ×Vn)I Transitions determined by active EDAs:
1. Perform local transitions:I timed local transition in all EDAs orI internal transition in EDA orI multiway event communication from EDA to ≥ 1 connected EDAs
2. Initialize (re-)activated subcomponents3. Establish consistency w.r.t. DC (copy source→ target data port)
Example (Power system)〈m=primary, v=6.0〉 〈m=charged, e=100.0, v=6.0〉 〈m=charged, e=100.0, v=6.0〉
I States := (M1 ×V1)× . . .× (Mn ×Vn)I Transitions determined by active EDAs:
1. Perform local transitions:I timed local transition in all EDAs orI internal transition in EDA orI multiway event communication from EDA to ≥ 1 connected EDAs
2. Initialize (re-)activated subcomponents3. Establish consistency w.r.t. DC (copy source→ target data port)
Example (Power system)〈m=primary, v=6.0〉 〈m=charged, e=100.0, v=6.0〉 〈m=charged, e=100.0, v=6.0〉