SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Dynamic Component Substitutability Analysis Edmund Clarke Natasha Sharygina* Nishant Sinha Carnegie Mellon University The University of Lugano
Motivation  Model checking is a highly time consuming, labor intensive effort  For example, a system of 25 components (~20K LOC) and 100+ properties might take up to a month of verification effort   Discourages its widespread use when system evolves
Software Evolution  Software evolution is inevitable in any real system:  Changing requirements Bug fixes Product changes (underlying platform, third-party,etc.)
Substitutability Check P Assembly A ? Component C Component C’
Motivation Component-based Software Software modules shipped by separate developers Undergo several updates/bug-fixes during their lifecycle Component assembly verification Necessary on upgrade of any component High costs of complete global verification Instead check for substitutability of new component
Substitutability Check Incremental in nature Two phases: Containment check All local behaviors (services) of the previous component contained in new one Compatibility check Safety with respect to other components in assembly: all global specifications still hold
Containment, Compatibility Duality Upgraded Component C’ Component C New Behaviors Lost  Behaviors Identical Behaviors Compatibility Check (global) Containment Check (local)
Substitutability Check Approaches Obtain a finite behavioral model of all components by abstraction: Labeled Kripke structures Containment:  Use under- and over- approximations Compatibility:  Use dynamic assume-guarantee reasoning
Predicate Abstraction into LKS p Labeled Kripke Structures <Q,,T,P,L> Composition semantics Synchronize on shared actions Represents abstractions   q  !q !p Predicate Abstraction C Component Component LKS Abstraction
Component Assembly C1 C2 C3 Component Assembly C Predicate Abstraction M1 M2 M3 Abstraction M A set of communicating concurrent C programs  No recursion, procedures inlined Each component abstracted into a Component LKS Communication between components is abstracted into interface actions
lock=1 if (x < y) if (x < y) x >= y   L2 lock = 0 if (x >= y) if (x >= y) x < y x >= y   L3 lock = 0 Predicate Abstraction into LKS L1 void OSSemPend(…) {   L1: lock = 1;   if (x < y) {         L2: lock = 0;     …   }   if (x >= y) {     …        L3: lock = 0;     …   } else {     …   } } lock=1 x < y
Containment Check Goal: Check C µ C’ All behaviors retained after upgrade Cannot check directly: need approximations Idea: Use both under- and over- approximations Solution:  Compute M:  C µ M Compute M’: M’ µ C’ Check for M µ M’ Identical New  Lost Containment Check C C’
M C’ C M’ Containment (contd.) C C’ over-approx under-approx M M’ µ ? True False, CE C µ C’ CE 2 C ? False, Refine M True, Refine M’ C * C’, CE provided  as feedback True CE 2 C’ ? False
Containment (contd.) Computing over-approximation Conventional predicate abstraction Computing under-approximation Modified predicate abstraction Compute Must transitions instead of May
Compatibility Check C’ C Assume-guarantee to verify assembly properties Identical New  Lost Compatibility Check       M1 || A ² P             M2² A M1 || M2² P AG - Non Circular ,[object Object]
Cobleigh et. al. at NASA Ames
Use learning algorithm for regular languages, L*
Goal: Reuse previous verification results,[object Object]
Learning for Verification Model checker as a Teacher Possesses information about concrete components Model checks and returns true/counterexample Learner builds a model sufficient to verify properties Relies on both learner and teacher being efficient Finding wide applications Adaptive Model Checking:Groce et al. Automated Assume-Guarantee Reasoning: Cobleigh et al. Synthesize Interface Specifications for Java Programs: Alur et al. Regular Model Checking: Vardhan et al., Habermehl et al.
Compatibility Check -CE for A Teacher R1:      M1 || A ² P L* Assumption  Generation A true true R2:      M2²A M1 || M2² P CE  Actual CE M1 || M22 P CE Analysis +CE for A
Handling Multiple Components R1:      M1 || A ² P R2:        M2² A M1 || M2² P AG-NC is recursive (Cobleigh et al.) M1k M2k M3² P ,[object Object],M2k M3² A1 M1k A1² P M2k A2² A1 M3² A2
Upgrade M’1k M2² P M1k M2² P M’1k A’1² P M2² A’1 M1k A1² P M2² A1 Reuse? Compatibility of Upgrades C C’ Identical New  Lost Suppose assumptions are available from the old assembly  Dynamic AG: Reuse previous verification results ,[object Object]
NO: upgrades may change the unknown U to be learned
 Requires Dynamic L*,[object Object]
