Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for...

40
Slicing AADL Specifications for Model Checking Maximilian Odenbrett 1,2 Viet Yen Nguyen 2 Thomas Noll 2 1 Biomodeling and Bioinformatics Group Eindhoven University of Technology, The Netherlands 2 Software Modelling and Verification Group RWTH Aachen University, Germany NASA Formal Methods Symposium, April 15 th , 2010 Partially funded by ESA/ESTEC under Contract No. 21171/07/NL/JD

Transcript of Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for...

Page 1: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Slicing AADL Specifications forModel Checking

Maximilian Odenbrett1,2 Viet Yen Nguyen2 Thomas Noll2

1Biomodeling and Bioinformatics GroupEindhoven University of Technology, The Netherlands

2Software Modelling and Verification GroupRWTH Aachen University, Germany

NASA Formal Methods Symposium, April 15th, 2010

Partially funded by ESA/ESTEC under Contract No. 21171/07/NL/JD

Page 2: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

AADL: Industry Standard for Modeling Embedded Systems

system RandomIntValuefeaturesvalue: out data port int

default 2;update: in event port;

end RandomIntValue;

system implementationRandomIntValue.Impl

modesloop: activation mode;

transitionsloop -[update then

value := 0]-> loop;loop -[update then

value := 1]-> loop;-- i.d. value := 2,...,29loop -[update then

value := 30]-> loop;end RandomIntValue.Impl;

Features• Component-oriented• HW/SW bindings• Degraded operations• Dynamic reconfiguration• Error handling• Fault injections• Timing, probability, hybridity• Formal semantics

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 2/13

Page 3: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

AADL: Industry Standard for Modeling Embedded Systems

system RandomIntValuefeaturesvalue: out data port int

default 2;update: in event port;

end RandomIntValue;

system implementationRandomIntValue.Impl

modesloop: activation mode;

transitionsloop -[update then

value := 0]-> loop;loop -[update then

value := 1]-> loop;-- i.d. value := 2,...,29loop -[update then

value := 30]-> loop;end RandomIntValue.Impl;

Features• Component-oriented• HW/SW bindings• Degraded operations• Dynamic reconfiguration• Error handling• Fault injections• Timing, probability, hybridity• Formal semantics

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 2/13

Page 4: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Verification and Performability Evaluation of AADL

During the COMPASS Project 2008 - 2010:• Defined formal semantics for a system-level modelling language

• Developed a toolset• Requirements validation• Simulations• Model checking• (Dynamic) Fault Tree Analysis• Fault tolerance evaluation• Criticality evaluation• Failure modes and effects analysis• Fault detection, isolation and recovery• Diagnosability• Performability

• Applied case studies from Europe's space-industry

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 3/13

Page 5: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Verification and Performability Evaluation of AADL

During the COMPASS Project 2008 - 2010:• Defined formal semantics for a system-level modelling language• Developed a toolset

• Requirements validation• Simulations• Model checking• (Dynamic) Fault Tree Analysis• Fault tolerance evaluation• Criticality evaluation• Failure modes and effects analysis• Fault detection, isolation and recovery• Diagnosability• Performability

• Applied case studies from Europe's space-industry

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 3/13

Page 6: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Verification and Performability Evaluation of AADL

During the COMPASS Project 2008 - 2010:• Defined formal semantics for a system-level modelling language• Developed a toolset

• Requirements validation• Simulations• Model checking• (Dynamic) Fault Tree Analysis• Fault tolerance evaluation• Criticality evaluation• Failure modes and effects analysis• Fault detection, isolation and recovery• Diagnosability• Performability

• Applied case studies from Europe's space-industry

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 3/13

Page 7: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Verification and Performability Evaluation of AADL

During the COMPASS Project 2008 - 2010:• Defined formal semantics for a system-level modelling language• Developed a toolset

• Requirements validation• Simulations• Model checking• (Dynamic) Fault Tree Analysis• Fault tolerance evaluation• Criticality evaluation• Failure modes and effects analysis• Fault detection, isolation and recovery• Diagnosability• Performability

• Applied case studies from Europe's space-industry

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 3/13

