The Cleanroom Approach to Quality Software Development

Slides:



Advertisements
Similar presentations
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Advertisements

Chapter 4 Quality Assurance in Context
Software Process Models
Cleanroom Software Engineering CIS 376 Bruce R. Maxim UM-Dearborn.
Cleanroom Software Engineering A unique approach to software development.
CLEANROOM SOFTWARE ENGINEERING
Lecture 12 Reengineering Computer-aided Software Engineering Cleanroom Software Engineering.
Cleanroom Engineering and the B-Method: A Comparison Drew Connelly.
Chapter 9 Testing the System, part 2. Testing  Unit testing White (glass) box Code walkthroughs and inspections  Integration testing Bottom-up Top-down.
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 Testing and Quality Assurance
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Weekly lecture notes are posted at:
RIT Software Engineering
Illinois Institute of Technology
SE 450 Software Processes & Product Metrics 1 Defect Removal.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
COMP 6710 Course NotesSlide 4-0 Auburn University Computer Science and Software Engineering Course Notes Set 4: Cleanroom Software Engineering Computer.
1 Systems Validation & Verification, Quality and Standards (CSE4431) Dr Sita Ramakrishnan School CSSE Monash University.
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
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.
Software Integration and Documenting
CLEANROOM SOFTWARE ENGINEERING By Alan Spangler Presented By : Vamshi Krishna Merugu.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Chapter 2 The process Process, Methods, and Tools
CLEANROOM SOFTWARE ENGINEERING.
Improvements to Service Provisioning Platform Deployment Process Master’s Thesis – Matti Jylhä Supervisor: Professor Jorma Jormakka.
Unit 8 Syllabus Quality Management : Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing Testing types Testing strategy Testing principles.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
Software Testing and Quality Assurance Software Quality Assurance 1.
Cleanroom Software Engineering Getting it right the first time.
Software Reliability Research Pankaj Jalote Professor, CSE, IIT Kanpur, India.
Anton Krbaťa Ján Budáč  Verification: "Are we building the product right ?„  Validation: "Are we building the right product ?"
Verification and Validation Assuring that a software system meets a user's needs.
1 Chapter 26 Cleanroom Software Engineering Cleanroom Developed in early 80’s by Harlan Mills Reported very good results –reliable, high-quality.
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 Quality Assurance and Testing Fazal Rehman Shamil.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
References & User group Reference: Software Testing and Analysis Mauro Pezze Software Engineering Ian Sommerville Eight Edition (2007) User group:
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
COMP 6710 Course NotesSlide 4-0 Auburn University Computer Science and Software Engineering Course Notes Set 4: Cleanroom Software Engineering Computer.
CleanRoom Software Engineering
Software Development Overview
Software Defects Cmpe 550 Fall 2005
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Testing Testing process, Design of test cases.
Cleanroom Software Engineering
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Lecture 09:Software Testing
Software engineering -1
Progression of Test Categories
Software Process Models
Chapter 10 – Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Cleanroom Software Engineering
Software Development Overview
Presentation transcript:

The Cleanroom Approach to Quality Software Development (or ZeroDefict Software is really possible!) References: The Cleanroom Approach to Quality Software Development, Michael Dyer, Wiley 1992, IEEE Software paper by Linger in March 1994 issue

An analogy Compare sight typing with touch typing (In sight typing, the learner looks at the keys.) Touch typing takes longer to learn but results in increased productivity with higher quality of typing in the long run. Sight typing requires the operator to switch between the text and keys and mistakes and lapses are more common. Compare this to: The difference between Programming & Debugging and Specification & Refinement. The latter takes longer to learn but the payoff is increased productivity and quality.

Key features of Cleanroom Serious programming begins after formal specification, there is emphasis on more explicit design and verification from the specification. There is no programmer testing. The Cleanroom approach combines mathematical reasoning during specification and design refinement to code with statistical reasoning during test case generation and testing. The aim is to produce zero defect software (or minimal defect software).