Dynamic L* L* maintains a table data-structure to store samples Definition:Valid Tables All table entries agree with U Theorem  L* terminates with any validobservation table, OT When U changes to U’,  Suppose the last candidate w.r.t. U is A Re-validate OTof Aw.r.t. U’ Obtain A’ from OT’ Continue learning from A’
Dynamic AG Upgrade M’1k M2² P M1k M2² P M’1k A’1² P M2² A’1 M1k A1² P M2² A1 Re-Validate! and Reuse
Implementation Comfort framework – explicit model checker Industrial benchmark  ABB Inter-process Communication (IPC) software 4 main components – CriticalSection, IPCQueue, ReadMQ, WriteMQ Evaluated on single and simultaneous upgrades  WriteMQ and IPCQueuecomponents Properties P1: Write after obtaining CS lock P2: Correct protocol to write to IPCQueue

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Introduction To Algorithms
Introduction To AlgorithmsIntroduction To Algorithms
Introduction To Algorithms
 
9781285852744 ppt ch08
9781285852744 ppt ch089781285852744 ppt ch08
9781285852744 ppt ch08
 
9781285852744 ppt ch13
9781285852744 ppt ch139781285852744 ppt ch13
9781285852744 ppt ch13
 
9781285852744 ppt ch01
9781285852744 ppt ch019781285852744 ppt ch01
9781285852744 ppt ch01
 
Path testing
Path testingPath testing
Path testing
 
TMPA-2017: 5W+1H Static Analysis Report Quality Measure
TMPA-2017: 5W+1H Static Analysis Report Quality MeasureTMPA-2017: 5W+1H Static Analysis Report Quality Measure
TMPA-2017: 5W+1H Static Analysis Report Quality Measure
 
Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours? Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours?
 
Functions ppt ch06
Functions ppt ch06Functions ppt ch06
Functions ppt ch06
 
Path Testing
Path TestingPath Testing
Path Testing
 
9781285852744 ppt ch12
9781285852744 ppt ch129781285852744 ppt ch12
9781285852744 ppt ch12
 
White box testing
White box testingWhite box testing
White box testing
 
9781285852744 ppt ch17
9781285852744 ppt ch179781285852744 ppt ch17
9781285852744 ppt ch17
 
9781285852744 ppt ch14
9781285852744 ppt ch149781285852744 ppt ch14
9781285852744 ppt ch14
 
Towards Automated A/B Testing
Towards Automated A/B TestingTowards Automated A/B Testing
Towards Automated A/B Testing
 
Data structures algorithms basics
Data structures   algorithms basicsData structures   algorithms basics
Data structures algorithms basics
 
9781285852744 ppt ch10
9781285852744 ppt ch109781285852744 ppt ch10
9781285852744 ppt ch10
 
SPoC: search-based pseudocode to code
SPoC: search-based pseudocode to codeSPoC: search-based pseudocode to code
SPoC: search-based pseudocode to code
 
We have a DREAM: Distributed Reactive Programming with Consistency Guarantees...
We have a DREAM: Distributed Reactive Programming with Consistency Guarantees...We have a DREAM: Distributed Reactive Programming with Consistency Guarantees...
We have a DREAM: Distributed Reactive Programming with Consistency Guarantees...
 
Testing
TestingTesting
Testing
 
