l15 - CS 267: Automated Verification Lecture 15:...

Info iconThis preview shows pages 1–11. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: CS 267: Automated Verification Lecture 15: Modularity, Interfaces and Verification Instructor: Tevfik Bultan Model Checking Software Model checking An automated software verification technique Exhaustive exploration of the state space of a program to find bugs Systematically explore all possible behaviors of a program look for violations of the properties of interest assertion violations, deadlock Software model checkers: Verisoft, Java PathFinder (JPF), SLAM, BLAST, CBMC Two Challenges in Software Model Checking State space explosion Exponential increase in the state space with increasing number of variables and threads State space includes everything: threads, variables, control stack, heap Environment generation Finding models for parts of software that are either not available for analysis, or are outside the scope of the model checker Modular Verification Modularity is key to scalability of any verification technique Moreover, it can help in isolating the behavior you wish to focus on, removing the parts that are beyond the scope of your verification technique Modularity is also a key concept for successful software design The question is finding effective ways of exploiting the modularity in software during verification Interfaces for Modularity How do we do modular verification ? Divide the software to a set of modules Check each module in isolation How do we isolate a module during verification/testing? Provide stubs representing other modules (environment) How do we get the stubs representing other modules? Write interfaces Interfaces specify the behavior of a module from the viewpoint of other modules Generate stubs from the interfaces Interfaces and Modularity: Basic Idea 1. Write interface specifications for the modules 2. Automatically generate stubs from the interface specifications 3. Automatically generated stubs provide the environment during modular verification Three Applications I will talk about two different instantiations of this basic idea: 1. Verification of synchronization policies in concurrent programs using finite state interfaces 2. Verification of conversations among web services using finite state interfaces 3. Verification of sequential interactions using interface grammars PART 1 Concurrency Controller Pattern for Synchronization An Infinite State Model Checker Action Language Action Language Parser Parser Model Checker Model Checker Omega Omega Library Library CUDD CUDD Package Package MONA MONA Composite Symbolic Library Composite Symbolic Library Presburger Presburger Arithmetic Arithmetic Manipulator Manipulator BDD BDD Manipulator Manipulator Automata Automata Manipulator Manipulator Action Language Action Language Specification Specification + CTL property + CTL property Counter-example Counter-example Verified Verified Not sure Not sure Action Language Verifier (ALV) What Can One Do with ALV?...
View Full Document

This note was uploaded on 12/27/2011 for the course CMPSC 267 taught by Professor Bultan during the Fall '09 term at UCSB.

Page1 / 101

l15 - CS 267: Automated Verification Lecture 15:...

This preview shows document pages 1 - 11. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online