Page 8: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

COMPASS Toolset 2.0Based on NuSMV and Markov Reward Model Checker

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 4/13

Page 9: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

History of Slicing

Given an input M and a slicing criterion Φ, compute a MΦsliced such

that the following holds:

M ≈ MΦsliced

Weiser 1981 Slicing sequential programs.Cheng 1993 Slicing concurrent programs.Hatcliff et al. Property-driven slicing of (concurrent) programs.

Today Property-driven slicing of system-level models.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 5/13

Page 10: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

History of Slicing

Given an input M and a slicing criterion Φ, compute a MΦsliced such

that the following holds:

M ≈ MΦsliced

Weiser 1981 Slicing sequential programs.

Cheng 1993 Slicing concurrent programs.Hatcliff et al. Property-driven slicing of (concurrent) programs.

Today Property-driven slicing of system-level models.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 5/13

Page 11: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

History of Slicing

Given an input M and a slicing criterion Φ, compute a MΦsliced such

that the following holds:

M ≈ MΦsliced

Weiser 1981 Slicing sequential programs.Cheng 1993 Slicing concurrent programs.

Hatcliff et al. Property-driven slicing of (concurrent) programs.Today Property-driven slicing of system-level models.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 5/13

Page 12: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

History of Slicing

Given an input M and a property Φ, compute a MΦsliced such that the

following holds:

M |= Φ ⇔ MΦsliced |= Φ

Weiser 1981 Slicing sequential programs.Cheng 1993 Slicing concurrent programs.Hatcliff et al. Property-driven slicing of (concurrent) programs.

Today Property-driven slicing of system-level models.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 5/13

Page 13: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

History of Slicing

Given an input M and a property Φ, compute a MΦsliced such that the

following holds:

M |= Φ ⇔ MΦsliced |= Φ

Weiser 1981 Slicing sequential programs.Cheng 1993 Slicing concurrent programs.Hatcliff et al. Property-driven slicing of (concurrent) programs.

Today Property-driven slicing of system-level models.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 5/13

Page 14: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Property-Driven Slicing of AADL

Given an AADL model M and a CTL*-property Φ

1. Extract the data elements and modes of direct interest.2. Compute the closure of data elements and modes of

indirect influence (next slide).3. Generate MΦ

sliced

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 6/13

Page 15: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Static Analysis for Determining Interesting PartsD := {d ∈ Dat | d occurs in Φ};E := ∅;M := {m ∈ Mod | m occurs in Φ};

Initialization based on the property Φ.

repeat

for all m e,g,f−→ m′ ∈ Trn with ∃d ∈ D : f updates dor ∃d ∈ D : d inactive in m but active in m′

or e ∈ E doM := M ∪ {m};

Add source modes oftransitions that affect in-teresting data elements.

for all m e,g,f−→ m′ ∈ Trn with m ∈ M or m′ ∈ M doD := D ∪ {d ∈ Dat | g reads d}

∪{d ∈ Dat | f updates some d′ ∈ D reading d};E := E ∪ {e};M := M ∪ {m};

Add data elements,events and sourcemodes of interest-ing transitions.

for all d := a ∈ Flw with d ∈ D doD := D ∪ {d′ ∈ Dat | a reads d′};M := M ∪ {m ∈ Mod | d := a active in m};

Add data elements andmodes of interestingflows.

for all e e′ ∈ Con with e ∈ E or e′ ∈ E doE := E ∪ {e, e′};M := M ∪ {m ∈ Mod | e e′ active in m};

Add events and modesof interesting eventports.

until nothing changes;2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 7/13

Page 16: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Static Analysis for Determining Interesting PartsD := {d ∈ Dat | d occurs in Φ};E := ∅;M := {m ∈ Mod | m occurs in Φ};

Initialization based on the property Φ.

repeatfor all m e,g,f−→ m′ ∈ Trn with ∃d ∈ D : f updates d

or ∃d ∈ D : d inactive in m but active in m′

or e ∈ E doM := M ∪ {m};

Add source modes oftransitions that affect in-teresting data elements.

