Casey Ehlers April 28 th, 2011. Outline of Presentation 1. Background and History of Cleanroom 2. Who Uses Cleanroom Software Development? 3. Basics of.

Slides:



Advertisements
Similar presentations
Test Design and Documentation. Test Design Test design is to ensure that all requirements are met through a series of test procedures, increasing the.
Advertisements

Testing and Quality Assurance
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
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.
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.
Cleanroom Method CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute March 20, 2003.
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.
Verification and Validation
1 Security Architecture and Analysis Software Inspections and Verification Software Testing and Certification.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
COMP 6710 Course NotesSlide 4-0 Auburn University Computer Science and Software Engineering Course Notes Set 4: Cleanroom Software Engineering Computer.
Special Software Development Paradigms Today: HW #5 Next Class: Pressman 17; Demos? Questions? / Team Status Reports / HW#4 Object-Oriented Paradigm Bio.
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.
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.
1 Software Inspections and Walkthroughs Author: A. Frank Ackerman Presented by Cynthia Johnson EEL6883.
Software Integration and Documenting
CLEANROOM SOFTWARE ENGINEERING By Alan Spangler Presented By : Vamshi Krishna Merugu.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Extreme Programming Software Development Written by Sanjay Kumar.
Software Inspections and Walkthroughs By. Adnan khan.
CLEANROOM SOFTWARE ENGINEERING.
Software Testing.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Chapter 101 The Design Process Chapter 10 Achieving Quality Through Continual Improvement Claude W. Burrill / Johannes Ledolter Published by John Wiley.
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
SoftwareVerification and Validation
©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.
The Cleanroom Approach to Quality Software Development
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Bzupages.com Verification and Validation.
1 Chapter 26 Cleanroom Software Engineering Cleanroom Developed in early 80’s by Harlan Mills Reported very good results –reliable, high-quality.
Software Engineering, 8th edition Chapter 22 1 Courtesy: ©Ian Somerville 2006 April 27 th, 2009 Lecture # 19 Verification and Validation.
Formal Methods.
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.
Formal Methods in SE Software Verification Using Formal Methods By: Qaisar Javaid, Assistant Professor Formal Methods1.
Software Engineering 2 -Prakash Shrestha.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Static Techniques for V&V. Hierarchy of V&V techniques Static Analysis V&V Dynamic Techniques Model Checking Simulation Symbolic Execution Testing Informal.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Testing 1. Aims To understand the purpose of testing To understand the different test strategies To explore the four types of test data Have a understanding.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 22 Slide 1 Verification and Validation.
COMP 6710 Course NotesSlide 4-0 Auburn University Computer Science and Software Engineering Course Notes Set 4: Cleanroom Software Engineering Computer.
CleanRoom Software Engineering
Regression Testing with its types
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Testing Tutorial 7.
Cleanroom Software Engineering
Chapter 13 & 14 Software Testing Strategies and Techniques
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Chapter 28 Formal Modeling and Verification
Chapter 10 – Software Testing
Cleanroom Software Engineering
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Casey Ehlers April 28 th, 2011

Outline of Presentation 1. Background and History of Cleanroom 2. Who Uses Cleanroom Software Development? 3. Basics of Cleanroom Software Process 4. Analysis of the Cleanroom Process

What is a Cleanroom?

Cleanroom Nearly pollutant free environment used for scientific research and manufacturing. Some statistics on air pollutants: Pollutants (.5 micrometers or larger) in environment: 35,000,000 particles per cubic meter (urban) Pollutants (.5 micrometers or larger) in Cleanroom: 0 particles per cubic meter Pollutants (.3 micrometers or smaller) in Cleanroom: No more than 12 particles per cubic meter

What is the goal of Cleanrooms? Prevention! Errors and defects are not allowed into the system during it’s initial design and construction

Dr. Harland Mills IBM – mid ’80’s Took the goals of a hardware Cleanroom and applied them to the software design process. Mills wanted to prevent the entry of errors into software instead of just detecting them after they are designed. Published a paper in 87 on his new methodology and called it “Cleanroom Software Engineering”

Who Uses Cleanroom S.E.? Mission and Life-Critical Systems NASA and the Military are a few of the organizations who have reported using the Cleanroom process. Companies who are willing to trade-off efficiency for certifiable reliability. I will re-examine this comment later. Limited use otherwise. Too rigorous in a lot of cases.

