Spec Diff Differencing LTSs Zhenchang Xing Jun Sun

  • Slides: 24
Download presentation
Spec. Diff: Differencing LTSs Zhenchang Xing*, Jun Sun+, Yang Liu* and Jin Song Dong*

Spec. Diff: Differencing LTSs Zhenchang Xing*, Jun Sun+, Yang Liu* and Jin Song Dong* *National University of Singapore +Singapore University of Technology and Design

Differencing LTSs? ?

Differencing LTSs? ?

Program Behaviors Change! Different behavioral exploration methods Program evolution Program behavior changes

Program Behaviors Change! Different behavioral exploration methods Program evolution Program behavior changes

The Evolution of Specification

The Evolution of Specification

An Evolved Concurrent Stack Spec in CSP# Evolve ! An earlier version • Violating

An Evolved Concurrent Stack Spec in CSP# Evolve ! An earlier version • Violating the linearizibility A later version

The Differences Lead to Program Fault? ? • Diagnosing faulty evolution The LTS of

The Differences Lead to Program Fault? ? • Diagnosing faulty evolution The LTS of the earlier version The LTS of the later version

The Application of Partial Order Reduction

The Application of Partial Order Reduction

A Dinning-Philosophers Spec in CSP# Dinning-Philosophers

A Dinning-Philosophers Spec in CSP# Dinning-Philosophers

“Reduced” States and Transitions? ? • Impact of partial order reduction No Partial Order

“Reduced” States and Transitions? ? • Impact of partial order reduction No Partial Order Reduction (118 states/300 transitions) NOTE: There is and Spec remains Partial Order Reduction (116 states/248 transitions) ! with Spec,

The Application of Process Counter Abstraction

The Application of Process Counter Abstraction

A Readers-Writer Lock Spec in CSP# Parameterized Readers-Writer Lock

A Readers-Writer Lock Spec in CSP# Parameterized Readers-Writer Lock

Recurring Changes as Cutoff Number Increases? ? Cutoff number = 1 Cutoff number =

Recurring Changes as Cutoff Number Increases? ? Cutoff number = 1 Cutoff number = 2 Cutoff number = 3 Cutoff number = 4 • Behavioral patterns of parameterized systems NOTE: There is and Spec remains ! with Spec,

Do We Want to Differencing LTSs? • Analyzing Changing Program Behaviors – Diagnosing faulty

Do We Want to Differencing LTSs? • Analyzing Changing Program Behaviors – Diagnosing faulty evolution – Evaluating impact of different behavior exploration methods – Revealing behavioral change patterns of parameterized systems – ……

Differencing LTSs? ?

Differencing LTSs? ?

An Overview of Our Spec. Diff Approach 1. Describing program behavior in specification language

An Overview of Our Spec. Diff Approach 1. Describing program behavior in specification language 2. Generating the LTSs of CSP# program(s) with 3. Applying to compare two LTSs 4. and analysis Spec. Diff Architecture

Differencing LTSs By Generic. Diff • Input: to be compared – LTS 1 and

Differencing LTSs By Generic. Diff • Input: to be compared – LTS 1 and LTS 2 • Generic. Diff: A generic 1. Parsing and quantifying the inputs LTSs • technique Typed Attributed Graphs (TAGs) 2. Capturing the graph structure and the matching candidates • Pair. Up. Graph (i. e. a product of two TAGs) 3. Traversing the model graphs and computing the similarities • Random walk on Pair. Up. Graph 4. Select an “optimal” matching • Bipartite graph matching • Output: – One set of matched states and transitions – Two sets of unmatched states and transitions

Analyzing LTS Differences • Merging the two LTSs into a – Creating the matched

Analyzing LTS Differences • Merging the two LTSs into a – Creating the matched parts of two LTSs – Appending the unmatched states and transitions • the unified LTS – Normal view of the whole unified LTS – Fragmented views of maximally-connected matched (or unmatched) subgraphs for change patterns – User-defined queries

 • Diagnosing Faulty Program Evolution The second process (pop. 1. 0) after the

• Diagnosing Faulty Program Evolution The second process (pop. 1. 0) after the first process has (push. 0. 1) into the stack! A of the unified LTS of the evolved concurrent stack example (returned by the query searching for “ ”, for example, matched states 6/22 with unmatched push. 0. 1) Black: matched states/transitions in both LTSs; Green: unmatched states/transitions in the earlier-version LTS; Red: unmatched states/transitions in the later-version LTS

Spec. Diff? ?

Spec. Diff? ?

Tool Support & Usage A short of Spec. Diff in PAT! http: //www. patroot.

Tool Support & Usage A short of Spec. Diff in PAT! http: //www. patroot. com Formal Tool Demonstration, ASE’ 10

Initial Evaluation Three pilot-study scenarios • The evolution of a concurrent stack • The

Initial Evaluation Three pilot-study scenarios • The evolution of a concurrent stack • The application of partial order reduction • The application of process counter abstraction Spec. Diff assists in • Debugging faulty program evolution • Understanding the impacts of state reduction techniques • Revealing behavioral change patterns in the verification of parameterized systems

How to Scale it Up? • Differencing LTSs “ ” – Syntactic differences to

How to Scale it Up? • Differencing LTSs “ ” – Syntactic differences to “guide” the differencing process of large LTSs – Interactive visualization techniques to “select” which part(s) of the LTSs to differentiate Spec. Diff implementation – Direct comparison of the internal data structures of LTSs instead of the LTSs renderedin the GUI • Identifying “ ” differences – Important differences (e. g. program fault) would be reflected in the differences of small LTSs

Why Not Use Counter Examples? • Spec. Diff is analysis to counter-example – Contextual

Why Not Use Counter Examples? • Spec. Diff is analysis to counter-example – Contextual information – Highlighted differences • Spec. Diff is useful in other scenarios, such as with specification – Specification remains

Conclusions and Future Work Spec. Diff: Differencing LTSs Tool Support & Usage Effectiveness &

Conclusions and Future Work Spec. Diff: Differencing LTSs Tool Support & Usage Effectiveness & Applicability Scale it Up!