Integration of Model Checking into Software Development Processes Fei Xie.

81
Integration of Model Checking into Software Development Processes Fei Xie

Transcript of Integration of Model Checking into Software Development Processes Fei Xie.

Page 1: Integration of Model Checking into Software Development Processes Fei Xie.

Integration of Model Checking into Software Development

Processes

Fei Xie

Page 2: Integration of Model Checking into Software Development Processes Fei Xie.

2

Outline

• Problem• Dissertation research overview• Focus: Integration of model checking into

CBD • Conclusion and future work

Page 3: Integration of Model Checking into Software Development Processes Fei Xie.

3

Validation of Software

• Testing is the most commonly used technique • Software complexity has overwhelmed

conventional testing methods– Test case coverage– Lack of automation– Concurrency makes testing even harder

• Software must be validated

• Advanced validation techniques are needed

Page 4: Integration of Model Checking into Software Development Processes Fei Xie.

4

Model Checking (MC)

• A formal verification method• Able to explore all possible states (or

execution paths) of a system• Enjoys substantial automation support• Has been quite successful for hardware

[Clarke and Emerson 81, Queille and Sifakis 82]

Page 5: Integration of Model Checking into Software Development Processes Fei Xie.

5

Research Goal and Problem

• Goal: Seamlessly integrate MC into software development processes

• Problem: Address two major challenges– Applicability– State space explosion

Page 6: Integration of Model Checking into Software Development Processes Fei Xie.

6

Challenge I: Applicability

• Syntax and semantics gaps between– Software specification languages– Input languages of model checkers

• Often specify finite-state systems

• Difficulties in property specification– For instance, software engineers are

not familiar with temporal logics

Page 7: Integration of Model Checking into Software Development Processes Fei Xie.

7

Challenge II: State Space Explosion

• 5 components, 1000 5 components, 1000 states/componentstates/component

• Worst caseWorst case: 1000 trillion states: 1000 trillion states

Page 8: Integration of Model Checking into Software Development Processes Fei Xie.

8

Overview of My Research

Model-Driven Development (MDD)

Model Checking Component-Based Development (CBD)

Model Checking

+

Page 9: Integration of Model Checking into Software Development Processes Fei Xie.

9

Model-Driven Development

RequirementAnalysis

and Design

ExecutableDesign Model

DesignValidation

ValidatedExecutable

DesignCode

Generation

PredefinedTemplates

Code(C/C++, Java)

Increasingly popular for Embedded Systems and Web-Based Systems

Page 10: Integration of Model Checking into Software Development Processes Fei Xie.

10

Executable UML (xUML)

• Has well-defined Execution Semantics

• Utilizes UML Action Semantics recently adopted by OMG

• Can be compiled to procedural codes

• Tools provided by:– Project Technologies– Kennedy Carter– Hyperformix (SES)– …

Page 11: Integration of Model Checking into Software Development Processes Fei Xie.

11

Integration of MC into MDD

• Executable design-level models are key to MDD– Executable: amenable to model checking– Design-level: lower complexities

• Model Checking Software Designs via Translation[FASE’04, FASE’02a, ASE’01] – Translate designs into model-checkable languages– Reuse state-of-the-art model checkers– Support design-level property formulation

How to address applicability?

Page 12: Integration of Model Checking into Software Development Processes Fei Xie.

12

The ObjectCheck Toolkit

Property Specification Interface xUML IDE Error Visualizer

xUML-to-S/R Translator Error Report Generator

COSPAN Model Checker

S/R ModelS/R Query

Error Report

Error Track

Designer

xUML ModelProperty

Page 13: Integration of Model Checking into Software Development Processes Fei Xie.

13

COSPAN [Hardin, Har’El, and Kurshan 96]

• Automata-theoretical approach to model checking [Kurshan 94] – Model a system and its property as -automata, P and T– Check the language containment, L(P) L(T)

• Many state space search and reduction algorithms– Explicit state enumeration– Symbolic model checking – Localization reduction– Homomorphism reduction– (and more)

Page 14: Integration of Model Checking into Software Development Processes Fei Xie.

14

Integration of MC into MDD (cont.)