Cleanroom In A Nutshell Cleanroom is an adaptation of the Incremental model. Increments are defined using formal methods which can be checked for correctness. Correctness Verification: Does the system do what it is designed to do? How the increment is designed and verified is what makes Cleanroom different from normal

Incremental Software Development

Cleanroom Software Development

Defining Increments Formal methods are used to rigorously define what the increment are suppose to do. From there, it is easy to verify that the specifications meet the designed result. Additional tests can be ran on the increments to produce “statistical quality control.” The results can be shown to the customer for approval or reworking.

Box Structure Programs regarded as rules or mathematical functions Maps specify how transformations take place from inputs to outputs Allows for easy verification. Scalable You can have a box structure for a whole software system, a specific class, or even a specific function or statement 3 Generally used box structures for Cleanroom

Box Structure - Black Input, and history needed to for transition to occur. Transition function: ((current stimulus, current history)  response ) Example of Black Box: Calculator Function Identical input could yield different responses based on current history of the system.

Box Structure - State History and current state of system needed to be transitioned into a response and a new state. Transition Function: ((current stimulus, current state)  (response, new state))

Box Structure - Clear Derived from State Box Same transition function, but each transition is specified by a procedure. Transition Function: ((current stimulus, current state)  (response, new state)) by procedure

Box Structure Applied to OO Assume any Object-Oriented system Decomposition strategy of Box Structures when designing increments: Black Box- specifies behavior of an object State Box – specifies data encapsulation Clear Box – procedures and methods

Design Example Page 66 of Dyer A program that determines the type of triangle based on inputs 3 inputs 4 outcomes: equilateral, scalene, isosceles, not a triangle Box terminology not used, but design is close to a clear- box

Correctness Verification Basic Steps to Software Verification: 1. Specify the function (or increment) 2. Select the design construct (pseudo-code) 3. Use a correctness proof to show equivalence 4. Decide next step based on results: Rework/Reiterate the increment Proceed to next function or increment

Correctness Proof What questions do we ask to proof that a function is correct? Step through the increment and prove correctness of each construct (if, for, while, etc) Page 88, Dyer How can we verify the correctness of the triangle solver? Page 93-95, Dyer

Testing an Increment Results of correctness proofs offer statistical certainty that the system is doing what it was designed to do. Results can be show percent correct and percent covered. These results are really easy to report to a customer for feedback Page 137, Dyer

Additional Usage Testing Path-Based Testing Structured Path Testing limits unnecessary based by used a specified set of inputs. Boundary and loop Testing Linear Code Sequence/Jump Testing Similar to using a debugger. Statements are broken down into sequences which then can be stepped through and tested for defects.

Evaluation of Cleanroom Rigorous! Look at the example of the triangle solver. Imagine using this process one your senior project… Effective Statistically proven to increase software reliability

“Pro’s” of Cleanroom Reliability Current reports claim that Cleanroom increases quality of software around times. Greater Quality  Higher profit margins Happier users One study reports: 90 percent of defects were found BEFORE testing phase of incremental development (1,000 – 50,000 L.o.C. systems)

“Pro’s” continued… Efficiency??? How can a process that is so intense and rigorous yield better efficiency? Less ambiguity on design Less time spent testing and re-engineering We know that testing is one of the most time consuming and expensive parts of software development. With fewer defects entering the testing phase, less time is spent in this phase. NASA reported a 4.6 productivity increase

“Con’s” of Cleanroom Unnecessary a lot of the times. Traditional methods of software develop are a lot of the times sufficient or more logical. Training Everyone of the development team needs to be formally trained in the Cleanroom method. What if the design is wrong? Cleanroom seems to imply that the formal and usage specifications are designed correctly…

Summary Cleanroom: Rigorous and thorough modification of the incremental software process. Offers certifiable reliable software with minimum defects Requires training and unnecessary in the majority of design scenarios

Resources [1] Michael Dyer. (1992) The Cleanroom Approach To Quality Software Development New York, NY: John Wiley & sons [2] Richard C. Linger and Carmen J. Trimmell (1996) Cleanroom Software Engineering Reference ModelVersion 1.0 Pittsburgh, PN [3] Roger S. Pressmen (1992) Software Engineering: A Practitioner’s Approach (3 rd Edition) New York, NY: McGraw-Hill Inc [4] Shawn P. Garbett (2003) Cleanroom Software Engineering Retrieved from [5] Chaelynne M. Wolak (2001) Taking the Art out of Software Development: An In Depth Review of Cleanroom Software Engineering Retrieved From