1 Levent Yilmaz COMP7730: Formal Methods in Software Engineering.

Slides:



Advertisements
Similar presentations
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Advertisements

Software Quality Assurance Plan
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Software system modeling
ISBN Chapter 3 Describing Syntax and Semantics.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
MADALINA CROITORU Software Engineering week 1 Madalina Croitoru IUT Montpellier.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
“Software's Chronic Crisis” by W. Wayt Gibbs
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Presented by: Hatem Halaoui
Overview of Software Requirements
SE 555 – Software Requirements & Specifications Introduction
Describing Syntax and Semantics
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
MCA –Software Engineering Kantipur City College. Topics include  Formal Methods Concept  Formal Specification Language Test plan creation Test-case.
S R S S ystem R equirements S pecification Specifying the Specifications.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Software Design: An Introduction by David Budgen Presented by Shane Marcus EEL 6883 – Spring 2007 Presented by Shane Marcus EEL 6883 – Spring 2007.
2.2 Software Myths 2.2 Software Myths Myth 1. The cost of computers is lower than that of analog or electromechanical devices. –Hardware is cheap compared.
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.
Lecture 7: Requirements Engineering
1 Requirements Management - General concepts - Noureddine Abbadeni King Saud University College of Computer and Information Sciences Based on “Software.
Software Requirements: Overview and Motivation Gruia-Catalin Roman and Christopher Gill CSE 436 January 2007 Department of Computer Science and Engineering.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Chapter 1 Introduction to Software Engineering. Why Engineer Software? n Air traffic control case study –$2.3 Billion spent without any usable deliverable.
1 Chapter 3 1.Quality Management, 2.Software Cost Estimation 3.Process Improvement.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
1 The problem of correctness Consider the following program: Read(ch) WriteString(‘42’) is this correct?
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
The Other Face Or Why Document? By Chris Bradney Or Why Document? By Chris Bradney.
Seven Myths of Formal Methods - by Anthony Hall, Praxis Systems Presented by Shanmughapriya Senthil.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Requirements Analysis
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
Duminda WijesekeraSWSE 623: Introduction1 Introduction to Formal and Semi- formal Methods Based on A Specifier's Introduction to Formal Methods (J. Wing)
Requirements Engineering Methods for Requirements Engineering Lecture-31.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.
Formal Methods. What Are Formal Methods Formal methods refers to a variety of mathematical modeling techniques that are applicable to computer system.
Requirement Specification SRS document is a contract between the development team and the customer How do we communicate the Requirements to others? Firm.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Cs498dm Software Testing Darko Marinov January 24, 2012.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Design Process. What is software? mid-1970s executable binary code ‘source code’ and the resulting binary code 1990s development of the Internet.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
What is a Functional Spec?  Defines what the functionality will be NOT how it will be implemented  Describes features of the software product product's.
Advanced Software Engineering Dr. Cheng
Introduction to Formal Methods
Software Engineering (CSI 321)
Verification and Validation Overview
Formal Methods (i.e. mathematical, algorithmic) for Software and Hardware Designs and, more generally, Design Tools and Technologies
Chapter 13 Quality Management
Software requirements
CS310 Software Engineering Lecturer Dr.Doaa Sami
Project Management: Inspections and Reviews Formal Specifications
Department of Computer Science Abdul Wali Khan University Mardan
Software system modeling
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Activities of Formal Methods
Presentation transcript:

1 Levent Yilmaz COMP7730: Formal Methods in Software Engineering

2 Outline  Overview of the syllabus   Introduction to formal methods  Why formal methods  A historical perspective  Myths about formal methods

3 Introduction to formal methods Jeannette M. Wing (1990). A specifier’s introduction to formal methods. IEEE Computer, 23(9):8-24, September  Formal methods are mathematically based techniques that provide frameworks within which people can  specify,  develop, and  verify systems in a systematic, rather than ad-hoc manner.  They provide the means of  proving that a system has been implemented correctly,  proving properties of a system without necessarily running it.

4 High quality software  The importance of high quality software  What are the characteristics of high quality software?  The need for precision in the specification of software

5 Top 10 excuses for low quality software Top 10 Replies by Programmers when their programs do not work: 10. "That's weird..." 9. "It's never done that before." 8. "It worked yesterday." 7. "It must be a hardware problem." 6. “I haven't touched that module in weeks!" 5. "You must have the wrong version." 4. "Somebody must have changed my code." 3. "Did you check for a virus on your system?" 2. "You can't use that version on your system." And the Number One Reply by Programmers when their programs don't work: 1. "I thought I fixed that."

6 The need to produce correct software systems  As computers become cheaper, smaller, and more powerful, their spread through our technological society becomes more pervasive.

7 Why study formal methods? The software industry has a long standing and well earned reputation for failing to deliver on its promises. In the September 1994 issue of Scientific American, a number of sobering examples are given and it is observed that "despite 50 years of progress, the software industry remains years -- perhaps decades -- short of the mature engineering discipline needed to meet the needs of an information-age society." In an article in the January/February 1997 issue of I.E.E.E. Software, Luqi and Goguen cite staggering cost estimates of software development failures at $81 billion for 1995, and $100 billion for In his Web article, Goguen calls attention to several highly visible failures: the cancellation of IBM's $8 billion contract with the FAA for a new nation-wide air control system, the DOD cancellation of a $2 billion contract with IBM to modernize its information systems, the failure of the software for delivering real-time sports data at the 1996 Olympics, the one and one-half year delay in the United Airlines automated baggage handling system at the new Denver airport at a cost of $1.1 million per day, and the list could go on.Web article A reading of Peter Neumann's book, Computer Related Risks, will reveal that such problems are not at all new, although they appear to be growing. Neumann even points out deaths which resulted from radiation overdoses from a computer-based radiation-therapy system in the mid-1980s It is clear that there is no price that can assure the success of software projects with the current technology. For large complex projects an ad hoc approach has proven inadequate. The lack of formalization in key places makes software engineering overly sensitive to the foibles that are inevitable in the highly technical and detailed activities associated with software creation. Aids to precision and cross-checking are essential, and this is precisely the objective of formal methods.

8 The role of formal methods  Formal methods reveal ambiguities, incompleteness, and inconsistencies.  One tangible product of applying a formal method is a formal specification.  Specification languages -  Syntactic domains, Semantic domains, and  Satisfies relation  Desirable properties of specifications  Proving properties of specificands

9 Pragmatics  Users  Uses  Requirements analysis  System design  System verification and validation  System documentation

10 Characteristics  Model vs. property oriented  Visual languages  Executable  Tool-support

11 A historical perspective  Syntax – necessary but insufficient to describe the meaning of programs.  Testing – What is wrong with program testing?  Verification – The modern concept of program verification was first introduced by Floyd in 1967.

12 The Floyd verification model

13 A brief survey of techniques  Axiomatic specification and verification  Weakest preconditions  Guarded commands  Algebraic specification  Statecharts and model checking

14 Limitations of formal methods Myth 1: formal methods guarantee perfect software and eliminate the need for testing. Myth 2: formal methods are all about proving programs correct. Myth 3: formal methods are only useful in safety-critical systems. Myth 4: application of formal methods requires highly trained mathematicians. Myth 5: applications of formal methods increases development costs. Myth 6: formal methods are unacceptable to users. Myth 7: formal methods are not used on real large-scale systems.

15 Model-based Specification- What is Z?  Z is a formal specification language for software systems. It supports  Representational and  Procedural abstraction  In Z operations are specified by their input/output behavior.