• Model Checking Software Designs via Translation [FASE’04, FASE’02a, ASE’01]

– Many reduction algorithms applied in translation

• Integrated State Space Reduction [FASE’02b]

– Reduction algorithms applied in an integrated way• Translation-Based Compositional Reasoning

[FME’03]

– Application of CR in model checking via translation

How to reduce state spaces?

Page 15: Integration of Model Checking into Software Development Processes Fei Xie.

15

Integrated State Space Reduction Framework

xUML-to-S/R Translation

S/R Model S/R Level Query

Model Checking with COSPAN

Success Report / Error Track

xUML Model xUML Level Query

ReducedxUML Model

Reduced xUML Level Query

User-Driven State Space Reduction

Verification Task

Verification Subtasks

Basic Model Checking Process

Compositional ReasoningAbstractionSymmetry Reduction

Symbolic VerificationLocalization Reduction

Partial Order Reduction

Page 16: Integration of Model Checking into Software Development Processes Fei Xie.

16

Translation-Based Compositional Reasoning

• Compositional Reasoning (CR) [Misra and Chandy 81, …]– Decompose a system into modules– Verify module properties– Derive system properties from module properties

• To apply CR, what need be done– Establish a compositional reasoning rule– Prove the correctness of the rule– Implement the rule

• How to apply CR in model checking via translation?

Page 17: Integration of Model Checking into Software Development Processes Fei Xie.

17

Rule Establishment and Proof

Software Semantics

Formal Semantics

(1) Establish a compositional reasoning rule

(4) Prove the rule based onthe mapping and proof of the corresponding rule in formal semantics

(3) Prove the corresponding rule or reuse existing proof

(2) Map the rule to its corresponding rule in the formal semantics

Semantics Translation

Page 18: Integration of Model Checking into Software Development Processes Fei Xie.

18

Rule Implementation and Application

Software System

Formal Representation

(1) Formulation of premises for applying the rule

(2) Translation of the premises.

(4) Establishmentof conclusion according tothe proven rule.

(3) Discharge of the premises

Page 19: Integration of Model Checking into Software Development Processes Fei Xie.

19

Real-World Systems Verified

• The control subsystem of a NASA robotics system [FMSD’03]

– Code size 45,000 lines of C++– 22 properties checked: safety and liveness– 6 bugs found

• Instances of TinyOS run-time system for networked sensors [ESEC/SIGSOFT FSE’03]

Page 20: Integration of Model Checking into Software Development Processes Fei Xie.

20

Today’s Focus:Integration of MC into CBD

How are Applicability and State Space Explosion addressed?

Verified Systems by Composition from Verified Components [ESEC/SIGSOFT FSE’03]

Component-Based Development (CBD)

Model Checking

Page 21: Integration of Model Checking into Software Development Processes Fei Xie.

21

Integration of MC into CBD

• Motivation• Overview• Component Model for Verification• Case Study: TinyOS• Verification of Components

Page 22: Integration of Model Checking into Software Development Processes Fei Xie.

22

What is CBD?

• Compose systems via component assembly

• Pre-fabricate many components• Reuse components as much as possible

• Increasingly popular for– Embedded systems– Web-based systems

• Analogies: Automotive and Avionics

Page 23: Integration of Model Checking into Software Development Processes Fei Xie.

23

Research Goal

• Goal:– To construct safe, secure, and reliable

systems from safe, secure, and reliable components

• Framework:– Composition of verified systems from

verified components

Page 24: Integration of Model Checking into Software Development Processes Fei Xie.

24

Research Challenges

• How to verify primitive components?– How to represent the environment?– How to conduct the verification?

• How to compose verified components to build larger verified components effectively?– How to verify the larger components?– How to reuse verified properties? Both applicability and state space management

Page 25: Integration of Model Checking into Software Development Processes Fei Xie.

25

Synergy between CBD and MC

• Component-based development – Introduces compositional structures to

software– Helps minimize state spaces to be

explored

• Model checking– Provides exhaustive state space coverage– Strong at detection of composition errors

Explore this synergy to address these challenges

