Spec Diff Differencing LTSs Zhenchang Xing Jun Sun
- Slides: 24
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? ?
Program Behaviors Change! Different behavioral exploration methods Program evolution Program behavior changes
The Evolution of Specification
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 earlier version The LTS of the later version
The Application of Partial Order Reduction
A Dinning-Philosophers Spec in CSP# Dinning-Philosophers
“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
A Readers-Writer Lock Spec in CSP# Parameterized Readers-Writer Lock
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 evolution – Evaluating impact of different behavior exploration methods – Revealing behavioral change patterns of parameterized systems – ……
Differencing LTSs? ?
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 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 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 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? ?
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 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 “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 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 & Applicability Scale it Up!
- Diff in diff regression
- Pixel value differencing
- Sun spec
- Liudong xing
- Formulari na pagsulat
- Eric xing
- Spectral clustering
- Eric p. xing
- Nǐ xìng shénme
- Eric xing
- Qing wen nin gui xing
- Pestiential
- Eric xing cmu
- Eric xing
- Pid xing
- Lle algorithm
- Nǐ guì xìng
- Jun flores
- Www.brainybetty.com
- Www.51pptmoban.com.ppt
- At wendy's washateria all of the dryer
- Forscom form 285-r
- Jun akizaki
- Umjetnost druge polovice 20. stoljeća
- Jun cao