for all m e,g,f−→ m′ ∈ Trn with m ∈ M or m′ ∈ M doD := D ∪ {d ∈ Dat | g reads d}

∪{d ∈ Dat | f updates some d′ ∈ D reading d};E := E ∪ {e};M := M ∪ {m};

Add data elements,events and sourcemodes of interest-ing transitions.

for all d := a ∈ Flw with d ∈ D doD := D ∪ {d′ ∈ Dat | a reads d′};M := M ∪ {m ∈ Mod | d := a active in m};

Add data elements andmodes of interestingflows.

for all e e′ ∈ Con with e ∈ E or e′ ∈ E doE := E ∪ {e, e′};M := M ∪ {m ∈ Mod | e e′ active in m};

Add events and modesof interesting eventports.

until nothing changes;2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 7/13

Page 17: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Static Analysis for Determining Interesting PartsD := {d ∈ Dat | d occurs in Φ};E := ∅;M := {m ∈ Mod | m occurs in Φ};

Initialization based on the property Φ.

repeatfor all m e,g,f−→ m′ ∈ Trn with ∃d ∈ D : f updates d

or ∃d ∈ D : d inactive in m but active in m′

or e ∈ E doM := M ∪ {m};

Add source modes oftransitions that affect in-teresting data elements.

for all m e,g,f−→ m′ ∈ Trn with m ∈ M or m′ ∈ M doD := D ∪ {d ∈ Dat | g reads d}

∪{d ∈ Dat | f updates some d′ ∈ D reading d};E := E ∪ {e};M := M ∪ {m};

Add data elements,events and sourcemodes of interest-ing transitions.

for all d := a ∈ Flw with d ∈ D doD := D ∪ {d′ ∈ Dat | a reads d′};M := M ∪ {m ∈ Mod | d := a active in m};

Add data elements andmodes of interestingflows.

for all e e′ ∈ Con with e ∈ E or e′ ∈ E doE := E ∪ {e, e′};M := M ∪ {m ∈ Mod | e e′ active in m};

Add events and modesof interesting eventports.

until nothing changes;2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 7/13

Page 18: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Static Analysis for Determining Interesting PartsD := {d ∈ Dat | d occurs in Φ};E := ∅;M := {m ∈ Mod | m occurs in Φ};

Initialization based on the property Φ.

repeatfor all m e,g,f−→ m′ ∈ Trn with ∃d ∈ D : f updates d

or ∃d ∈ D : d inactive in m but active in m′

or e ∈ E doM := M ∪ {m};

Add source modes oftransitions that affect in-teresting data elements.

for all m e,g,f−→ m′ ∈ Trn with m ∈ M or m′ ∈ M doD := D ∪ {d ∈ Dat | g reads d}

∪{d ∈ Dat | f updates some d′ ∈ D reading d};E := E ∪ {e};M := M ∪ {m};

Add data elements,events and sourcemodes of interest-ing transitions.

for all d := a ∈ Flw with d ∈ D doD := D ∪ {d′ ∈ Dat | a reads d′};M := M ∪ {m ∈ Mod | d := a active in m};

Add data elements andmodes of interestingflows.

for all e e′ ∈ Con with e ∈ E or e′ ∈ E doE := E ∪ {e, e′};M := M ∪ {m ∈ Mod | e e′ active in m};

Add events and modesof interesting eventports.

until nothing changes;2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 7/13

Page 19: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Static Analysis for Determining Interesting PartsD := {d ∈ Dat | d occurs in Φ};E := ∅;M := {m ∈ Mod | m occurs in Φ};

Initialization based on the property Φ.

repeatfor all m e,g,f−→ m′ ∈ Trn with ∃d ∈ D : f updates d

or ∃d ∈ D : d inactive in m but active in m′

or e ∈ E doM := M ∪ {m};

Add source modes oftransitions that affect in-teresting data elements.

for all m e,g,f−→ m′ ∈ Trn with m ∈ M or m′ ∈ M doD := D ∪ {d ∈ Dat | g reads d}

∪{d ∈ Dat | f updates some d′ ∈ D reading d};E := E ∪ {e};M := M ∪ {m};

Add data elements,events and sourcemodes of interest-ing transitions.

for all d := a ∈ Flw with d ∈ D doD := D ∪ {d′ ∈ Dat | a reads d′};M := M ∪ {m ∈ Mod | d := a active in m};

Add data elements andmodes of interestingflows.

for all e e′ ∈ Con with e ∈ E or e′ ∈ E doE := E ∪ {e, e′};M := M ∪ {m ∈ Mod | e e′ active in m};

Add events and modesof interesting eventports.

until nothing changes;2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 7/13

Page 20: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random Integers

system IntAdderfeaturesx: in data port int;y: in data port int;sum: out data port int;

end IntAdder;

system implementationIntAdder.Impl

flowssum := x + y;

end IntAdder.Impl;

bus Busend Bus;

bus implementationBus.Impl

end Bus.Impl;

system IntAdderFrameend IntAdderFrame;

system implementation IntAdderFrame.Implsubcomponentsrandom1: system RandomIntValue.Impl

accesses aBus;random2: system RandomIntValue.Impl

accesses aBus;adder: system IntAdder.Impl

accesses aBus;aBus: bus Bus.Impl;

connectionsdata port random1.value -> adder.x;data port random2.value -> adder.y;

modeschoose1: activation mode;choose2: mode;

transitionschoose1 -[random1.update]-> choose2;choose2 -[random2.update]-> choose1;

end IntAdderFrame.Impl;

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 8/13

Page 21: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random Integers

system IntAdderfeaturesx: in data port int;y: in data port int;sum: out data port int;

end IntAdder;

system implementationIntAdder.Impl

flowssum := x + y;

end IntAdder.Impl;

bus Busend Bus;

bus implementationBus.Impl

end Bus.Impl;

system IntAdderFrameend IntAdderFrame;

system implementation IntAdderFrame.Implsubcomponentsrandom1: system RandomIntValue.Impl

accesses aBus;random2: system RandomIntValue.Impl

accesses aBus;adder: system IntAdder.Impl

accesses aBus;aBus: bus Bus.Impl;

connectionsdata port random1.value -> adder.x;data port random2.value -> adder.y;

modeschoose1: activation mode;choose2: mode;

transitionschoose1 -[random1.update]-> choose2;choose2 -[random2.update]-> choose1;

end IntAdderFrame.Impl;

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 8/13

Page 22: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random IntegersM |= � (0 ≤ random1.value ≤ 30 ∧ 0 ≤ random2.value ≤ 30)

root

root.random1value

loop

update then

value := 0 . . . 30

root.random2value

...

root.adder

x

y

sumsum := x+ y

D = { random1.value, random2.value }E = ∅M = ∅

.Static Analysis Algorithm..

.

1. Initialize D, E and M

2. Repeat until D, E andM do not change:2.1 Add source modes of

transitions affectinginteresting data.

2.2 Add data, events andsource modes ofinterestingtransitions.

2.3 Add data and modesof interesting flows.

2.4 Add events andmodes of interestingevent ports.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 9/13

Page 23: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random IntegersM |= � (0 ≤ random1.value ≤ 30 ∧ 0 ≤ random2.value ≤ 30)

root

root.random1value

loop

update then

value := 0 . . . 30

root.random2value

...

root.adder

x

y

sumsum := x+ y

D = { random1.value, random2.value }E = ∅M = ∅

.Static Analysis Algorithm..

.

1. Initialize D, E and M

2. Repeat until D, E andM do not change:2.1 Add source modes of

transitions affectinginteresting data.

2.2 Add data, events andsource modes ofinterestingtransitions.

2.3 Add data and modesof interesting flows.

2.4 Add events andmodes of interestingevent ports.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 9/13

Page 24: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random IntegersM |= � (0 ≤ random1.value ≤ 30 ∧ 0 ≤ random2.value ≤ 30)

root

root.random1value

loop

update then

value := 0 . . . 30

root.random2value

...

root.adder

x

y

sumsum := x+ y

D = { random1.value, random2.value }E = ∅M = { random1.loop, random2.loop}

.Static Analysis Algorithm..

.

1. Initialize D, E and M

2. Repeat until D, E andM do not change:2.1 Add source modes of

transitions affectinginteresting data.

2.2 Add data, events andsource modes ofinterestingtransitions.

2.3 Add data and modesof interesting flows.

2.4 Add events andmodes of interestingevent ports.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 9/13

Page 25: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random IntegersM |= � (0 ≤ random1.value ≤ 30 ∧ 0 ≤ random2.value ≤ 30)

root

root.random1value

loop

update then

value := 0 . . . 30

root.random2value

...

root.adder

x

y

sumsum := x+ y

D = { random1.value, random2.value }E = { random1.update, random2.update}M = { random1.loop, random2.loop}

.Static Analysis Algorithm..

.

1. Initialize D, E and M

2. Repeat until D, E andM do not change:2.1 Add source modes of

transitions affectinginteresting data.

2.2 Add data, events andsource modes ofinterestingtransitions.

2.3 Add data and modesof interesting flows.

2.4 Add events andmodes of interestingevent ports.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 9/13

Page 26: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random IntegersM |= � (0 ≤ random1.value ≤ 30 ∧ 0 ≤ random2.value ≤ 30)

root

root.random1value

loop

update then

value := 0 . . . 30

root.random2value

...

root.adder

x

y

sumsum := x+ y

D = { random1.value, random2.value }E = { random1.update, random2.update}M = { random1.loop, random2.loop}

.Static Analysis Algorithm..

.

1. Initialize D, E and M

2. Repeat until D, E andM do not change:2.1 Add source modes of

transitions affectinginteresting data.

2.2 Add data, events andsource modes ofinterestingtransitions.

2.3 Add data and modesof interesting flows.

2.4 Add events andmodes of interestingevent ports.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 9/13

Page 27: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random IntegersM |= � (0 ≤ random1.value ≤ 30 ∧ 0 ≤ random2.value ≤ 30)

root

root.random1value

loop

update then

value := 0 . . . 30

root.random2value

...

root.adder

x

y

sumsum := x+ y

D = { random1.value, random2.value }E = { random1.update, random2.update}M = { random1.loop, random2.loop,

choose1, choose2 }

.Static Analysis Algorithm..

.

1. Initialize D, E and M

2. Repeat until D, E andM do not change:2.1 Add source modes of

transitions affectinginteresting data.

2.2 Add data, events andsource modes ofinterestingtransitions.

2.3 Add data and modesof interesting flows.

2.4 Add events andmodes of interestingevent ports.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 9/13

Page 28: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random IntegersM |= � (0 ≤ random1.value ≤ 30 ∧ 0 ≤ random2.value ≤ 30)

root

root.random1value

loop

update then

value := 0 . . . 30

root.random2value

...

root.adder

x

y

sumsum := x+ y

D = { random1.value, random2.value }E = { random1.update, random2.update}M = { random1.loop, random2.loop,

choose1, choose2 }

.Static Analysis Algorithm..

.

1. Initialize D, E and M

2. Repeat until D, E andM do not change:2.1 Add source modes of

transitions affectinginteresting data.

2.2 Add data, events andsource modes ofinterestingtransitions.

2.3 Add data and modesof interesting flows.

2.4 Add events andmodes of interestingevent ports.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 9/13

Page 29: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random IntegersM |= � (0 ≤ random1.value ≤ 30 ∧ 0 ≤ random2.value ≤ 30)

root

root.random1value

loop

update then

value := 0 . . . 30

root.random2value

...

root.adder

x

y

sumsum := x+ y

D = { random1.value, random2.value }E = { random1.update, random2.update}M = { random1.loop, random2.loop,

choose1, choose2 }

.Static Analysis Algorithm..

.

1. Initialize D, E and M

2. Repeat until D, E andM do not change:2.1 Add source modes of

transitions affectinginteresting data.

2.2 Add data, events andsource modes ofinterestingtransitions.

2.3 Add data and modesof interesting flows.

2.4 Add events andmodes of interestingevent ports.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 9/13