Page 26: Integration of Model Checking into Software Development Processes Fei Xie.

26

Integration of MC into CBD

• Motivation• Overview• Component Model for Verification• Case Study: TinyOS• Verification of Components

Page 27: Integration of Model Checking into Software Development Processes Fei Xie.

27

Our Approach

VerifiedProperties

VerifiedPropertiesVerification of a property on a composite component – Reuses verified properties of its sub-

components– Is based on compositional reasoning– Follows an abstraction-refinement paradigm

+

VerifiedProperties

VerifiedProperties

=

VerifiedProperties

VerifiedProperties

Page 28: Integration of Model Checking into Software Development Processes Fei Xie.

28

Compositional Reasoning

To model check a property on a software system• Step 1: Decompose the system into modules

and model-check module properties• Step 2: Derive the system property from the

verified module properties

Assume-guarantee style of compositional reasoning[Misra and Chandy 81, Abadi and Lamport 93, Alur and Henzinger 99, McMillan 99, Amla, Emerson, Namjoshi and Trefler 01, …]

• Model check properties of a module assuming properties of other modules hold

Page 29: Integration of Model Checking into Software Development Processes Fei Xie.

29

Integration of MC into CBD

• Motivations• Overview• Component Model for Verification• Case Study: TinyOS• Verification of Components

Page 30: Integration of Model Checking into Software Development Processes Fei Xie.

30

Component

Executable Representation (Design Models or Sources)

FunctionalInterface

External VisibleVariables

Verified TemporalProperties

Page 31: Integration of Model Checking into Software Development Processes Fei Xie.

31

Environment of C(Components interacting with

C )

Component Property

• A property of C is a pair (p, A(p))– p is a temporal property– A(p) is a set of assumptions on environment

of C– p is verified assuming A(p) holds.

Cp

A(p)

A(p) p holds on C

Assumptions = Assumed Properties

Page 32: Integration of Model Checking into Software Development Processes Fei Xie.

32

Component Composition

Executable of C1

Executable of Cn

Executable of CConnect via interfaces…

Properties of C1

Properties of Cn

Properties of C?…

Interface of C1

Interface of Cn

Interface of CSelectively merge…

(Visible variable sets are treated in the same way.)

Page 33: Integration of Model Checking into Software Development Processes Fei Xie.

33

Instantiation of Component Model on AIM Computation

Model• Asynchronous Interleaving Message-

passing– A system consists of a finite set of processes– Processes execute asynchronously – At any moment, only one process executes – Interactions via asynchronous message-

passing

• Semantics of xUML conforms to the AIM model.

Page 34: Integration of Model Checking into Software Development Processes Fei Xie.

34

Instantiation of Component Model on AIM Computation

Model (cont.)

• Compose components by establishing mappings among their input and output message types

Design models in xUML

MessagingInterface

External VisibleVariables

Verified TemporalProperties

Page 35: Integration of Model Checking into Software Development Processes Fei Xie.

35

Integration of MC into CBD

• Motivation• Overview• Component Model for Verification• Case Study: TinyOS• Verification of Components

Page 36: Integration of Model Checking into Software Development Processes Fei Xie.

36

TinyOS [Hill, et al., 00]

• A run-time system for networked sensors from UC Berkeley

• Component-based– Different requirements of sensors – Physical limitations of sensors

• High reliability required – Concurrency-intensive operations– Installation to many sensors

Page 37: Integration of Model Checking into Software Development Processes Fei Xie.

37

Integration of MC into CBD

• Motivation• Overview• Component Model for Verification• Case Study: TinyOS• Verification of Components

Page 38: Integration of Model Checking into Software Development Processes Fei Xie.

38

Background:Verification of Closed AIM

System

Property Specification Interface xUML IDE Error Visualizer

xUML-to-S/R Translator Error Report Generator

COSPAN Model Checker

S/R ModelS/R Query

Error Report

Error Track

Designer

xUML ModelProperty

Page 39: Integration of Model Checking into Software Development Processes Fei Xie.

39

Verification of Primitive Components

PrimitiveComponent

Assumptions in A(p)

2. Constrain the closed system

Env(AIM Process)

