Presentation on theme: "SpecDiff: Differencing LTSs Zhenchang Xing *, Jun Sun +, Yang Liu * and Jin Song Dong * * National University of Singapore + Singapore University of Technology."— Presentation transcript:
SpecDiff: Differencing LTSs Zhenchang Xing *, Jun Sun +, Yang Liu * and Jin Song Dong * * National University of Singapore + Singapore University of Technology and Design
Program Behaviors Change! Program behavior changes Program evolution Different behavioral exploration methods
The Evolution of Specification
An Evolved Concurrent Stack Spec in CSP# An earlier version A later version Violating the linearizibility ! Evolve
The Differences Lead to Program Fault? The LTS of the earlier version The LTS of the later version Diagnosing faulty evolution ?
The Application of Partial Order Reduction
A Dinning-Philosophers Spec in CSP# Dinning-Philosophers
“Reduced” States and Transitions? No Partial Order Reduction (118 states/300 transitions) Partial Order Reduction (116 states/248 transitions) Impact of partial order reduction ?
The Application of Process Counter Abstraction
Parameterized Readers-Writer Lock A Readers-Writer Lock Spec in CSP#
Cutoff number = 2Cutoff number = 1 Recurring Changes as Cutoff Number Increases? Cutoff number = 3 Cutoff number = 4 Behavioral patterns of parameterized systems ?
Analyzing Changing Program Behaviors – Diagnosing faulty evolution – Evaluating impact of different behavior exploration methods – Revealing behavioral change patterns of parameterized systems – ……
SpecDiff Architecture An Overview of Our SpecDiff Approach
Differencing LTSs By GenericDiff
Analyzing LTS Differences
Diagnosing Faulty Program Evolution 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
Tool Support & Usage Formal Tool Demonstration, ASE’10
Initial Evaluation The evolution of a concurrent stack The application of partial order reduction The application of process counter abstraction Three pilot-study scenarios Debugging faulty program evolution Understanding the impacts of state reduction techniques Revealing behavioral change patterns in the verification of parameterized systems SpecDiff assists in
How to Scale it Up?
Why Not Use Counter Examples?
Effectiveness & Applicability SpecDiff: Differencing LTSs Conclusions and Future Work Tool Support & Usage Scale it Up!