Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.

Slides:



Advertisements
Similar presentations
Software Design Fundamentals
Advertisements

ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
ISBN Chapter 3 Describing Syntax and Semantics.
1 Semantic Description of Programming languages. 2 Static versus Dynamic Semantics n Static Semantics represents legal forms of programs that cannot be.
CS 355 – Programming Languages
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
VIDE Integrated Environment for Development and Verification of Programs.
Formal Methods. Importance of high quality software ● Software has increasingly significant in our everyday activities - manages our bank accounts - pays.
A Type System for Expressive Security Policies David Walker Cornell University.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
Chapter 1 Principles of Programming and Software Engineering.
Describing Syntax and Semantics
VHDL. What is VHDL? VHDL: VHSIC Hardware Description Language  VHSIC: Very High Speed Integrated Circuit 7/2/ R.H.Khade.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
SE-565 Software System Requirements More UML Diagrams.
MCA –Software Engineering Kantipur City College. Topics include  Formal Methods Concept  Formal Specification Language Test plan creation Test-case.
Course Instructor: Aisha Azeem
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
IAY 0600 Digital Systems Design
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
Speaking Bluntly about SharpHDL: Some Old Stuff and Some Other Proposed Future Extensions Gordon J. Pace & Christine Vella Synchron’05 Malta, November.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
A Z Approach in Validating ORA-SS Data Models Scott Uk-Jin Lee Jing Sun Gillian Dobbie Yuan Fang Li.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
SOFTWARE DESIGN.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Chapter 6 Programming Languages (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Joseph Cordina 1/11 The Use of Model-Checking for the Verification of Concurrent Algorithms Joseph Cordina Department of C.S.&A.I.
Large Scale Software Systems Derived from Dr. Fawcett’s Notes Phil Pratt-Szeliga Fall 2010.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
Formal Verification Lecture 9. Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems.
Design Concepts By Deepika Chaudhary.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Semantics In Text: Chapter 3.
Formal Methods.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
7-1 © Prentice Hall, 2007 Topic 7: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
1 Abstract Model Specification. 2 Explicitly describes behavior in terms of a model using well-defined types (viz. set, sequences, relations, functions)
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Duminda WijesekeraSWSE 623: Introduction1 Introduction to Formal and Semi- formal Methods Based on A Specifier's Introduction to Formal Methods (J. Wing)
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Comparison of ZOOM with other Formal Methodologies Hsiu-Chien Jing SE690 Initial Presentation School of CTI, DePaul University Supervised by Dr. Jia October,
Principles of Programming & Software Engineering
Introduction to Formal Methods
Structural style Modular design and hierarchy Part 1
Formal Verification/Methods
Software Design Methodology
Logical architecture refinement
Structural style Modular design and hierarchy Part 1
Multiple Aspect Modeling of the Synchronous Language Signal
SECTION 4: OO METHODOLOGIES
Presentation transcript:

Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal model) –to reason about the behaviors of programs No known generic software verification –Involves complicated proving –Generally cannot be easily and cost-effectively integrated to software and hardware development cycles

Major Verification Topics Specification Verification Architecture Verification General practical issues

Architecture Verification Correctness of architecture refinement –a methodology for the correct stepwise refinement of software architectures –using the approach of architecture refinement patterns that are correctness preserving and compositional

Common architecture Issues From abstract level to concrete level Simple architecture: box - arrows, representing data component and connections Large architecture: Hierarchical approach

Common architecture problem Limited utility of architecture hierarchy results from the current level of informality Ambiguity in architecture allows unintended interpretations. May cause erroneous interrepretation

Architecture Refinement From a abstract architecture to a concrete (lower- level) architecture –lead to: fewer architectural design errors extensive and systematic reuse of design knowledge and proofs

Refinement pattern approach A pair architecture schemas (homogenous or heterogeneous) proven to be relatively correct with respect to the given mapping schema

Refinement pattern Requires a special correctness criterion –a special mapping between architectures –extensive translation: the representation of components, interfaces, and connections aggregated, decomposed, or eliminated