1. Create a closed systemWith a matching interface,

but non-deterministic

To check a property (p, A(p)) :

3. Check p on the constrained system

p

Addressing both applicability and state

space explosion in model checking primitive

components

Step 1 of Compositional Reasoning: Verification of Module Property

Page 40: Integration of Model Checking into Software Development Processes Fei Xie.

40

Sensor Component

Output MessageType

Input MessageType

ComponentBoundary

AIMProcess

Page 41: Integration of Model Checking into Software Development Processes Fei Xie.

41

Sensor Component (cont.)Properties:

(Output repeatedly and handle output handshakes correctly.) Repeatedly (Output);After (Output) Never (Output) UntilAfter (OP_Ack);After (Done) Eventually (Done_Ack);Never (Done_Ack) UntilAfter (Done);After (Done_Ack) Never (Done_Ack) UntilAfter(Done);

Assumptions: (Output handshakes are correctly ack-ed.)After (Output) Eventually (OP_Ack);Never (OP_Ack) UntilAfter (Output);After (OP_Ack) Never (OP_Ack) UntilAfter (Output);After (Done) Never (Done) UntilAfter (Done_Ack);

Page 42: Integration of Model Checking into Software Development Processes Fei Xie.

42

Verification of Sensor Component

Sensor Component

Assumptions

Env

OutputOutput_Ack

DoneDone_Ack…

Page 43: Integration of Model Checking into Software Development Processes Fei Xie.

43

Network Component

Page 44: Integration of Model Checking into Software Development Processes Fei Xie.

44

Network Component (cont.)

Properties:(Transmit repeatedly if input repeatedly, and handle input handshakes correctly.)IfRepeatedly (Data) Repeatedly (RFM.Pending);IfRepeatedly (Data) Repeatedly (Not RFM.Pending);After (Data) Eventually (Data_Ack); Never (Data_Ack) UntilAfter (Data);After (Data_Ack) Never (Data_Ack) UntilAfter (Data);After (Sent) Never (Sent) UntilAfter (Sent_Ack);

Assumptions: (Input handshakes are correctly ack-ed.)After (Data) Never (Data) UntilAfter (Data_Ack);After (Sent) Eventually (Sent_Ack); Never (Sent_Ack) UntilAfter (Sent);After (Sent_Ack) Never (Sent_Ack) UntilAfter (Sent);

Page 45: Integration of Model Checking into Software Development Processes Fei Xie.

45

Verification of Composite Components

(1) Abstraction

(2) Verification(3) Refinement

To model check a property on a composite component: Addressing both applicability and state

space explosion in model checking composite

components

Page 46: Integration of Model Checking into Software Development Processes Fei Xie.

46

Abstraction-Refinement Paradigm

Component

Abstraction

Refined Abstraction

Refine throughadding details

What is the abstraction?Verified propertiesof sub-components

Good Enough Abstraction

Page 47: Integration of Model Checking into Software Development Processes Fei Xie.

47

Verified Properties as Abstraction

A property = a behavior of a component

Sensor Component

Property 1: Outputs repeatedly Property 2: Handles output handshakes correctly

The component can be represented by the property if only the behavior is of

interest.

Page 48: Integration of Model Checking into Software Development Processes Fei Xie.

48

Sensor-to-Network Component

Page 49: Integration of Model Checking into Software Development Processes Fei Xie.

49

Sensor-to-Network Component

Properties:(Transmit repeatedly on physical network.)Repeatedly (RFM.Pending); Repeatedly (Not RFM.Pending);

Assumptions:(Assumptions on hardware platform are ignored. )

Page 50: Integration of Model Checking into Software Development Processes Fei Xie.

50

Abstraction

SP(Sensor)

NP(Network)

Env(Environment)

Verified Properties Verified Properties

Assumptions

Non-deterministicAIM Processes

Page 51: Integration of Model Checking into Software Development Processes Fei Xie.

51

Abstraction (cont.)

• A sub-component property is included if it is – Related by dependencies– Not involved in invalid circular

dependencies– Enabled: Its environment assumptions hold

on • Other sub-components in the composition• Environment of the composition

