Formal Methods. Importance of high quality software ● Software has increasingly significant in our everyday activities - manages our bank accounts - pays.

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Software Requirements
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Chapter 4 Quality Assurance in Context
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
ISBN Chapter 3 Describing Syntax and Semantics.
CS 355 – Programming Languages
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Object Oriented Design An object combines data and operations on that data (object is an instance of class) data: class variables operations: methods Three.
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
SWE Introduction to Software Engineering
Software Requirements
Lecture 13 Revision IMS Systems Analysis and Design.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages Chapter 3 : Describing Syntax and Semantics Operational Semantics.
Software Requirements
Overview of Software Requirements
Describing Syntax and Semantics
MCA –Software Engineering Kantipur City College. Topics include  Formal Methods Concept  Formal Specification Language Test plan creation Test-case.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
Data Structures and Programming.  John Edgar2.
Chapter 9 Database Planning, Design, and Administration Sungchul Hong.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
A Brief Summary for Exam 1 Subject Topics Propositional Logic (sections 1.1, 1.2) –Propositions Statement, Truth value, Proposition, Propositional symbol,
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Software Requirements Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn Lecture 4 & 5.
Chapter 25 Formal Methods Formal methods Specify program using math Develop program using math Prove program matches specification using.
Model Based Testing Group 7  Nishanth Chandradas ( )  George Stavrinides ( )  Jeyhan Hizli ( )  Talvinder Judge ( )  Saajan.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
1 Sequential Machine Theory Prof. K. J. Hintz Department of Electrical and Computer Engineering Lecture 1 Adaptation to this.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Requirements Reference: Chapters 5, 6, & 8. CMSC 345, Fall Objectives To introduce the concepts of user and system requirements To explain functional.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
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.
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
Managing Data Resources. File Organization Terms and Concepts Bit: Smallest unit of data; binary digit (0,1) Byte: Group of bits that represents a single.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Methodology Review Chapter 7 Part 2: Design Methodology Object-Oriented Modeling and Design Byung-Hyun Ha
Chapter 25 Formal Methods. BASIC CONCEPTS A method is formal if it has a sound mathematical basis, typically given by a formal specification language.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Copyright 1999 G.v. Bochmann ELG 7186C ch.1 1 Course Notes ELG 7186C Formal Methods for the Development of Real-Time System Applications Gregor v. Bochmann.
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
1 Software Requirements Descriptions and specifications of a system.
 System Requirement Specification and System Planning.
Software Engineering, COMP201 Slide 1 Software Requirements.
ICS 3UI - Introduction to Computer Science
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Life Cycle Models PPT By :Dr. R. Mall.
SNS College of Engineering Coimbatore
Problem Solving Techniques
Logical architecture refinement
Chapter 28 Formal Modeling and Verification
A Brief Summary for Exam 1
Project Management: Inspections and Reviews Formal Specifications
Software Reviews.
Presentation transcript:

Formal Methods

Importance of high quality software ● Software has increasingly significant in our everyday activities - manages our bank accounts - pays our salaries - controls aircraft we fly in - regulates power generation and distribution - controls our communication - etc

Importance of high quality software ● Characteristics of high quality software (some) - easy to use - efficient - correct - many more....

Typical software cycle ● Requirement analysis : determine user needs ● Specification : describe precisely what the role of the software will be ● Design : determine how to realize the software, and devise overall organization ● Implementation : formulate the algorithms and program ● Verification : certify that the program meet the specification ● Maintenance : perform ongoing changes and corrections after the software is in use

Precision in the specification of software

Why formal methods ● The interpretation of natural languages ● The manipulation of specifications

Natural Language Specification ● Ambiguity - multiple meaning and interpretation - inferred from surrounding text eg. The program will take a sequence of numbers and return a sorted list. What is wrong with this?

Natural Language Specification ● Incompleteness and vagueness - be specific eg. how many numbers do we input? When is the sorted output?

Natural Language Specification ● Contradiction - may contain statements at odds with each other eg. When the retrieve function is activated the beta file will be locked and no other access allowed. The retrieve function is activated by pressing the F1 function.

Advantages of formal methods ● Formal specifications allow precise interpretation; there is therefore no possibility of arguments about what has been specified ● Formal methods allow systems to be defined in abstract terms; in particular developers can look at what a system is to do before becoming bogged down in detail as to how it is to be accomplished ● A formal methodology demands attention to issues of completeness and consistency, therefore reducing the chances of overlooking certain areas or situations which could cause errors or bugs ● The use of formal methodology allows the progressive refinement of an abstract specification into a concrete specification uisng well- defined rules. This lead to the possibility of generating programs from formal specifications automatically ● Using formal descriptions it is possible to detect deviations of a program from its original specification.

Question? Formal methods can guarantee that software is perfect; do you think so?

Requirements of a Formal System For a formal methodology to be complete it must be able to fulfil the following requirements: ● Specification : it must be possible to state what a program is meant to do in a formal precise way ● Verification: given the specification and a program obtained, it should be possible to prove using formal mathematical methods that the program does what the specification states

Formal development process ● After-the-fact verification requirement Pre- design Detailed design code Formal spec

Formal development process ● parallel requirement Pre- design Detailed design code low-level Formal spec High-level formal spec

Formal development process ● Integrated requirement Formal pre-design specification Formal Detailed design spec code

Concepts used ● Set theory - membership of a set - subset - powerset -operation on a set - cardinality - cartesian products

Concepts used ● Types - predefined basic type - user defined types - compound types - product types - enumerated types ● sequences

Concepts used ● Formal Logic - propositional logic - law of equivalence - tautologies - predicate logic - quantification

Concepts used ● Relationships and functions - function - operations on function - total function, partial function - injective, surjective, bijective functions