Seven Myths of Formal Methods - by Anthony Hall, Praxis Systems Presented by Shanmughapriya Senthil.

Slides:



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

25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Software system modeling
1 Semantic Description of Programming languages. 2 Static versus Dynamic Semantics n Static Semantics represents legal forms of programs that cannot be.
Software Reliability CIS 640 Adapted from the lecture notes by Doron Pelel (
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Building Reliable Software Requirements and Methods.
1 Certification Chapter 14, Storey. 2 Topics  What is certification?  Various forms of certification  The process of system certification (the planning.
1 IS371 WEEK 8 Last and Final Assignment Application Development Alternatives to Application Development Instructor Online Evaluations.
OOP #10: Correctness Fritz Henglein. Wrap-up: Types A type is a collection of objects with common behavior (operations and properties). (Abstract) types.
Presented by: Hatem Halaoui
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 1 (cont ’d) Title : Client requirements (Review) Mandatory reading: I.
CSC 395 – Software Engineering Lecture 21: Overview of the Term & What Goes in a Data Dictionary.
Overview of the Multos construction process Chad R. Meiners.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 10 Slide 1 Formal Specification.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 10 Slide 1 Critical Systems Specification 3 Formal Specification.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 10 Slide 1 Formal Specification.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 24 Slide 1 Critical Systems Validation 1.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©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.
Invariant Based Programming in Education Tutorial, FM’08 Linda Mannila
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.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
WXGE6103 Software Engineering Process and Practice Formal Specification.
The Role of Experience in Software Testing Practice Zahra Molaei Soheil Hedayatitezengi Comp 587 Prof. Lingard 1 of 21.
VENDORS, CONSULTANTS AND USERS. WHY CAN’T COMPANIES DEVELOP THEIR OWN ERP PACKAGES? To develop an ERP package is a complex & time consuming activity which.
Requirements Engineering Overview Senior Design Don Evans.
Software Debugging, Testing, and Verification Presented by Chris Hundersmarck November 10, 2004 Dr. Bi’s SE516.
1 The problem of correctness Consider the following program: Read(ch) WriteString(‘42’) is this correct?
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor.
1 Levent Yilmaz COMP7730: Formal Methods in Software Engineering.
An Axiomatic Basis for Computer Programming Robert Stewart.
Formal Methods in SE Software Verification Using Formal Methods By: Qaisar Javaid, Assistant Professor Formal Methods1.
Software Requirements Specification (SRS)
Version 02U-1 Computer Security: Art and Science1 Correctness by Construction: Developing a Commercial Secure System by Anthony Hall Roderick Chapman.
Requirements Analysis
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
Module 7- Evaluation: Quality and Standards. 17/02/20162 Overview of the Module How the evaluation will be done Questions and criteria Methods and techniques.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
DAAD project “Joint Course on OOP using Java” Humboldt University Berlin, University of Novi Sad, ‘Polytehnica’ University of Timisoara, University of.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Formal Methods. What Are Formal Methods Formal methods refers to a variety of mathematical modeling techniques that are applicable to computer system.
Introduction to Software Requirement Engineering Nisa’ul Hafidhoh Teknik Informatika
Model Checking Early Requirements Specifications in Tropos Presented by Chin-Yi Tsai.
DECISION MODELING WITH MICROSOFT EXCEL Chapter 11 Copyright 2001 Prentice Hall Publishers and Ardith E. BakerIMPLEMENTATION.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Formal Specification.
Software Requirements
Verification and Validation Overview
Software Myths Software is easy to change
The Seven Myths of Formal Methods
By Dr. Abdulrahman H. Altalhi
Software Design Methodology
Software Requirements Specification Document
Software Engineering Furqan Rustam.
Baisc Of Software Testing
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Engineering Lecture #3
Software system modeling
Dr. Jiacun Wang Department of Software Engineering Monmouth University
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Activities of Formal Methods
Presentation transcript:

Seven Myths of Formal Methods - by Anthony Hall, Praxis Systems Presented by Shanmughapriya Senthil

Introduction  Usually, detractors think that formal methods are,  Difficult  Expensive and  Not widely useful  A lot what is said about formal methods is based on assertions and not facts  Some of the beliefs about formal methods have been exaggerated and have acquired almost the state of myths  This article takes a look at seven of the favorable and unfavorable myths of formal methods.

Activities of Formal Methods The main activities of Formal methods are,  Writing a formal specification  Proving properties about the specification  Constructing a program by mathematically manipulating the specification  Verifying a program by mathematical argument

Myth 1  Formal Methods can guarantee that software is perfect  But the fact is that formal methods are fallible  Their fallibility is the most important limitation which arises from the fact that, Some things can never be proved and Sometimes proofs can be wrong  The above limitation can be overcome by using mathematical models based on reasoning  But again the limits of mathematical modeling are, Only some aspects of program behavior will be covered Correspondence between the formal description and the real world is limited  Formal Methods eliminate only certain classes of errors and not all of them but they do make much easier to find all sorts of errors.

Myth 2  Formal Methods are all about Program Proving  Program Verification is one aspect of Formal Method  It is important since cost of removing errors increases as a project progresses  To verify a program we need formal specification. - a formal specification is a precise definition of what the software intended to do - It differs from the design specification in that it is concerned only with the function of the system and makes no commitments to its structures

Myth 2 (Contd.)  Writing such formal specification help us to,  Clarify requirements  Discover latent errors and ambiguities  Make decision about functionality at the right stages  Implementation from the formal specifications done in small steps rather than writing a whole program and verifying it.  So, a specification is a kind of contract between specifiers and implementers, and if the specification is formal, it is easy to interpret the contract and to decide if it has been satisfied.

Myth 3  Formal Methods are useful for safety-critical systems  The fact is that formal specifications help with any system  Formal methods should be used when cost of failure in systems which are Critical in some way Replicated many times Fixed into hardware Dependent on quality for commercial reasons  If the system is critical, it must be developed completely formally  Many benefits of formal methods come from the specification stage. Thus, on a non-critical system, even if none of the rest of the development is formal, just writing a formal specification is a big improvement over other informal methods.

Myth 4  Formal Methods require highly trained mathematicians  The fact is that mathematics for specification is easy  Once it is recognized that the practice of formal methods is concerned with writing specifications, the mathematicla difficulties become much less significant  Training in fields of discrete mathematics and formal notation would help to overcome difficulties  Competent people who can cope with the necessary mathematical manipulations are the ones who must carry out safety-critical projects

Myth 5  Formal Methods increase the cost of development  But the fact is that it decreases the cost of development  Also, it changes the shape of project since more time is spent on the specification phase  Due to this, it can be difficult to manage the specification process even if cost of development decreases.

Myth 6  Formal Methods are unacceptable to users  The fact is that formal specifications help users understand what they are getting  There are 3 ways to do this, Paraphrase the specification in natural language Demonstrate consequences of the specification Animate the specification

Myth 7  Formal Methods are not used on real, largescale software  The fact is that formal methods are used daily on industrial projects  Several organizations are using formal methods on industrial scale projects  Formal methods are not only used in security area. Their scope is far wider

Conclusion Instead of seven myths, the author is replacing them with seven facts,  Formal methods are helpful at finding errors early on and can nearly eliminate certain classes of error  They work largely by making us think about the system we are going to build  They are useful for almost any application  They are based on mathematical specification, which are much easier to understand than programs  They can decrease the cost of development  They can help clients understand what they are buying  They are being used successfully on practical projects in industry.