Verified properties of Sensor and Network are included in the abstraction of Sensor-

to-Network.

Page 52: Integration of Model Checking into Software Development Processes Fei Xie.

52

Abstraction Verification

• The properties of Sensor-to-Network:

Transmit repeatedly on physical network

were successfully verified on the abstraction

Step 2 of Compositional Reasoning: Derivation of System Property

• Conclusion: Sensor-to-network has the properties

Step 1 of Compositional Reasoning: Verification of Module Property

Page 53: Integration of Model Checking into Software Development Processes Fei Xie.

53

Verification Time Usage

5355.5

641

18 0.1

0

1000

2000

3000

4000

5000

6000

Sensor-to-Network

Sensor Network AbstractionTime (Sec.)

Page 54: Integration of Model Checking into Software Development Processes Fei Xie.

54

Verification Memory Usage

208.48

33.67

6.82 0.16

0

50

100

150

200

250

Sensor-to-Network

Sensor Network Abstraction

Memory (MB)

Page 55: Integration of Model Checking into Software Development Processes Fei Xie.

55

Abstraction Refinement

• An abstraction can be refined by – (Introducing, verifying, and) enabling

additional sub-component properties

• A property can be enabled by – Enabling its assumptions on other

components

• Currently requires user interactions

Page 56: Integration of Model Checking into Software Development Processes Fei Xie.

56

Refinement Example

Sensor Network

Sensor-to-Network

To verify a new property, P1, on Sensor-to-Network (SN): Property P1: SN transmits any sensor reading exactly once

Property P2: Network transmits any input exactly once. Assumption: A new input arrives only after Network acks the last input with a Sent message

Page 57: Integration of Model Checking into Software Development Processes Fei Xie.

57

Refinement Example (cont.)

Sensor Network

Sensor-to-Network

• A real bug was found in Sensor and fixed. Property P3 was verified on the revised Sensor

Property P3: Sensor outputs any sensor reading exactly once;

After an output, Sensor will not output until a Done message is received.

P3 P2

• Inclusion of P2 and P3 into the abstraction P1

P1

Page 58: Integration of Model Checking into Software Development Processes Fei Xie.

58

Verification Time Usage

206.6

96

6.6 0.1

0

50

100

150

200

250

Sensor-to-Network

Sensor Network AbstractionTime (Sec.)

Page 59: Integration of Model Checking into Software Development Processes Fei Xie.

59

Verification Memory Usage

54.89

19.5

3.830.18

0

10

20

30

40

50

60

Sensor-to-Network

Sensor Network Abstraction

Memory (MB)

Page 60: Integration of Model Checking into Software Development Processes Fei Xie.

60

Related Work to Component Verification

• Compositional Reasoning– Previous work: in top-down system decomposition

– Our approach: in bottom-up component composition

• The Inscape Environment [Perry 89] – Consistency checking in software composition models

• Compositional Reachability Analysis (CRA)[Graf and Steffen 90, Yeh and Young 91, Cheung and Kramer 93] – Composition and minimization of Label Transition Systems

• Modular Feature Verification [Fisler and Krishnamurthi 01]

– Verification of layered composition of features

Page 61: Integration of Model Checking into Software Development Processes Fei Xie.

61

Contributions of My Research

• Seamless integration of MC into MDD– Verification of real-world systems of significant size

• Seamless integration of MC into CBD – Verification of real-world component-based systems

• Addresses of both challenges in software MC – Applicability– State space explosion

• Synergistic combination of the two integrations– Further alleviation of state space explosion

Page 62: Integration of Model Checking into Software Development Processes Fei Xie.

62

Immediate Future Research

Scalable Verification

of Component-Based

SystemsSecurity

Guaranteethrough Formal

VerificationHardware/Software

Co-design andCo-verification

Knowledge Driven

Adaptive ModelChecking System

Interactions

Software Safety

Security

Reliability

Page 63: Integration of Model Checking into Software Development Processes Fei Xie.

63

Conclusions

• Software must be safe, secure, and reliable• Advanced validation methods are needed• My research integrates MC into MDD and

CBD • Systems of significant size have been

