Verification technique on SA applications using Incremental Model Checking 컴퓨터학과 신영주.

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
Metodi formali dello sviluppo software a.a.2013/2014 Prof.Anna Labella.
CS 267: Automated Verification Lecture 2: Linear vs. Branching time. Temporal Logics: CTL, CTL*. CTL model checking algorithm. Counter-example generation.
M ODEL CHECKING -Vasvi Kakkad University of Sydney.
Algorithmic Software Verification VII. Computation tree logic and bisimulations.
CS 267: Automated Verification Lecture 8: Automata Theoretic Model Checking Instructor: Tevfik Bultan.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
1 Model checking. 2 And now... the system How do we model a reactive system with an automaton ? It is convenient to model systems with Transition systems.
Verification of Evolving Software Natasha Sharygina Joint work with Sagar Chaki and Nishant Sinha Carnegie Mellon University.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
An Introduction to the Model Verifier verds Wenhui Zhang September 15 th, 2010.
ECE Synthesis & Verification - L271 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Model Checking basics.
ECE 720T5 Fall 2012 Cyber-Physical Systems Rodolfo Pellizzoni.
Software Reliability CIS 640 Adapted from the lecture notes by Doron Pelel (
Lecture 4&5: Model Checking: A quick introduction Professor Aditya Ghose Director, Decision Systems Lab School of IT and Computer Science University of.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Temporal Logic and Model Checking. Reactive Systems We often classify systems into two types: Transformational: functions from inputs available at the.
Review of the automata-theoretic approach to model-checking.
Embedded Systems Laboratory Department of Computer and Information Science Linköping University Sweden Formal Verification and Model Checking Traian Pop.
Automata and Formal Lanugages Büchi Automata and Model Checking Ralf Möller based on slides by Chang-Beom Choi Provable Software Lab, KAIST.
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
272: Software Engineering Fall 2012 Instructor: Tevfik Bultan Lecture 4: SMT-based Bounded Model Checking of Concurrent Software.
Data Structures and Programming.  John Edgar2.
1 L07SoftwareDevelopmentMethod.pptCMSC 104, Version 8/06 Software Development Method Topics l Software Development Life Cycle Reading l Section 1.4 – 1.5.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Describe the Program Development Cycle. Program Development Cycle The program development cycle is a series of steps programmers use to build computer.
10/19/2015COSC , Lecture 171 Real-Time Systems, COSC , Lecture 17 Stefan Andrei.
CS6133 Software Specification and Verification
(c) 2007 Mauro Pezzè & Michal Young The Big Picture.
Joseph Cordina 1/11 The Use of Model-Checking for the Verification of Concurrent Algorithms Joseph Cordina Department of C.S.&A.I.
Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Specifications 1.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
CMSC 1041 Algorithms II Software Development Life-Cycle.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
More on Correctness. Prime Factorization Problem: Write a program that computes all the prime factors of a given number Solution (Idea): Factors are less.
Program Design. The design process How do you go about writing a program? –It’s like many other things in life Understand the problem to be solved Develop.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 05/06 Universität Dortmund Validation - Formal verification -
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
Verification & Validation By: Amir Masoud Gharehbaghi
Constraints Assisted Modeling and Validation Presented in CS294-5 (Spring 2007) Thomas Huining Feng Based on: [1]Constraints Assisted Modeling and Validation.
CSCI1600: Embedded and Real Time Software Lecture 28: Verification I Steven Reiss, Fall 2015.
1 CSEP590 – Model Checking and Automated Verification Lecture outline for July 9, 2003.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
From Natural Language to LTL: Difficulties Capturing Natural Language Specification in Formal Languages for Automatic Analysis Elsa L Gunter NJIT.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Introduction to Problem Solving Programming is a problem solving activity. When you write a program, you are actually writing an instruction for the computer.
Complexity of Compositional Model Checking of Computation Tree Logic on Simple Structures Krishnendu Chatterjee Pallab Dasgupta P.P. Chakrabarti IWDC 2004,
Basic concepts of Model Checking
Formal methods: Lecture
Algorithms II Software Development Life-Cycle.
Chapter 2- Visual Basic Schneider
Software Design Methodology
Problem Solving Techniques
CSCI1600: Embedded and Real Time Software
Formal Methods in software development
Chapter 2- Visual Basic Schneider
Chapter 2- Visual Basic Schneider
Baisc Of Software Testing
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
Translating Linear Temporal Logic into Büchi Automata
Program correctness Model-checking CTL
Presentation transcript:

Verification technique on SA applications using Incremental Model Checking 컴퓨터학과 신영주

Motivation What is problem? – SA applications are near by human and can affect human physically. – Small bugs in SA application can be very harmful to human. – For example, a microwave oven, embedding SA application that has some bugs, may be heated while it’s door is opened.

Challenging to solve this problem SA applications must be safe. It is necessary to find a method to detect safety violations before deploying SA applications. Safety of SA applications can be guaranteed by verifying it using some automated formal methods, which are already researched and developed.

Project Goals Develops a method to verify SA applications using Incremental Model Checking. Defines Situation-aware Application Model Description Language (SAMDL) that describes a formal representation of model of SA application. Defines Constraints Description Language(CDL) that describes a requirements specification a SA application must satisfy. Implements a verification tool using above method.

Solution Approach What is model checking? – Given a Kripke structure M=(S,R,L) that represents a finite state concurrent system and a temporal logic formula f expressing some desired specification, find the set of all states that satisfy f. – Kripke structure M=(S,R,L) means S is a finite set of states R ⊆ SXS is a transition relation of states L:S -> 2 AP is a function that labels each state with the set of atomic proposition true in that state.

Solution Approach (Cont.) Example of model checking (microwave oven) ~START ~CLOSE ~HEAT ~ERROR 1 ~START CLOSE ~HEAT ~ERROR 3 START ~CLOSE ~HEAT ERROR 2 START CLOSE ~HEAT ERROR 5 START CLOSE ~HEAT ~ERROR 6 START CLOSE HEAT ~ERROR 7 ~START CLOSE HEAT ~ERROR 4 Start oven Open door Close door Reset Start oven Open doorClose door Open door Done Cook Start cooking Warmup Kripke Structure of microwave oven Verify that this model have a below property If a microwave oven starts, then it will be eventually heat. AG(Start -> AF Heat) ≡ ┓ EF(Start ∧ EG ┓ Heat)) S(Start) = {2,5,6,7} S(EG ┓ Heat) = {1,2,3,5} S(Start ∧ EG ┓ Heat) = {2,5} S(EF(Start ∧ EG ┓ Heat)) = {1,2,3,4,5,6,7} Finally, S( ┓ EF(Start ∧ EG ┓ Heat)) = {0} // empty set So this model do not satisfy the given property

