SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Introduction To Algorithms
Introduction To AlgorithmsIntroduction To Algorithms
Introduction To AlgorithmsKM Bappi
 
9781285852744 ppt ch08
9781285852744 ppt ch089781285852744 ppt ch08
9781285852744 ppt ch08Terry Yoast
 
9781285852744 ppt ch13
9781285852744 ppt ch139781285852744 ppt ch13
9781285852744 ppt ch13Terry Yoast
 
9781285852744 ppt ch01
9781285852744 ppt ch019781285852744 ppt ch01
9781285852744 ppt ch01Terry Yoast
 
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 MeasureIosif Itkin
 
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? Rogue Wave Software
 
Functions ppt ch06
Functions ppt ch06Functions ppt ch06
Functions ppt ch06Terry Yoast
 
9781285852744 ppt ch12
9781285852744 ppt ch129781285852744 ppt ch12
9781285852744 ppt ch12Terry Yoast
 
9781285852744 ppt ch17
9781285852744 ppt ch179781285852744 ppt ch17
9781285852744 ppt ch17Terry Yoast
 
9781285852744 ppt ch14
9781285852744 ppt ch149781285852744 ppt ch14
9781285852744 ppt ch14Terry Yoast
 
Data structures algorithms basics
Data structures   algorithms basicsData structures   algorithms basics
Data structures algorithms basicsayeshasafdar8
 
9781285852744 ppt ch10
9781285852744 ppt ch109781285852744 ppt ch10
9781285852744 ppt ch10Terry Yoast
 
SPoC: search-based pseudocode to code
SPoC: search-based pseudocode to codeSPoC: search-based pseudocode to code
SPoC: search-based pseudocode to codeMinhazul Arefin
 
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...Alessandro Margara
 
Partitioned Based Regression Verification
Partitioned Based Regression VerificationPartitioned Based Regression Verification
Partitioned Based Regression VerificationAung Thu Rha Hein
 

Tendances (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
 

En vedette

20101127 search query_analysis_braslavski_lecture01
20101127 search query_analysis_braslavski_lecture0120101127 search query_analysis_braslavski_lecture01
20101127 search query_analysis_braslavski_lecture01Computer Science Club
 
20100919 computer vision_konushin_lecture01
20100919 computer vision_konushin_lecture0120100919 computer vision_konushin_lecture01
20100919 computer vision_konushin_lecture01Computer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20080509 webresearch lifshits_lecture02
20080509 webresearch lifshits_lecture0220080509 webresearch lifshits_lecture02
20080509 webresearch lifshits_lecture02Computer Science Club
 
20101113 synchronizing automata_volkov_lecture01
20101113 synchronizing automata_volkov_lecture0120101113 synchronizing automata_volkov_lecture01
20101113 synchronizing automata_volkov_lecture01Computer 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 ProblemComputer Science Club
 
20110204 quantum algorithms_vyali_lecture01
20110204 quantum algorithms_vyali_lecture0120110204 quantum algorithms_vyali_lecture01
20110204 quantum algorithms_vyali_lecture01Computer Science Club
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Computer Science Club
 
20120309 formal semantics shilov_lecture04
20120309 formal semantics shilov_lecture0420120309 formal semantics shilov_lecture04
20120309 formal semantics shilov_lecture04Computer Science Club
 
20080309 efficientalgorithms kulikov_lecture16
20080309 efficientalgorithms kulikov_lecture1620080309 efficientalgorithms kulikov_lecture16
20080309 efficientalgorithms kulikov_lecture16Computer Science Club
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03Computer Science Club
 
20120512 repeatsinsymbolicsequences shur_lecture03-04
20120512 repeatsinsymbolicsequences shur_lecture03-0420120512 repeatsinsymbolicsequences shur_lecture03-04
20120512 repeatsinsymbolicsequences shur_lecture03-04Computer Science Club
 
20071202 efficientalgorithms kulikov_lecture11
20071202 efficientalgorithms kulikov_lecture1120071202 efficientalgorithms kulikov_lecture11
20071202 efficientalgorithms kulikov_lecture11Computer Science Club
 
20071118 efficientalgorithms kulikov_lecture08
20071118 efficientalgorithms kulikov_lecture0820071118 efficientalgorithms kulikov_lecture08
20071118 efficientalgorithms kulikov_lecture08Computer Science Club
 
20080323 cryptography hirsch_lecture06
20080323 cryptography hirsch_lecture0620080323 cryptography hirsch_lecture06
20080323 cryptography hirsch_lecture06Computer Science Club
 
20120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture0120120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture01Computer Science Club
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Computer Science Club
 
20080323 efficientalgorithms kulikov_lecture19
20080323 efficientalgorithms kulikov_lecture1920080323 efficientalgorithms kulikov_lecture19
20080323 efficientalgorithms kulikov_lecture19Computer Science Club
 
20110409 quantum algorithms_vyali_lecture10
20110409 quantum algorithms_vyali_lecture1020110409 quantum algorithms_vyali_lecture10
20110409 quantum algorithms_vyali_lecture10Computer Science Club
 

En vedette (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
 

Similaire à 20100522 software verification_sharygina_lecture02

Software testing introduction
Software testing introductionSoftware testing introduction
Software testing introductionSriman Eshwar
 
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)Amr E. Mohamed
 
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 AIAI Frontiers
 
Software testing for biginners
Software testing for biginnersSoftware testing for biginners
Software testing for biginnersSriman Eshwar
 
Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Babul Mirdha
 
Completed slides
Completed slidesCompleted slides
Completed slidesJyothi Vbs
 
Triantafyllia Voulibasi
Triantafyllia VoulibasiTriantafyllia Voulibasi
Triantafyllia VoulibasiISSEL
 
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 simulationMalik Abdul Wahab
 
Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam 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 VerificationDVClub
 
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.docxketurahhazelhurst
 
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 HDLTony Lisko
 
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 - ENGLuca Minudel
 
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.pptxBharat Chawda
 
Reactive cocoa 101改
Reactive cocoa 101改Reactive cocoa 101改
Reactive cocoa 101改Jeff Lee
 
Semantical Cognitive Scheduling
Semantical Cognitive SchedulingSemantical Cognitive Scheduling
Semantical Cognitive Schedulingigalshilman
 

Similaire à 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
 

Plus de 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_bugsComputer 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_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

Plus de 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
 

Dernier

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
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 organizationRadu Cotescu
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Dernier (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

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