Cleanroom Method CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute March 20, 2003.

Slides:



Advertisements
Similar presentations
Cleanroom Software Engineering CIS 376 Bruce R. Maxim UM-Dearborn.
Advertisements

Cleanroom Software Engineering A unique approach to software development.
CLEANROOM SOFTWARE ENGINEERING
ISBN Chapter 3 Describing Syntax and Semantics.
Program Proving Notes Ellen L. Walker.
1/22 Programs : Semantics and Verification Charngki PSWLAB Programs: Semantics and Verification Mordechai Ben-Ari Mathematical Logic for Computer.
CS 355 – Programming Languages
Unit Testing CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 27, 2007.
The Experience Factory May 2004 Leonardo Vaccaro.
1 Problem Analysis CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 9, 2004.
November 2005J. B. Wordsworth: J5DAMQVT1 Design and Method Quality, Verification, and Testing.
Lecture 12 Reengineering Computer-aided Software Engineering Cleanroom Software Engineering.
Cleanroom Engineering and the B-Method: A Comparison Drew Connelly.
White Box Testing and Symbolic Execution Written by Michael Beder.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
White Box Testing and Symbolic Execution Written by Michael Beder.
MAE 552 – Heuristic Optimization Lecture 6 February 6, 2002.
Copyright © 2006 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
Software Testing and Quality Assurance
White Box Testing and Symbolic Execution Written by Michael Beder.
Simulation.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Formal Methods: Industrial Use CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute March 21, 2003.
1 CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Testing Metrics Software Reliability
Describing Syntax and Semantics
COMP 6710 Course NotesSlide 4-0 Auburn University Computer Science and Software Engineering Course Notes Set 4: Cleanroom Software Engineering Computer.
Andy Moyer. Cleanroom Software Engineering  What is it?  Goals  Properties of Cleanroom  Cleanroom Technologies  Case Studies  Critiques.
By: David Golke.  Introduction  Architecture Specification ◦ Requirements Analysis ◦ Function Specification ◦ Usage Specification ◦ Increment Planning.
Casey Ehlers April 28 th, Outline of Presentation 1. Background and History of Cleanroom 2. Who Uses Cleanroom Software Development? 3. Basics of.
Cleanroom Software Engineering Crystal Donald. Origins Developed by Dr. Harlan Mills in 1987 Developed by Dr. Harlan Mills in 1987 Name derived from hardware.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 14.
Software Integration and Documenting
CLEANROOM SOFTWARE ENGINEERING By Alan Spangler Presented By : Vamshi Krishna Merugu.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
CLEANROOM SOFTWARE ENGINEERING.
West Virginia University Towards Practical Software Reliability Assessment for IV&V Projects B. Cukic, E. Gunel, H. Singh, V. Cortellessa Department of.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Software Testing and Quality Assurance Software Quality Assurance 1.
Cleanroom Software Engineering Getting it right the first time.
Losing Weight (a) If we were to repeat the sampling procedure many times, on average, the sample proportion would be within 3 percentage points of the.
Chapter 5: Sequences, Mathematical Induction, and Recursion 5.5 Application: Correctness of Algorithms 1 [P]rogramming reliability – must be an activity.
The Cleanroom Approach to Quality Software Development
Chapter 3 Part II Describing Syntax and Semantics.
Semantics In Text: Chapter 3.
1 Chapter 26 Cleanroom Software Engineering Cleanroom Developed in early 80’s by Harlan Mills Reported very good results –reliable, high-quality.
Software testing techniques Software testing techniques Statistical Testing Presentation on the seminar Kaunas University of Technology.
Center for Reliability Engineering Integrating Software into PRA B. Li, M. Li, A. Sinha, Y. Wei, C. Smidts Presented by Bin Li Center for Reliability Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Engineering 2 -Prakash Shrestha.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
Lecture 6 inferential statistics  Research hypotheses  Statistical hypotheses  Acceptable risks  ‘Real world model’  Decision rules  Experiment report.
Static Techniques for V&V. Hierarchy of V&V techniques Static Analysis V&V Dynamic Techniques Model Checking Simulation Symbolic Execution Testing Informal.
Software Process Models The slides and the material of this chapter is adopted from: 1. “Software Engineering”, by I. Somerville, 7th Ed., “Software.
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
Functional Verification I Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture Notes 21.
Chapter 1 The Phases of Software Development. Software Development Phases ● Specification of the task ● Design of a solution ● Implementation of solution.
CS Class 04 Topics  Selection statement – IF  Expressions  More practice writing simple C++ programs Announcements  Read pages for next.
Fundamentals of Algorithms MCS - 2 Lecture # 3. Representation of Algorithms.
COMP 6710 Course NotesSlide 4-0 Auburn University Computer Science and Software Engineering Course Notes Set 4: Cleanroom Software Engineering Computer.
Software Engineering (CSI 321)
Cleanroom Software Engineering
Chapter 13 & 14 Software Testing Strategies and Techniques
Functional Verification I
Programming Languages 2nd edition Tucker and Noonan
Chapter 28 Formal Modeling and Verification
Functional Verification I
Cleanroom Software Engineering
Programming Languages 2nd edition Tucker and Noonan
Presentation transcript:

