Cleanroom Software Engineering By Derek B. Larson.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Chapter 4 Quality Assurance in Context
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
1 Software Engineering Lecture 11 Software Testing.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
CLEANROOM SOFTWARE ENGINEERING
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Lecture 12 Reengineering Computer-aided Software Engineering Cleanroom Software 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 Testing and Quality Assurance
Cleanroom Method CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute March 20, 2003.
Illinois Institute of Technology
SYSTEMS DEVELOPMENT Phases, Tools, and Techniques
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Testing and Quality Assurance: Introduction and Terminology
Testing an individual module
Andy Moyer. Cleanroom Software Engineering  What is it?  Goals  Properties of Cleanroom  Cleanroom Technologies  Case Studies  Critiques.
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
Introduction to High-Level Language Programming
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
Extreme Programming Software Development Written by Sanjay Kumar.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
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.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Understand Application Lifecycle Management
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Process Models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Testing and Quality Assurance Software Quality Assurance 1.
Cleanroom Software Engineering Getting it right the first time.
The Cleanroom Approach to Quality Software Development
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
1 Chapter 26 Cleanroom Software Engineering Cleanroom Developed in early 80’s by Harlan Mills Reported very good results –reliable, high-quality.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
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.
Oktalia Juwita, S.Kom., M.MT. SYSTEMS DEVELOPMENT Dasar-dasar Sistem Informasi – IKU1102.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Dynamic Testing.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Testing Integral part of the software development process.
Software Testing.
Software Testing.
School of Business Administration
Software Processes (a)
Software life cycle models
Chapter 28 Formal Modeling and Verification
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
Chapter 4: Software Process Models
Presentation transcript:

Cleanroom Software Engineering By Derek B. Larson

Cleanroom Software Engineering ► What is Cleanroom Software Engineering? ► Cleanroom Process ► Waterfall Model into a Cleanroom ► Case Studies

Introduction ► Developed IBM ► ► The stated goal of Cleanroom is software that exhibit a zero defect rate.   mathematical and statistical methods ► ► IBM developed a device controller product using Cleanroom Software Engineering that had zero failures in three years used at 300+ locations. [1]

Intro Cont. Hardware cleanrooms keep problems out by keeping potential contaminating factors from reaching the product.

Why Cleanroom SE ► ► The reason to use Cleanroom Software Engineering is simple: quality ► ► Quality improvements of 10 to 20 times have been reported when the Cleanroom process was demonstrated in industry ► ► If defects can cause loss of life or critical financial loss ► ► Increases in productivity

Why Cont. ► ► Increases in productivity?   Cleanroom is a uniquely defined process that decreases required testing, error correction, and maintenance.   These savings offset any additional overhead needed for the quality control   “Errorless Software Development”. If no errors enter development, no errors need to be tested or debugged. Elimination of testing and debugging means faster product development.

Reqs for Cleanroom SE ► Most spend a lot of time and money at the start of the project for preventing defects. ► Most use statistical methods to ensure quality. ► Most formally state and “prove” requirement needs. (YEAH ‘Z’) [2]

Cleanroom Functions ► ► Cleanroom uses three types of functions ► ► All code that is developed will follow the basic structure of these functions. ► ► Because the functions are sound, the code will likewise be sound. ► ► These functions are called “Boxes” [1]

The Three Boxes ► Black Box ► State Box ► Clear Box

Black Box ► Black box is a view of an object that hides the implementation process and data. ► ► By modeling code as a series of black boxes, we can ensure its quality verses our specification by ensuring that the actual black box performs according to the black box definition. [1]

Black Box Cont. ► It will describe how that system will respond to stimuli; this is done usually in a formal specification language.  Z (Zed) Picture from

State Box ► State box is where the view of an object shows the data implementation, but does not show the implementation process ► It describes how state information is being transformed ► ► In essence, the “history” of the black box is replaced by an existing “state”. [1]

State Box Cont. ► ► This is an abstraction of the history that allows us to take a higher-level view of the system ► ► Must ensure that there is no “history” case that is unaccounted for. [1]