Partitioned Based Regression Verification
Partitioned Based Regression VerificationPartitioned Based Regression Verification
Partitioned Based Regression Verification
 

Andere mochten auch

20101127 search query_analysis_braslavski_lecture01
20101127 search query_analysis_braslavski_lecture0120101127 search query_analysis_braslavski_lecture01
20101127 search query_analysis_braslavski_lecture01
Computer Science Club
 
20100919 computer vision_konushin_lecture01
20100919 computer vision_konushin_lecture0120100919 computer vision_konushin_lecture01
20100919 computer vision_konushin_lecture01
Computer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
Computer Science Club
 
20080509 webresearch lifshits_lecture02
20080509 webresearch lifshits_lecture0220080509 webresearch lifshits_lecture02
20080509 webresearch lifshits_lecture02
Computer Science Club
 
20101113 synchronizing automata_volkov_lecture01
20101113 synchronizing automata_volkov_lecture0120101113 synchronizing automata_volkov_lecture01
20101113 synchronizing automata_volkov_lecture01
Computer Science Club
 
Andrew Goldberg. The Binary Blocking Flow Algorithm for the Maximum Flow Problem
Andrew Goldberg. The Binary Blocking Flow Algorithm for the Maximum Flow ProblemAndrew Goldberg. The Binary Blocking Flow Algorithm for the Maximum Flow Problem
Andrew Goldberg. The Binary Blocking Flow Algorithm for the Maximum Flow Problem
Computer Science Club
 
20110204 quantum algorithms_vyali_lecture01
20110204 quantum algorithms_vyali_lecture0120110204 quantum algorithms_vyali_lecture01
20110204 quantum algorithms_vyali_lecture01
Computer Science Club
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Computer Science Club
 
20120309 formal semantics shilov_lecture04
20120309 formal semantics shilov_lecture0420120309 formal semantics shilov_lecture04
20120309 formal semantics shilov_lecture04
Computer Science Club
 
20080309 efficientalgorithms kulikov_lecture16
20080309 efficientalgorithms kulikov_lecture1620080309 efficientalgorithms kulikov_lecture16
20080309 efficientalgorithms kulikov_lecture16
Computer Science Club
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03
Computer Science Club
 
20120512 repeatsinsymbolicsequences shur_lecture03-04
20120512 repeatsinsymbolicsequences shur_lecture03-0420120512 repeatsinsymbolicsequences shur_lecture03-04
20120512 repeatsinsymbolicsequences shur_lecture03-04
Computer Science Club
 
20071202 efficientalgorithms kulikov_lecture11
20071202 efficientalgorithms kulikov_lecture1120071202 efficientalgorithms kulikov_lecture11
20071202 efficientalgorithms kulikov_lecture11
Computer Science Club
 
20071118 efficientalgorithms kulikov_lecture08
20071118 efficientalgorithms kulikov_lecture0820071118 efficientalgorithms kulikov_lecture08
20071118 efficientalgorithms kulikov_lecture08
Computer Science Club
 
20080323 cryptography hirsch_lecture06
20080323 cryptography hirsch_lecture0620080323 cryptography hirsch_lecture06
20080323 cryptography hirsch_lecture06
Computer Science Club
 
20120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture0120120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture01
Computer Science Club
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Computer Science Club
 
20080323 efficientalgorithms kulikov_lecture19
20080323 efficientalgorithms kulikov_lecture1920080323 efficientalgorithms kulikov_lecture19
20080323 efficientalgorithms kulikov_lecture19
Computer Science Club
 
20110409 quantum algorithms_vyali_lecture10
20110409 quantum algorithms_vyali_lecture1020110409 quantum algorithms_vyali_lecture10
20110409 quantum algorithms_vyali_lecture10
Computer Science Club
 

Andere mochten auch (19)

20101127 search query_analysis_braslavski_lecture01
20101127 search query_analysis_braslavski_lecture0120101127 search query_analysis_braslavski_lecture01
20101127 search query_analysis_braslavski_lecture01
 