Cleanroom Successes - proven in use since the 1980s The US 1980 Census System Controlled by 25kloc program which operated its entire 10 months in production with no failures observed. The IBM Wheelwriter Typewiter Systems (1984) A 65 kloc program with millions of users and no failure ever detected. The US Space Shuttle Software Over 500 kloc while not completely zero defect, has been zero defect in flight.

Improved Specification and testing Cleanroom is the first practical attempt to place software development under statistical quality control, and to deliver software with a known and certified meantime to failure (MTTF) The key practices are: to use formal specification and verification methods to create software of sufficient quality to forego programmer testing (ie unit test/debug) of code and to require statistical based testing for evaluating software reliability The pay off is that Cleanroom statistically based testing with random sampling driven from input probability distributions has been shown to be highly effective at finding errors with high failure rates. (It is better at finding the errors that occur most often.)

Cleanroom Process Flow (overview) Software requirements specification Incremental software delivery Software design and development Incremental statistical testing and regression testing Action Statistical Control Process Error Diagnosis and Correction Software reliability measurement Basis for FEEDBACK Basis for Level 5 Process Improvement Incremental approach based on independent specifications allows parallel development if required

The Cleanroom Process Model (in more detail) (stacked boxes indicate successive increments) Customer requirements Specification Functions Usage Incremental Development Planning Usage Specification Functional Specification Formal design correctness verification Statistical test-case generation Statistical testing Feedback of improvements Quality certification model MTTF Estimates

TABLE 1.1 Cleanroom Component Techniques Technology Cleanroom Focus Perspective Baseline Capability Defined process Starting point Design and inspection Early quality visibility Software Specification Software quality Focal point Formal description Software correctness Drive verification Usage/build data Customer acceptance Drive validation Software Verification Software quality Software quality In construction Error prevention Correct designs In inspection Confirmed correctness Zero defect No Developer Testing Software acceptance Software productivity Statistical Testing Customer acceptance Requirements validation MTTF Prediction Software reliability Certified MTTF Statistical Process Process improvement Software warranty

FIGURE 1.2 Roadmap for Introducing Cleanroom Component Techniques B A S E L I N P R O C Formal Specifications Correctness Verification S/w Configuration Management No developer testing Process Control Continuous inspection Statistical testing MTTF measurement

Table 1.3 Trends in Software Quality Trends in decreasing defect Rates based on improving development towards full use of Cleanroom methods Table 1.3 Trends in Software Quality Total Defect Rate Postdelivery Rate Traditional Development 50 to 60 5 to 10 Unstructured design Only testing for detection Baseline Development 20 to 40 1 to 4 Structured programming Formal inspections Advanced Development 0 to 20 0 to 1 Correctness verification Formal specification Statistical testing [IBM results cited in Dyer.]

Finally more recently reported results from mid90s IBM Cobol/SF Size: 85 Kloc of PL/l Testing Error Rate: 3.4 errors per kloc Productivity Rate: 740 Loc/person month NASA satellite-control project Size: 40 kloc of FORTRAN Testing Error Rate: 4.5 errors per kloc Productivity Rate: 780 loc/person month IBM 3090E tape drive Size: 86 kloc of C Testing Error Rate: 1.2 errors/kloc* (N.B. comparison with Unit Testing) Erisesson Telecom 0532 Operation System Size: 350 kloc Testing Error Rate: 1.0 error/kloc [in Linger 94] (sample)

Summary of Cleanroom Impacts on the SLC 1. Requirements Specification Function and Performance but with Usage Probabilities and Build Strategy 2. Software Design/Implementation Incremental Software Development but with Correctness verification not Unit Test 3. Independent Software Test Integration and Test of Released Increments but with Representative Statistical Usage Samples 4. Software Acceptance Demonstrated Function and Performance but with Certified Software MTTF