Clear Box ► Clear box shows both the data and process implementation ► The goal is to stepwise refine functions and prove them as being correct. ► ► Clear boxes show what is actually necessary to go between the old state and the new state. [1]

Clear Box Cont. ► ► Sometimes there are multiple paths or multiple states that can result from a state box – the clear box lets us examine and design these transitions with flow control. ► ► In the clear box, the procedures required to implement the state box transition function are defined explicitly. [1]

Cleanroom Approach ► Requirements Analysis  Producing and reviewing “informal specifications.” ► High-level Design  Converting the requirements into state machines and functions ► Detailed Design  Further refinement of functions [3]

Cleanroom Approach Cont. ► Coding by increment  Developing code and verifying it using formal methods.  Compiling code or unit testing is prohibited ► Pretest by increment  Generation of test cases ► Statistical Testing by Increment  The code is compiled, linked, and tested. Then the results are validated. [3]

Cleanroom Approach Cont. ► Cleanroom Software Engineering prohibits unit testing ► In a Cleanroom development, correctness verification replaces unit testing and debugging ► After coding is complete, the software immediately enters system test with no debugging. [3]

Cleanroom Approach Cont. ► All test errors are accounted for from the first execution of the program with no private testing allowed ► The role of system testing in the Cleanroom process is to certify the quality of the software with the systems specifications in mind. ► Not doing unit testing can only be done if the above requirements are followed, that way many of the defects are already found and fixed, so when the system is done coding it should be close to no defects. [3]

Correctness Verification ► Once a piece of code is developed it goes through the Correctness Verification process. ► ► correctness verification phase takes the developed code and compares it against the specification to see if it really does what is outlined in the specification. ► ► The specifications define the conditions that code must meet in order to fulfill the function for which it was developed. [1]

Correctness Verification Cont. ► ► Correctness verification uses function- theoretic static code analysis to do just that. ► ► The term ‘function theoretic’ implies that there is a one-to-one mapping between the code and the specifications.

Correctness Verification Example function isNumeric(char c) { if ((c >= ‘0’) and (c <= ‘9’)) return true; else return false; }

Example Explanation ► ► If the character passed in is in the set [0,1,2,3,4,5,6,7,8,9] we expect the function to return true. ► ► Based on what we know about character sets and the language used to develop the code if the character is in the set then the logic ((c >= ‘0’) and (c <= ‘9’)) will return true. ► ► When the character is not in the set then the logic will return false. ► ► Both cases result in the expected behavior for the entire method, and so the code passes the correctness verification. [1]

Statistical Usage Testing ► ► In conjunction with the box structure specifications in the pre-development phase, usage specifications are created for the statistical testing phase. ► ► Usage specifications are simply descriptions of how the system will be eventually used. ► ► Usage models need to be defined for all possible scenarios for a given piece of code along with the probabilities of each scenario occurring. [1]

Statistical Usage Testing Cont. ► ► Use Markov Chains ► ► Markov chains are essentially directed graphs with nodes as states of use and arcs as the stimuli that cause state transitions. ► ► This is the most efficient way to test software, since the most destructive problems will be eliminated first, and money will not be spent on potentially harmless problems if it is not available. [1]

Waterfall Model into a Cleanroom ► Waterfall model…we all know what that is ► We want to take the Cleanroom model and add some milestones to the model.

Waterfall Model into a Cleanroom Milestones Waterfall Model into a Cleanroom Milestones ► Software Specification Review ► Software Specification Review  (Historical) Addresses requirements and external interfaces  (Cleanroom) Remains the same with increment plan-mapping requirements to increment. ► Preliminary Design Review  (H) Top-level architecture  (Cr) Top-level architecture updated as needed in later increments

Waterfall Model into a Cleanroom Milestones Cont. ► Critical Design Review  (H) Detailed Design  (Cr) Detailed Design of functionality for particular increment ► Qualification Test  (H) Verify requirements  (Cr) Verify requirements. Performed on final increment. Earlier increments have informal QT