verified• Many challenging problems are still ahead

Page 64: Integration of Model Checking into Software Development Processes Fei Xie.

64

Publications

• Fei Xie, Vladimir Levin, Robert P. Kurshan, and James C. Browne. Translating Software Designs for Model Checking. In Proc. of FASE, to appear, 2004.

• Thomas Ball, Vladimir Levin, and Fei Xie. Automatic Creation of Environment Models via Training. In Proc. of TACAS, to appear, 2004.

• Fei Xie and James C. Browne. Verified Systems by Composition from Verified Components.  In Proc. of ESEC/FSE, 2003. 

• Fei Xie, James C. Browne, and Robert P. Kurshan. Translation-Based Compositional Reasoning for Software Systems. In Proc. of FME, 2003. 

Page 65: Integration of Model Checking into Software Development Processes Fei Xie.

65

Publications (cont.)

• Natasha Sharygina, James C. Browne, Fei Xie, Robert Kurshan, and Vladimir Levin. Lessons Learned from Model Checking a NASA Robot Controller. Journal of FMSD, 2003.

• Fei Xie and James C. Browne. Integrated State Space Reduction for Model Checking Executable Object-oriented Software System Designs, In Proc. of FASE, 2002. 

• Fei Xie, Vladimir Levin, and James C. Browne. ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs, In Proc. of FASE, 2002. 

• Fei Xie, Vladimir Levin, and James C. Browne. Model Checking for an Model Checking for an Executable Subset of UML. In Proc. of ASE, 2001.

Page 66: Integration of Model Checking into Software Development Processes Fei Xie.

66

For More Information

• Useful linkshttp://www.cs.utexas.edu/users/feixiehttp://www.cs.utexas.edu/users/ObjectCheck

• Email:[email protected]

Questions?

Page 67: Integration of Model Checking into Software Development Processes Fei Xie.

67

How MC works?

System Model

This is great. Let’s model-check software

systems.Farewell, bugs

Temporal Property

Example temporal properties:Buffer A will never overflow;System outputs repeatedly

Model CheckerExhaustive and

intelligent search over the state space of the

system model

Page 68: Integration of Model Checking into Software Development Processes Fei Xie.

68

Case Study: An Online Ticket Sale System (OTSS)

Customer (C) Dispatcher (D) Agent (A) Ticket_Server (TS)

TryLater Assignment

Hold

Request

Held/Later/Out

TicketHeld/TryLater/SoldOut

Payment

Ticket

Reset

Buy/Release

Branching Point 1

Branching Point 4

Branching Point 2

Branching Point 3

Page 69: Integration of Model Checking into Software Development Processes Fei Xie.

69

Property to be Checked on OTSS

• In English, After a Request message from a customer is

processed by the dispatcher, eventually the system will reply the customer with a TicketHeld message, or a TryLater message, or a SoldOut message

• In the xUML level query specification logic,

P0 : After Request (i) Eventually TicketHeld(i) or TryLater (i) or SoldOut(i)

Page 70: Integration of Model Checking into Software Development Processes Fei Xie.

70

Reduction Steps for Checking P0

Customers, DispatcherAgents, Ticket Sever

Step 1: Symmetry Reduction

Step 2: Decomposition

Step 3: Symmetry Reduction

Step 4: Decomposition

Step 5: Case SplittingStep 6: Symmetry Reduction

P0

Customers, DispatcherAgents, Ticket Sever

P1

Customers Dispatcher Agents, Ticket ServerP21 , P22 P31 , P32

P33 , P23

Agents, Ticket ServerP41 , P42

P43 , P44

Ticket Server AgentsP41 , P42

P43 , P44

P5

Ticket ServerP6 AgentP41 , P42

P43 , P44

Page 71: Integration of Model Checking into Software Development Processes Fei Xie.

71

Evaluation of User-driven State Space Reduction

• Directly model checking P0 on OTSS – Two customer instances and two agent instances– SPOR and SMC are both applied– Memory usage: 152.79M– Time usage: 16273.7S

• Memory and time usages for discharging subtasks at the leaf nodes of the reduction tree P21 P22 P41 P42 P43 P44 P6