20100919 computer vision_konushin_lecture01
20100919 computer vision_konushin_lecture0120100919 computer vision_konushin_lecture01
20100919 computer vision_konushin_lecture01
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20080509 webresearch lifshits_lecture02
20080509 webresearch lifshits_lecture0220080509 webresearch lifshits_lecture02
20080509 webresearch lifshits_lecture02
 
20101113 synchronizing automata_volkov_lecture01
20101113 synchronizing automata_volkov_lecture0120101113 synchronizing automata_volkov_lecture01
20101113 synchronizing automata_volkov_lecture01
 
Andrew Goldberg. The Binary Blocking Flow Algorithm for the Maximum Flow Problem
Andrew Goldberg. The Binary Blocking Flow Algorithm for the Maximum Flow ProblemAndrew Goldberg. The Binary Blocking Flow Algorithm for the Maximum Flow Problem
Andrew Goldberg. The Binary Blocking Flow Algorithm for the Maximum Flow Problem
 
20110204 quantum algorithms_vyali_lecture01
20110204 quantum algorithms_vyali_lecture0120110204 quantum algorithms_vyali_lecture01
20110204 quantum algorithms_vyali_lecture01
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
 
20120309 formal semantics shilov_lecture04
20120309 formal semantics shilov_lecture0420120309 formal semantics shilov_lecture04
20120309 formal semantics shilov_lecture04
 
20080309 efficientalgorithms kulikov_lecture16
20080309 efficientalgorithms kulikov_lecture1620080309 efficientalgorithms kulikov_lecture16
20080309 efficientalgorithms kulikov_lecture16
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03
 
20120512 repeatsinsymbolicsequences shur_lecture03-04
20120512 repeatsinsymbolicsequences shur_lecture03-0420120512 repeatsinsymbolicsequences shur_lecture03-04
20120512 repeatsinsymbolicsequences shur_lecture03-04
 
20071202 efficientalgorithms kulikov_lecture11
20071202 efficientalgorithms kulikov_lecture1120071202 efficientalgorithms kulikov_lecture11
20071202 efficientalgorithms kulikov_lecture11
 
20071118 efficientalgorithms kulikov_lecture08
20071118 efficientalgorithms kulikov_lecture0820071118 efficientalgorithms kulikov_lecture08
20071118 efficientalgorithms kulikov_lecture08
 
20080323 cryptography hirsch_lecture06
20080323 cryptography hirsch_lecture0620080323 cryptography hirsch_lecture06
20080323 cryptography hirsch_lecture06
 
20120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture0120120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture01
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
 
20080323 efficientalgorithms kulikov_lecture19
20080323 efficientalgorithms kulikov_lecture1920080323 efficientalgorithms kulikov_lecture19
20080323 efficientalgorithms kulikov_lecture19
 
20110409 quantum algorithms_vyali_lecture10
20110409 quantum algorithms_vyali_lecture1020110409 quantum algorithms_vyali_lecture10
20110409 quantum algorithms_vyali_lecture10
 

Ähnlich wie 20100522 software verification_sharygina_lecture02

Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)
Babul Mirdha
 
Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3
Adam McConnell
 
Dealing with the Three Horrible Problems in Verification
Dealing with the Three Horrible Problems in VerificationDealing with the Three Horrible Problems in Verification
Dealing with the Three Horrible Problems in Verification
DVClub
 
Chapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docxChapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docx
keturahhazelhurst
 
Reactive cocoa 101改
Reactive cocoa 101改Reactive cocoa 101改
Reactive cocoa 101改
Jeff Lee
 

Ähnlich wie 20100522 software verification_sharygina_lecture02 (20)

Dill may-2008
Dill may-2008Dill may-2008
Dill may-2008
 
Coverage and Introduction to UVM
Coverage and Introduction to UVMCoverage and Introduction to UVM
Coverage and Introduction to UVM
 
Software testing introduction
Software testing introductionSoftware testing introduction
Software testing introduction
 