Cleanroom Method CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute March 20, 2003

2 Outline 1. Harlan Mills 2. Cleanroom method 3. Industrial use of cleanroom

3 Harlan Mills

4 Mathematics and Programming Roman accounting "to go from programming as an instinctive, intuitive process to a more systematic, constructive process"

5 Cleanroom Method Incremental (spiral) Box structure specification and design Design verification No debugging Statistical testing

6 Box Structures Black boxes: behavior only State Boxes: behavior + state Clear boxes: procedures

7 Black Boxes S 1 S 2...S n R stimulus history  response

8 State Boxes SR stimulus, old state  response, new state State Data

9 Clear Boxes SR stimulus, old state  response, new state State Data Procedures

10 Box Description Language (BDL) Invocation: use Sequence: do B 1 ; B 2 od Alternation: if then B 1 else B 2 fi Iteration: while do B od

11 Box Structure Hierarchy BB SB CB BBBBBB SBSBSB CBCBCB

12 Cartoon of the Day (1/3)

13 Cartoon of the Day (2/3)

14 Cartoon of the Day (3/3)

15 Design Verification Procedures in BDL are checked for correctness with their higher-level descriptions All boxes (and all procedures) describe functions Formal proofs of correctness can be performed (but often informal proofs are done, instead)

16 Verification of Sequence Given a high-level function [f] for statement: do [g]; [h] od Does [g] followed by [h] compute the same function as [f] ? Example: [f](x) = 2 * x + 7 [g](x) = 2 * x [h](x) = x + 7

17 Verification of Selection Given a high-level function [f] for statement: if then[g]else[h]fi 1. Whenever is true, does [g] compute the same function as [f] ? 2. Whenever is false, does [h] compute the same function as [f] ?

18 Verification of Iteration Given a high-level function [f] for statement: while do[g]od 1. Whenever is true, does [g] followed by [f] compute the same function as [f] ? 2. Does the loop always terminate? 3. Whenever is false, does the empty function compute the same function as [f] ?

19 Usage Testing Develop an operational profile of use Generate random tests that fit the probabilities

20 Example Function Usage Probability Distribution Interval Update32%0-31 Delete14%32-45 Query46%46-91 Print8%92-99

21 Test Generation Test Random NumbersTest Cases 129, 11, 47, 52, 26, 94 U, U, Q, Q, U, P 262, 98, 39, 78, 82, 65 Q, P, D, Q, Q, Q 383, 32, 58, 41, 36, 17 Q, D, Q, D, D, U 436, 49, 96, 82, 20, 77 D, Q, P, Q, U, Q

22 Industrial Use Used in a few areas of IBM Used by some military contractors Tried at NASA

23 Software Engineering Laboratory (SEL) Joint program of NASA Goddard Space Center, Computer Sciences Corporation, and the University of Maryland Conduct experiments and case studies on new software technology

24 SEL Experience First trial at University of Maryland controlled experiment (10 experiment teams, 5 control teams FORTRAN 1.5 KLOC 3 case studies at Goddard flight-dynamics ground support systems FORTRAN 40 KLOC, 22 KLOC, 160 KLOC

25 SEL Results – University Experiment Cleanroom teams use fewer computer resources satisfy requirements more successfully make higher percentage of scheduled deliveries

26 SEL Results – Goddard More effort spent in design Better reliability of final product Smaller projects achieve higher productivity, but large project just average

27 Summary Cleanroom may be an effective method for achieving higher reliability Requires some culture change (no debugging) Still being investigated by researchers and practitioners

28 References Victor Basili and Scott Green, "Software process evolution at the SEL", IEEE Software 11(4), 58-66, July 1994.