Memory

0.30M 0.95M

0.28M 0.29M 0.28M 0.29M 0.35M

Time 0.02S 1.81S 0.01S 0.04S 0.01S 0.04S 0.63S

Page 72: Integration of Model Checking into Software Development Processes Fei Xie.

72

Translation Context

SemanticsConformance

SemanticsConformance

AIMSemantics

-automatonSemantics

Semantics Translation

xUML S/RxUML-to-S/R Translation

xUML: An executable dialect of UMLS/R: Input language of COSPAN model checker

Page 73: Integration of Model Checking into Software Development Processes Fei Xie.

73

Rule AENT [Amla, Emerson, Namjoshi, and Trefler

01] • Has been adapted to AIM semantics

To show P1//P2 |= Q, find Q1 and Q2 that satisfy:C1: P1//Q2 |= Q1 and P2 //Q1 |= Q2

{Verifying component properties assuming properties of other components hold}

C2: Q1//Q2 |= Q

{Deriving system property from component properties}C3: Either P1//CL(Q) |= (Q + Q1 + Q2)

Or P2//CL(Q) |= (Q + Q1 + Q2)

{Validating circular dependencies among component properties}

Conclusion

Premises

Page 74: Integration of Model Checking into Software Development Processes Fei Xie.

74

Translation from AIM Semantics to -automaton

semanticsAIM Semantics

-automaton Semantics

I/O-automaton Semantics

Page 75: Integration of Model Checking into Software Development Processes Fei Xie.

75

Preservation of Language Containment

• L(A) L(B) iff L(Trans(A)) L(Trans(B))• Theorem 1:

– Translation from AIM semantics to I/O-automaton semantics preserves language containment

• Theorem 2: – Translation from I/O-automaton semantic to

-automaton semantics preserves language containment

• Theorem 3: – Translation from AIM Semantic to -automaton

semantics preserves language containment

Page 76: Integration of Model Checking into Software Development Processes Fei Xie.

76

Proof via Semantics Translation

• Proof sketch for Rule AENT:– Assume that C1, C2, and C3 hold– By Theorem 3, -automaton translations of

C1, C2, C3 hold– By -automaton counterpart of Rule AENT,

-automaton translation of P1//P2 |= Q holds

– By Theorem 3, P1//P2 |= Q holds

Page 77: Integration of Model Checking into Software Development Processes Fei Xie.

77

Why validate circular dependencies

among component properties?

Eventually (A) Eventually (B)

Eventually (A) and Eventually (B)?

C1 C2

X X A = FALSEB = FALSE

Eventually (B) Eventually (A) Eventually (A) Eventually (B)

Think about Deadlocks.A: C1 releases Lock A.B: C2 releases Lock B.

Page 78: Integration of Model Checking into Software Development Processes Fei Xie.

78

Property and Assumption Formulation

• Properties– Currently manually guided– Derived from component specifications– Added incrementally in component reuses

• Assumptions– Manual formulation– Automatic generation

• Often lead to complex assumptions

• Automatic generation heuristics in progress

Page 79: Integration of Model Checking into Software Development Processes Fei Xie.

79

Immediate Future Directions

• Scalable verification of component-based systems– Large-scale components conforming to CORBA, .NET,

or other platforms– Systems involving multiple component paradigms

• Software security guarantee via formal verification– Integration of security policies into design models– Formulation of security properties, e.g., information flow– Effective verification of security properties

Page 80: Integration of Model Checking into Software Development Processes Fei Xie.

80

Immediate Future Directions (cont.)

• Domain knowledge driven state space reduction– Extending integrated state space reduction

framework– Exploring domain knowledge– Developing adaptive model checking systems

• Hardware/software co-verification– Translating both software and hardware into a

model checkable language– Or modeling hardware as transaction models

Page 81: Integration of Model Checking into Software Development Processes Fei Xie.

81

Long-Term Research Plan

• Goal: methods and tools– For development of safe, secure, and reliable

software systems of increasing complexity– Integrated into routine development efforts

• Approach: synergistic integration of – Testing– Formal Verification– Static Analysis– Run-Time Monitoring