SE2018_Lec 20_ Test-Driven Development (TDD)
SE2018_Lec 20_ Test-Driven Development (TDD)SE2018_Lec 20_ Test-Driven Development (TDD)
SE2018_Lec 20_ Test-Driven Development (TDD)
 
Jay Yagnik at AI Frontiers : A History Lesson on AI
Jay Yagnik at AI Frontiers : A History Lesson on AIJay Yagnik at AI Frontiers : A History Lesson on AI
Jay Yagnik at AI Frontiers : A History Lesson on AI
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Software testing for biginners
Software testing for biginnersSoftware testing for biginners
Software testing for biginners
 
Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)
 
Model and Design
Model and Design Model and Design
Model and Design
 
Completed slides
Completed slidesCompleted slides
Completed slides
 
Triantafyllia Voulibasi
Triantafyllia VoulibasiTriantafyllia Voulibasi
Triantafyllia Voulibasi
 
Conducting and reporting the results of a cfd simulation
Conducting and reporting the results of a cfd simulationConducting and reporting the results of a cfd simulation
Conducting and reporting the results of a cfd simulation
 
Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3
 
Dealing with the Three Horrible Problems in Verification
Dealing with the Three Horrible Problems in VerificationDealing with the Three Horrible Problems in Verification
Dealing with the Three Horrible Problems in Verification
 
Chapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docxChapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docx
 
Advanced Digital Design With The Verilog HDL
Advanced Digital Design With The Verilog HDLAdvanced Digital Design With The Verilog HDL
Advanced Digital Design With The Verilog HDL
 
Refactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENGRefactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENG
 
SE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptxSE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptx
 
Reactive cocoa 101改
Reactive cocoa 101改Reactive cocoa 101改
Reactive cocoa 101改
 
Semantical Cognitive Scheduling
Semantical Cognitive SchedulingSemantical Cognitive Scheduling
Semantical Cognitive Scheduling
 

Mehr von Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
Computer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
Computer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
Computer Science Club
 

Mehr von Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture2_matiyasevich
20131006 h10 lecture2_matiyasevich20131006 h10 lecture2_matiyasevich
20131006 h10 lecture2_matiyasevich
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

