47
ObjectCheck: A Model Checking Tool for Executable Object- oriented Software System Designs Fei Xie and James C. Browne Dept. of Computer Sciences Univ. of Texas at Austin Vladimir Levin Bell-Labs Lucent Technologies

ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

  • Upload
    truda

  • View
    32

  • Download
    6

Embed Size (px)

DESCRIPTION

ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs. Fei Xie and James C. Browne Dept. of Computer Sciences Univ. of Texas at Austin. Vladimir Levin Bell-Labs Lucent Technologies. Presentation Agenda. Background and Overview of ObjectCheck - PowerPoint PPT Presentation

Citation preview

Page 1: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

ObjectCheck: A Model Checking Tool for Executable Object-oriented Software

System Designs

Fei Xie and James C. Browne

Dept. of Computer Sciences

Univ. of Texas at Austin

Vladimir Levin

Bell-Labs

Lucent Technologies

Page 2: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

2

Presentation Agenda

• Background and Overview of ObjectCheck

• Demonstration of ObjectCheckDemonstration of ObjectCheck

• More Case StudiesMore Case Studies

• Summary and Future WorkSummary and Future Work

Page 3: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

3

Motivations

• Executable OO modeling languages are widely applied to specify software system designs.

• Model Checking may improve the reliabilities of executable OO software system designs.

• State-of-the-art model checkers are not directly applicable to executable OO system designs.

• A tool supporting application of model checking to executable OO system designs is needed.

Page 4: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

4

xUML: An Executable OO Modeling Language

• Executable dialect of UML;

• Expressive system and class hierarchies;

• Extended Moore state machines as state models;– Each state may have an associated state action;

– Each state action is run-to-completion;

• Asynchronous interleaving execution semantics.– A system execution is an asynchronous interleaving

of the executions of state models in the system.

Page 5: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

5

Architecture and Workflow of ObjectCheck

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 6: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

6

Development of ObjectCheck

• Developed in conjunction with SDLCheck;– SDLCheck is an SDL model checking tool

developed by Robert P. Kurshan, Vladimir Levin, and Husnu Yenigun of Bell-labs.

• Reuses modules from SDLCheck, such as optimization modules that conduct SPOR.– SPOR (Static Partial Order Reduction).

Page 7: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

7

Presentation Agenda

• Background and Overview of ObjectCheck

• Demonstration of ObjectCheckDemonstration of ObjectCheck

• More Case StudiesMore Case Studies

• Summary and Future WorkSummary and Future Work

Page 8: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

8

Case Study for Demonstration

• Classic Dining Philosophers Problem

• More realistic case studies will be shown after the demonstration.

Page 9: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

9

Step-by-Step Demonstration

Designer

Property Specification Interface xUML IDE Error Visualizer

Error ReportxUML ModelProperty

xUML-to-S/R Translator Error Report Generator

Error TrackS/R ModelS/R Query

COSPAN Model Checker

Page 10: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

10

Page 11: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

11

Page 12: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

12

Page 13: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

13

Page 14: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

14

Page 15: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

15

Page 16: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

16

Page 17: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

17

Step-by-Step Demonstration

Designer

Property Specification Interface xUML IDE Error Visualizer

Error ReportxUML ModelProperty

xUML-to-S/R Translator Error Report Generator

Error TrackS/R ModelS/R Query

COSPAN Model Checker

Page 18: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

18

Page 19: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

19

Step-by-Step Demonstration

Designer

Property Specification Interface xUML IDE Error Visualizer

Error ReportxUML ModelProperty

xUML-to-S/R Translator Error Report Generator

Error TrackS/R ModelS/R Query

COSPAN Model Checker

Page 20: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

20

Page 21: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

21

Page 22: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

22

Page 23: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

23

Step-by-Step Demonstration

Designer

Property Specification Interface xUML IDE Error Visualizer

Error ReportxUML ModelProperty

xUML-to-S/R Translator Error Report Generator

Error TrackS/R ModelS/R Query

COSPAN Model Checker

Page 24: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

24

Page 25: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

25

Page 26: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

26

Page 27: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

27

Page 28: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

28

Step-by-Step Demonstration

Designer

Property Specification Interface xUML IDE Error Visualizer

Error ReportxUML ModelProperty

xUML-to-S/R Translator Error Report Generator

Error TrackS/R ModelS/R Query

COSPAN Model Checker

Page 29: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

29

Page 30: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

30

Page 31: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

31

Step-by-Step Demonstration

Designer

Property Specification Interface xUML IDE Error Visualizer

Error ReportxUML ModelProperty

xUML-to-S/R Translator Error Report Generator

Error TrackS/R ModelS/R Query

COSPAN Model Checker

Page 32: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

32

Page 33: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

33

Page 34: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

34

Page 35: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

35

Page 36: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

36

Page 37: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

37

Page 38: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

38

Page 39: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

39

Presentation Agenda

• Background and Overview of ObjectCheck

• Demonstration of ObjectCheckDemonstration of ObjectCheck

• More Case StudiesMore Case Studies

• Summary and Future WorkSummary and Future Work

Page 40: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

40

More Case Studies

• NASA Robot Controller– A typical control-intensive embedded systems;– Presented at FASE 2001 by Natasha Sharygina;

• Online Ticket Sale System– A typical commercial transaction systems;– Presented at FASE 2002;– Focus: Integrated state space reduction.

Page 41: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

41

NASA Robot Controller (Class Diagram)

Page 42: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

42

NASA Robot Controller(A State Model)

Page 43: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

43

An Online Ticket Sale System (Class Diagram)

Page 44: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

44

An Online Ticket Sale System (A State Model)

Page 45: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

45

Some Verification Statistics of Online Ticket Sale System

• Verification of a liveness property– After an agent is assigned to a customer,

eventually the agent will be released.

• Statistics related to state space reductionsSPOR SMC Memory Usage Time Usage

Off Off Out of Memory -

Off On 113.73M 44736.S

On Off 17.3M 6668.3S

On On 74.0M 1450.3S

Page 46: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

46

Related Work

• Most closely related work– UML Model Checking toolset from University

of Michigan– vUML tool from Åbo Akademi University– Both tools employ UML dialects with ad-hoc

execution semantics and without well-defined action semantics.

Page 47: ObjectCheck: A Model Checking Tool for Executable Object-oriented Software System Designs

47

Summary and Future Work

• ObjectCheck– Combines industrial software design and development

environments and model checkers with research tools;

– Provides comprehensive automation support for model checking xUML models;

– Has enabled verification of non-trivial software system designs modeled in xUML.

• Future work is focused on enhancing state space reduction capability of ObjectCheck.