Page 30: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random IntegersM |= � (0 ≤ random1.value ≤ 30 ∧ 0 ≤ random2.value ≤ 30)

root

root.random1value

loop

update then

value := 0 . . . 30

root.random2value

...

root.adder

x

y

sumsum := x+ y

D = { random1.value, random2.value }E = { random1.update, random2.update}M = { random1.loop, random2.loop,

choose1, choose2 }

.Static Analysis Algorithm..

.

1. Initialize D, E and M

2. Repeat until D, E andM do not change:2.1 Add source modes of

transitions affectinginteresting data.

2.2 Add data, events andsource modes ofinterestingtransitions.

2.3 Add data and modesof interesting flows.

2.4 Add events andmodes of interestingevent ports.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 9/13

Page 31: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random IntegersM |= � (0 ≤ random1.value ≤ 30 ∧ 0 ≤ random2.value ≤ 30)

root

root.random1value

loop

update then

value := 0 . . . 30

root.random2value

...

root.adder

x

y

sumsum := x+ y

D = { random1.value, random2.value }E = { random1.update, random2.update}M = { random1.loop, random2.loop,

choose1, choose2 }

.Static Analysis Algorithm..

.

1. Initialize D, E and M

2. Repeat until D, E andM do not change:2.1 Add source modes of

transitions affectinginteresting data.

2.2 Add data, events andsource modes ofinterestingtransitions.

2.3 Add data and modesof interesting flows.

2.4 Add events andmodes of interestingevent ports.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 9/13

Page 32: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random Integers

M�(0≤random1.value≤30∧0≤random2.value≤30)sliced

system RandomIntValuefeaturesvalue: out data port int

default 2;update: in event port;

end RandomIntValue;

system implementationRandomIntValue.Impl

modesloop: activation mode;

transitionsloop -[update then

value := 0]-> loop;loop -[update then

value := 1]-> loop;-- i.d. value := 2,...,29loop -[update then

value := 30]-> loop;

system IntAdderFrameend IntAdderFrame;

system implementationIntAdderFrame.Impl

subcomponentsrandom1: system RandomIntValue.Impl;random1: system RandomIntValue.Impl;

modeschoose1: activation mode;choose2: mode;

transitionschoose1 -[random1.update]-> choose2;choose2 -[random2.update]-> choose1;

end IntAdderFrame.Impl;

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 10/13

Page 33: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random Integers

M�(0≤random1.value≤30∧0≤random2.value≤30)sliced

system RandomIntValuefeaturesvalue: out data port int

default 2;update: in event port;

end RandomIntValue;

system implementationRandomIntValue.Impl

modesloop: activation mode;

transitionsloop -[update then

value := 0]-> loop;loop -[update then

value := 1]-> loop;-- i.d. value := 2,...,29loop -[update then

value := 30]-> loop;

system IntAdderFrameend IntAdderFrame;

system implementationIntAdderFrame.Impl

subcomponentsrandom1: system RandomIntValue.Impl;random1: system RandomIntValue.Impl;

modeschoose1: activation mode;choose2: mode;

transitionschoose1 -[random1.update]-> choose2;choose2 -[random2.update]-> choose1;

end IntAdderFrame.Impl;

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 10/13

Page 34: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random IntegersBenchmarks Sliced versus Unsliced using AADL to Promela Translator1

Specification Mem/State #States Memory Time(bytes) (MBs) (seconds)

Unsliced 136 1,676,026 272 6.0 - 7.3Sliced for Φ1 116 1,437,691 211 5.4Sliced for Φ2 84 553,553 84 1.4Sliced for Φ3 76 9,379 33 0.1

Φ1 ≡ � (0 ≤ adder.sum ≤ 60)

Φ2 ≡ � (0 ≤ random1.value ≤ 30 ∧ 0 ≤ random2.value ≤ 30)

Φ3 ≡ � (0 ≤ random1.value ≤ 30)

More benchmarks with similar results: negator, redundant batterysystem, wind turbine, satellite's thermal regulator!

1AADL to Promela translator will be submitted to SPIN20102010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 11/13