20100522 software verification_sharygina_lecture02

  • 1. Dynamic Component Substitutability Analysis Edmund Clarke Natasha Sharygina* Nishant Sinha Carnegie Mellon University The University of Lugano
  • 2. Motivation Model checking is a highly time consuming, labor intensive effort For example, a system of 25 components (~20K LOC) and 100+ properties might take up to a month of verification effort Discourages its widespread use when system evolves
  • 3. Software Evolution Software evolution is inevitable in any real system: Changing requirements Bug fixes Product changes (underlying platform, third-party,etc.)
  • 4. Substitutability Check P Assembly A ? Component C Component C’
  • 5. Motivation Component-based Software Software modules shipped by separate developers Undergo several updates/bug-fixes during their lifecycle Component assembly verification Necessary on upgrade of any component High costs of complete global verification Instead check for substitutability of new component
  • 6. Substitutability Check Incremental in nature Two phases: Containment check All local behaviors (services) of the previous component contained in new one Compatibility check Safety with respect to other components in assembly: all global specifications still hold
  • 7. Containment, Compatibility Duality Upgraded Component C’ Component C New Behaviors Lost Behaviors Identical Behaviors Compatibility Check (global) Containment Check (local)
  • 8. Substitutability Check Approaches Obtain a finite behavioral model of all components by abstraction: Labeled Kripke structures Containment: Use under- and over- approximations Compatibility: Use dynamic assume-guarantee reasoning
  • 9. Predicate Abstraction into LKS p Labeled Kripke Structures <Q,,T,P,L> Composition semantics Synchronize on shared actions Represents abstractions   q  !q !p Predicate Abstraction C Component Component LKS Abstraction
  • 10. Component Assembly C1 C2 C3 Component Assembly C Predicate Abstraction M1 M2 M3 Abstraction M A set of communicating concurrent C programs No recursion, procedures inlined Each component abstracted into a Component LKS Communication between components is abstracted into interface actions
  • 11. lock=1 if (x < y) if (x < y) x >= y   L2 lock = 0 if (x >= y) if (x >= y) x < y x >= y   L3 lock = 0 Predicate Abstraction into LKS L1 void OSSemPend(…) { L1: lock = 1; if (x < y) { L2: lock = 0; … } if (x >= y) { … L3: lock = 0; … } else { … } } lock=1 x < y
  • 12. Containment Check Goal: Check C µ C’ All behaviors retained after upgrade Cannot check directly: need approximations Idea: Use both under- and over- approximations Solution: Compute M: C µ M Compute M’: M’ µ C’ Check for M µ M’ Identical New Lost Containment Check C C’
  • 13. M C’ C M’ Containment (contd.) C C’ over-approx under-approx M M’ µ ? True False, CE C µ C’ CE 2 C ? False, Refine M True, Refine M’ C * C’, CE provided as feedback True CE 2 C’ ? False
  • 14. Containment (contd.) Computing over-approximation Conventional predicate abstraction Computing under-approximation Modified predicate abstraction Compute Must transitions instead of May
  • 15.
  • 16. Cobleigh et. al. at NASA Ames
  • 17. Use learning algorithm for regular languages, L*
  • 18.
  • 19. Learning for Verification Model checker as a Teacher Possesses information about concrete components Model checks and returns true/counterexample Learner builds a model sufficient to verify properties Relies on both learner and teacher being efficient Finding wide applications Adaptive Model Checking:Groce et al. Automated Assume-Guarantee Reasoning: Cobleigh et al. Synthesize Interface Specifications for Java Programs: Alur et al. Regular Model Checking: Vardhan et al., Habermehl et al.
  • 20. Compatibility Check -CE for A Teacher R1: M1 || A ² P L* Assumption Generation A true true R2: M2²A M1 || M2² P CE Actual CE M1 || M22 P CE Analysis +CE for A
  • 21.
  • 22.
  • 23. NO: upgrades may change the unknown U to be learned
  • 24.
  • 25. Dynamic L* L* maintains a table data-structure to store samples Definition:Valid Tables All table entries agree with U Theorem L* terminates with any validobservation table, OT When U changes to U’, Suppose the last candidate w.r.t. U is A Re-validate OTof Aw.r.t. U’ Obtain A’ from OT’ Continue learning from A’
  • 26. Dynamic AG Upgrade M’1k M2² P M1k M2² P M’1k A’1² P M2² A’1 M1k A1² P M2² A1 Re-Validate! and Reuse
  • 27. Implementation Comfort framework – explicit model checker Industrial benchmark ABB Inter-process Communication (IPC) software 4 main components – CriticalSection, IPCQueue, ReadMQ, WriteMQ Evaluated on single and simultaneous upgrades WriteMQ and IPCQueuecomponents Properties P1: Write after obtaining CS lock P2: Correct protocol to write to IPCQueue
  • 29. ComFoRT Schema Yes Abstraction Model System Abstraction Guidance System OK Improved Abstraction Guidance No Yes Abstraction Refinement Spurious Counterexample Dynamic Assume-Guarantee Reasoning Verification No Counterexample Counterexample Valid?
  • 30. Conclusion Automated Substitutability Checking Containment and Compatibility Reuses previous verification results Handles multiple upgrades Built upon CEGAR framework Implementation ComFoRT framework Promising results on an industrial example
  • 31. Future Directions Symbolic analysis, i.e., using SATABS Assume-Guarantee for Liveness Other AG Rules, e.g., Circular Combining static analysis with dynamic testing for facilitate abstraction and learning
  • 32. Ph.D. position is open New EU project on verification of evolving networked software Collaboration with IBM, ABB, VTT, Uni Milano and Oxford