Formal Methods: Industrial Use CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute March 21, 2003.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Advertisements

Unit 2. Software Lifecycle
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Chapter 2 – Software Processes
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Chapter 22 UML Tooks and UML as Blueprint Model-Driven Architecture (MDA) Object-Constraint Language (OCL)
Alternate Software Development Methodologies
CS 355 – Programming Languages
Software Reliability CIS 640 Adapted from the lecture notes by Doron Pelel (
Formal Methods: Z CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute March 18, 2003.
Code Inspections CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 22, 2007.
What do Computer Scientists and Engineers do? CS101 Regular Lecture, Week 10.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Uml and Use Cases CS 414, Software Engineering I Mark Ardis Rose-Hulman Institute January 9, 2003.
Cleanroom Method CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute March 20, 2003.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Illinois Institute of Technology
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
CS351 - Software Engineering (AY2005)1 What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Risk Management CS 414, Software Engineering I Mark Ardis, Rose-Hulman Institute January 28, 2003.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Unit Testing CS 414 – Software Engineering I Don Bagert Rose-Hulman Institute of Technology January 16, 2003.
Chapter 3 Software Processes.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
PROGRAMMING LANGUAGES The Study of Programming Languages.
ISO Tor Stålhane IDI / NTNU. What is ISO ISO 9001 was developed for the production industry but has a rather general structure ISO describes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
ITEC 3220M Using and Designing Database Systems
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Course Overview. What are Computers? From Outside –CPU box, Monitor, Keyboard, mouse and Printers From inside –ICs, Chipsets, Hard Disks, PCB cards, Drives,
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
1 C++ Plus Data Structures Nell Dale Chapter 1 Software Engineering Principles Modified from the Slides made by Sylvia Sorkin, Community College of Baltimore.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
Formal Methods.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
International Telecommunication Union © ITU-T Study Group 17 Integrated Application of SDL Amardeo Sarma NEC Europe Ltd.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
September 1999Compaq Computer CorporationSlide 1 of 16 Verification of cache-coherence protocols with TLA+ Homayoon Akhiani, Damien Doligez, Paul Harter,
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Computer Language
C++ Plus Data Structures
John D. McGregor Session 9 Testing Vocabulary
Software Design Methodology
Software Processes.
John D. McGregor Session 9 Testing Vocabulary
Project Management: Inspections and Reviews Formal Specifications
Department of Computer Science Abdul Wali Khan University Mardan
Software Reviews.
Presentation transcript:

Formal Methods: Industrial Use CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute March 21, 2003

2 Outline  Controversy over formal methods  Where are formal methods used?  4 Stories  IBM CICS project  Tektronix oscilloscope  LOTOS at Bell Labs  VFSM at Bell Labs

3 Controversy Over Formal Methods  DeMillo, Lipton and Perlis "Social Processes and Proofs of Theorems and Programs", CACM, May  Fetzer "Program Verification: The Very Idea," CACM, September  The "Gang of 10"

4 Where are Formal Methods Used?  Safety critical applications  Aviation  Railway transportation  MOD  Other high-integrity systems  Application generators  Hardware design

5 IBM CICS Project  Maintenance of Customer Information Control System (CICS)  Used Z to reverse engineer old code  Found more errors earlier in the lifecycle

6 Maintenance of CICS  Old (> 30 years)  Large (>500 KLOC)  Multiple languages (assembler and special dialect of PL/I)  Many users  Several configurations

7 Restructuring of CICS  Necessary first step before Z could be used  Independent of any method

8 Reverse Engineering  Z specifications derived from:  manuals  developers  code  About half of CICS described in Z (230 KLOC)  Modules added or rewritten later from Z specifications

9 IBM Development Process  Used standard IBM process, including:  design reviews  code inspections  testing  Used standard IBM programming languages, plus guarded command language  Required training of staff in Z

10 IBM Training  Used standard IBM courses, including:  discrete mathematics  software engineering workshop  Augmented with Z courses  4 days for writers  2 days for readers  1 day for managers

11 IBM Results  More time spent in design  Inspections required less preparation, but took longer to conduct  More problems found earlier in design  Fewer problems found in testing  Overall time was 9% less than average  Won Queen's Award for productivity

12 Cartoon of the Day

13 Tektronix  Exploratory project  Discovered useful abstractions  Concentrated on process of specification, not product

14 Tektronix Process  2 researchers (DeLisle and Garlan) investigated general problem area:  talked to engineers  tried to describe existing devices  Discussed trial specifications with engineers

15 Tektronix Results  Original descriptions were operational  Researchers found an abstraction (waveform) that clarified roles of hardware and software engineers  Resulting specification yielded insights about tradeoffs:  user interfaces  sampling methods  hw/sw partitioning

16 Tektronix Lessons  Industrial engineers can understand formal specifications  Abstraction was very valuable in focusing attention on right problem  Specification was a process, not a product

17 LOTOS at Bell Labs  Some formal methods used in switching applications  SDL  Promela  VFSM  Opportunity to try LOTOS in 1991  Language Of Temporal Ordering Sequences  New standard for telecommunication protocols

18 Primitive LOTOS Project  Basic LOTOS difficult to use  too much redundancy  too little redundancy  Primitive LOTOS (PLOTOS)  added declarations  more "C"-like

19 PLOTOS Results  Used on parts of several projects  Tools were popular  Solved the wrong problem  specification was a verb, not a noun  spaceship theory

20 PLOTOS Lessons  Software developers in Naperville are an oral culture  work via meetings  very little abstraction  Need to first move to literary paradigm  domain engineering to capture knowledge in writing  domain specific languages to develop formal notations

21 VFSM at Bell Labs  Manager convinced by a former teacher to try Virtual Finite State Machines (VFSM)  Constructed a compiler to C  Later adapted SPIN for model checking

22 VFSM Results  Used on several projects  Tools were popular  Solved the right problem  compiled to executable code  testing was the most onerous job of development

23 VFSM Lessons  Bottom-up development is more easily accepted than top-down  Free lunches are a powerful force  Revolutionary methods need crusaders

24 Summary  Formal methods provide substantial benefits, but at cost  May be most applicable in established domains  Adoption requires cultural change for many organizations