Page 35: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Example: Adding Random IntegersBenchmarks Sliced versus Unsliced using AADL to Promela Translator1

Specification Mem/State #States Memory Time(bytes) (MBs) (seconds)

Unsliced 136 1,676,026 272 6.0 - 7.3Sliced for Φ1 116 1,437,691 211 5.4Sliced for Φ2 84 553,553 84 1.4Sliced for Φ3 76 9,379 33 0.1

Φ1 ≡ � (0 ≤ adder.sum ≤ 60)

Φ2 ≡ � (0 ≤ random1.value ≤ 30 ∧ 0 ≤ random2.value ≤ 30)

Φ3 ≡ � (0 ≤ random1.value ≤ 30)

More benchmarks with similar results: negator, redundant batterysystem, wind turbine, satellite's thermal regulator!

1AADL to Promela translator will be submitted to SPIN20102010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 11/13

Page 36: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Remarks

• Preserving divergence characteristics.For example, M ̸|= ♢m′ for the model below but whencomponent B is sliced away, M |= ♢m′.

A

m m′

B

loop

Solution: static cycle detection and include all components withpossible divergence behaviour.

• Refinement by distinguishing component-local and global dataelements.

• Initial work-progress on preserving hybrid behaviour.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 12/13

Page 37: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Remarks

• Preserving divergence characteristics.For example, M ̸|= ♢m′ for the model below but whencomponent B is sliced away, M |= ♢m′.

A

m m′

B

loop

Solution: static cycle detection and include all components withpossible divergence behaviour.

• Refinement by distinguishing component-local and global dataelements.

• Initial work-progress on preserving hybrid behaviour.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 12/13

Page 38: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Remarks

• Preserving divergence characteristics.For example, M ̸|= ♢m′ for the model below but whencomponent B is sliced away, M |= ♢m′.

A

m m′

B

loop

Solution: static cycle detection and include all components withpossible divergence behaviour.

• Refinement by distinguishing component-local and global dataelements.

• Initial work-progress on preserving hybrid behaviour.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 12/13

Page 39: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Summary

We developed a property-driven slicing algorithm for AADL thatpreserves CTL*. Benchmarks show an expected significant re-duction in model checking time and memory on the sliced models.

References:• M. Odenbrett, V.Y. Nguyen and T. Noll. Slicing AADL

Specifications for Model Checking. In proceedings of NFM2010.• M. Odenbrett. Explicit-State Model Checking of an Architectural

Design Language using SPIN. Master's thesis, RWTH AachenUniversity 2010.

• M. Odenbrett, V.Y. Nguyen and T. Noll. Model Checking AADLSpecifications with SPIN. To be submitted to SPIN2010.

• Bozzano et al. Safety, Dependability, and Performance Analysisof Extended AADL Models. In Oxford's Computer Journal 2010.

• COMPASS Website:compass.informatik.rwth-aachen.de.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 13/13

Page 40: Slicing AADLSpecifications for ModelChecking · 2010. 4. 15. · Slicing AADLSpecifications for ModelChecking Maximilian Odenbrett1;2 Viet Yen Nguyen2 Thomas Noll2 1Biomodeling

Summary

We developed a property-driven slicing algorithm for AADL thatpreserves CTL*. Benchmarks show an expected significant re-duction in model checking time and memory on the sliced models.

References:• M. Odenbrett, V.Y. Nguyen and T. Noll. Slicing AADL

Specifications for Model Checking. In proceedings of NFM2010.• M. Odenbrett. Explicit-State Model Checking of an Architectural

Design Language using SPIN. Master's thesis, RWTH AachenUniversity 2010.

• M. Odenbrett, V.Y. Nguyen and T. Noll. Model Checking AADLSpecifications with SPIN. To be submitted to SPIN2010.

• Bozzano et al. Safety, Dependability, and Performance Analysisof Extended AADL Models. In Oxford's Computer Journal 2010.

• COMPASS Website:compass.informatik.rwth-aachen.de.

2010, Viet Yen Nguyen Slicing AADL Specifications for Model Checking - 13/13