Solution Approach (Cont.) What is incremental model checking? – first, run baseline model checking algorithm once. – for any subsequent changes of model, reexamine only a minimal number of states affected by that changes. Incremental model checking can reduce the computing costs.

System Architecture of verification tool Report Generator IMC Module Model Analyzer SAMDL Verification tool CDL Verification report Figure. Architecture of verification tool

System Architecture of verification tool (Cont.) Input Situation Aware Application Model Description Language. (SAMDL) – A formal representation of SA application’s model. Constraints Description Language (CDL) – A specification of requirements that SA application must satisfy. – Example of Specification of requirements EX) A microwave oven must not be heat when a door is opened Output A report of verification result.

System Architecture of verification tool (Cont.) Verification tool consists of three components – Model Analyzer This module accepts a SAMDL(Situation-aware Application Model Description Language) file, then analyze it and produce a intermediate codes, which Is a input to Incremental Model Checker. – Incremental Model Checker Module This module accepts two inputs. One is a intermediate codes that is output of Model Analyzer, and another is CDL(Constraints Description Language) file. IMC verifies whether the SA application satisfies the requirement specification. – Report Generator This module accepts process results during analyzing phase and model checking phase, and generate a report that man can understand easily from the results.

Task Schedules Defines SAMDL, CDL due to 4/30 Implements verification tool due to 5/22