Completeness assumption Prove that a concrete architecture has all required properties –No new properties can be inferred from the concrete architecture All components, interfaces, and connections intended to be true of the architecture at its level of detail –If a fact is not explicit in the architecture, assume that it is not intended to be true

Completeness assumption Standard way to proof relative correctness –show that the concrete specification logically implies the abstract specification under a given mapping –allow additional and specified behaviors, as long as the specified behavior is implemented –no guarantee that negative properties are preserved under refinement Alternative: –faithful interpretation –hard and no general proof technique Use preproved refinement patterns

Example Use only logical theories for simplicity To show how to systematically and incrementally transform a abstract architecture to its lower-level form Approach: combining small and local refinement to form the larger composite

Example chars code Lexical Analyzer Lexical Parser Analyzer Optimizer Code Generator toksast bindings

Lexical Parser Analyzer Optimizer ast From simple dataflow to shared syntax tree: Example: abstract sub-architecture to concrete sub- architecture

Architecture as Theories Architecture Styles –Operations & axioms Translation to Logic –Patterns  logic (theory generation rules) Mapping –Name mapping –Style mapping –Interpretation mapping

Architecture styles Dataflow style: Axioms example -- Every function must at least have one port:

Translation to Logic An instance of function declaration schema: –f: Functional_Style!Function [  op: t] The underlying theory contains the same instance of first order sentences:

Pattern of Abstract Architecture M: MODULE [ Pattern of Concrete Architecture

Mapping Name mapping: –c |  m –op |  w Style mapping: –Accepts (_, _) |  Gets (_, _) –Connects (_, _, _) |  Writes (_,_) ^ Reads(_,_) Interpretation mapping = name + style mapping

Proving Criterion –all intended to do –not intended to do

Composition Horizontal –compose instances of refinement patterns to form one large composite refinement Vertical –most concrete architecture in a hierarchy is correct with respect to the most abstract –justified since faithful interpretation is transitive

problem example Concrete architecture 1 –A  B (dataflow connection) Concrete architecture 2 –B  C (dataflow connection) the composition of 1 and 2 is not faithful! –need new abstract dataflow from A to C

Specification Correctness issue Complete specification of program is in terms of hierarchical structure of module specifications Module external specification are abstract, about module behavior Module internal specifications are descriptions of internal implementations

Concurrent System Verification Program is a set of events Interpreted and verified with a formal proof system Internal specification classified as composite or simple Composite: composed of linked sub-modules, each with external and internal specification

External Specification External specification consist of three parts: behavior: module delivers to the environment provide: how modules synchronizes with the environment require: synchronization cooperation the module expects from environment

Composite internal specification Internal specification of a composite module associates events described in the external specification of the module with events described in the external specifications of the sub- modules. Ports: a set of single direction communication channels between the module and its environment Network link: sub module ports are connected together to form communication channels

Composite module verification Verification of composite module: 1. External behaviors of the sub-modules plus the network and interface links must imply the external behavior of composite module 2. Provides and requires of the sub modules and composite module must be mutually supportive and complete. “mutual support: sub module provides imply the sub- module requires. “ complete:composite require and provide represent the sub module requires and provides accurately and completely.

Composite module

Simple module specification verification Internal specification of a simple consists of three parts: program: internal specification as example performance: whether the program is cyclic or terminates and contains an assert statement that describe the history interpret: identify ports with subsequences on the history

Simple module internal specs

Simple module specification verification Verification of specifications of a simple module: 1. Performance and interpret statements must imply the external behavior 2. Performance and external provide must be established using following axioms : History Sequence Axiom Statement block Axiom Process history Axiom

Discussion Task of analyzing programs is easier if the program is composed of modules Key importance is to establish specifications Automated verification system can be based on verification rules

Related works Automatic program verifications- verification condition generator EBS, Chen, Yeh, Reed et al Concurrent programs, Hailpern,Owicki, Lamport and Schneider

General discussion Abstract logic component decomposition verification and efficiency analysis Practical tools, such as UML