Case Studies ► STARS ► Tank-automotive and Armaments Command

STARS ► Developed by the Department of Defense ► STARS receives radar data and flight plan information and presents the information to air traffic controllers on high resolution, 20" x 20" color displays allowing the controller to monitor, control, and accept hand-off of air traffic ► STARS receives radar data and flight plan information and presents the information to air traffic controllers on high resolution, 20" x 20" color displays allowing the controller to monitor, control, and accept hand-off of air traffic [4]

STARS Cont. STARS is capable of tracking up to 1350 airborne aircraft simultaneously within a terminal area. The system interfaces with multiple radars (up to 16 short and long range), 128 controller positions, 20 remote towers, and a 400 by 400 mile area of coverage. [4]

STARS Cont. ► The “STARS” program emphasized on three main points  Process-driven  Re-use based  Integrated software engineering environment ► STARS evaluated current "traditional" processes. Then determined that a quality management philosophy (putting decision making in the hands of workers, focusing on processes, quantitative measurements) is critical and that Cleanroom Software Engineering follows this philosophy ► STARS evaluated current "traditional" processes. Then determined that a quality management philosophy (putting decision making in the hands of workers, focusing on processes, quantitative measurements) is critical and that Cleanroom Software Engineering follows this philosophy [4]

STARS Cont. ► Cleanroom was combined with the TRW (spiral) Ada Process Model ► Produced software at a rate of $30-40 per line of code versus industry averages of $130 per line for software of similar complexity and development timeframe (the size of the application is greater than 300 KLOC) ► Produced software at a rate of $30-40 per line of code versus industry averages of $130 per line for software of similar complexity and development timeframe (the size of the application is greater than 300 KLOC) [4]

STARS Savings ► $130 - $30 = $100 per line of code ► The project is around 300K lines of code ► So, $100 * (around)300K = (around) $30,000,000 ► Could buy 30, million dollar houses ► Or about one month of Alex Rodriguez playing baseball [4]

Tank-automotive and Armaments Command ► TACOM generates, provides, and sustains mobility, lethality, and survivability for soldiers, other U.S. Armed Services, and our allies - all to ensure Army readiness today, tomorrow, and beyond

Tank-automotive and Armaments Command Cont. ► After seven project increments (approximately 90K lines of code) ► 4.2:1 productivity increase ► 20:1 return on investment has been documented ► Projects experienced an overall testing error rate (represents all errors found in all testing) of 0.5 errors/KLOC ► Projects experienced an overall testing error rate (represents all errors found in all testing) of 0.5 errors/KLOC [4]

Summary ► ► Cleanroom software development may be a wonderful advance in the process of software development or may just be a downright weird approach, most likely a little of both. ► ► Looking at Cleanroom from a theorists’ point of view Cleanroom provides a theoretical foundation to software development in its use of mathematically based software development and statistical quality control.

Summary ► ► By not introducing errors into the development phase there should be no testing requirement in the process. ► ► Statistical testing provides the benchmark as to performance and failure rate and helps verify the inputs to the development process by checking its outputs.

On the other Hand ► ► Many people sees Cleanroom as too radical a departure from conventional software development. ► ► The level of experience and training required to have a functional team of Cleanroom developers may not cost effective ► ► Developers develop code, and Cleanroom is more about specifications and statistical models than coding.

In the End ► ► One has to understand the appropriate use of Cleanroom software development ► ► Cleanroom is suitable for very particular types of software where the human and financial risks of having errors are too great to be left to chance ► ► This generally does not fit the mold of mainstream software development, in which the concentration is often on getting the best price in the best time period. ► ► From what has been shown, Cleanroom is anything but a mainstream development process.

References Cleanroom Software Engineering. p/SENG623W03_Cleanroom.pdf p/SENG623W03_Cleanroom.pdf Uta.edu, Cleanroom Software Engineering. Found at: ml ml DACS, The Data and Analysis Center for Software. Found at: Carnegie Mellon, Software Engineering Institute. Found at: