Andy Moyer. Cleanroom Software Engineering  What is it?  Goals  Properties of Cleanroom  Cleanroom Technologies  Case Studies  Critiques.

Slides:



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

Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Cleanroom Software Engineering By Derek B. Larson.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Chapter 4 Quality Assurance in Context
Copyright © Texas Education Agency, Computer Programming Software Life Cycle.
Cleanroom Software Engineering CIS 376 Bruce R. Maxim UM-Dearborn.
Cleanroom Software Engineering A unique approach to software development.
CLEANROOM SOFTWARE ENGINEERING
Software Requirements 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
Cleanroom Method CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute March 20, 2003.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Presented by: Hatem Halaoui
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
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.
Special Software Development Paradigms Today: HW #5 Next Class: Pressman 17; Demos? Questions? / Team Status Reports / HW#4 Object-Oriented Paradigm Bio.
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.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
OHT 2.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
Software Integration and Documenting
CLEANROOM SOFTWARE ENGINEERING By Alan Spangler Presented By : Vamshi Krishna Merugu.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
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.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Chapter 2 The process Process, Methods, and Tools
CLEANROOM SOFTWARE ENGINEERING.
RUP Implementation and Testing
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Instructor: Peter Clarke
1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance.
©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.
ECSE Software Engineering HO 13 © HY 2010 Lecture 13 High Quality Software For the purpose of this lecture we define high quality software.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
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
Anton Krbaťa Ján Budáč  Verification: "Are we building the product right ?„  Validation: "Are we building the right product ?"
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.
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.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
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.
Chapter 2 Principles of Programming and Software Engineering.
Use Case, Component and Deployment Diagrams University of Sunderland.
©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.
Principles of Programming & Software Engineering
Computer Programming Software Life Cycle.
Cleanroom Software Engineering
Software Processes (a)
Lecture 09:Software Testing
Chapter 28 Formal Modeling and Verification
Presentation transcript:

Andy Moyer

Cleanroom Software Engineering  What is it?  Goals  Properties of Cleanroom  Cleanroom Technologies  Case Studies  Critiques

Cleanroom Software Engineering: What is it?  Set of principles and practices for the specification, development, and certification of software-intensive systems.  Based on the work of Harlan D. Mills who was an employee of IBM in early 1980s. Influenced by Dijkstras structured programming, Nicholas Wirth on stepwise refinement, and David Parnas on modular design  Methods based on two principles: Programs are rules for mathematical functions Software testing is sampling

Where the Idea Came From  The cleanroom model follows the ideas of manufacturing semiconductors in a “cleanroom” environment.

Goals of the Cleanroom Process  Main goal: Achieve or approach zero defects  Other goals: Prevent defects Create correct, verifiable software Incremental development

Properties of Cleanroom  Spend a lot of time and money "up-front" preventing defects  Use statistical methods to ensure quality  Formally state and “prove” requirement needs  Specification, development, and certification may be done by separate teams depending on the size of the project

Cleanroom Technologies 1. Incremental development under Statistical Process Control 2. Function-Based Specification, Design, and Verification 3. Correctness Verification 4. Statistical Testing and Software Verification

Incremental Development Under Statistical Process Control  Used to reduce the risk associated with managing large systems by focusing on smaller, manageable subsystems of increments.  Each increment is developed and tested separate from the whole system before integrating into the whole system.  As increments are added, the whole system is tested.  Some amount of end-user function used to obtain customer confirmation or clarification

Incremental Development Under Statistical Process Control  Increment should have these properties: Externally executable Contain all functionality of prior increments  Benefits: Specification, design, and certification activities may be performed often Timely feedback can be obtained from customer Intellectual control over a system

Cleanroom Technologies 1. Incremental development under Statistical Process Control 2. Function-Based Specification, Design, and Verification 3. Correctness verification 4. Statistical Testing and Software Verification

Function-Based Specification, Design, and Verification  Objectives: Expand the specification into implementation via small steps Maintain intellectual control by designing data and control structures at appropriate levels of abstraction  The Three Boxes: Black Box State Box Clear Box

Function-Based Specification, Design, and Verification  The Box Structures Begins with an external view – Black Box Transformed into a state machine – State Box Fully developed into a procedure – Clear Box

The Black Box  A view of an object that hides data implementation and process implementation. It describes how a system responds to stimuli, usually in a formal specification language.  No internal state is looked at  Our good friend – Z (Zed)

The State Box  A view of an object that shows data implementation but hides process implementation. It describes how "state" information is transformed.  Derived from the black box – first step to implementation  This is represented as a finite state machine

The Clear Box  A view of an object that shows both data implementation and process implementation. The goal is to stepwise refine procedures and to prove them correct.  Derived from the state box  May introduce new black boxes defining major operations  Creates the required responses (outputs) to stimuli (inputs)

Stepwise Refinement of Specifications to Code  Steps: 1. Expand clear box into lower level designs 2. Verify the correctness of the expanded designs 3. Expand low level designs into code

Cleanroom Technologies 1. Incremental development under Statistical Process Control 2. Function-Based Specification, Design, and Verification 3. Correctness verification 4. Statistical Testing and Software Verification

Correctness Verification  The primary debugging process for Cleanroom  Each box structure subject to correctness verification  Objectives: Determine that the box structures correctly implements design Remove any errors that were introduced during development Completely review the code for completeness, consistency, and correctness

Correctness Verification  So what is verified? If the box structure behaves as defined Correctness of each refinement Response mapping defined in one step is preserved

Cleanroom Technologies 1. Incremental development process model 2. Stepwise refinement of specifications to code 3. Correctness verification of developed code 4. Statistical Testing and Software Verification

Statistical Testing and Software Verification  Each increment of compilable functionality is statistically tested to: Ensure that it meets the quality standards defined by the development organization Certify a level of reliability that the product will deliver in the field Provide feedback for quality control and process improvement

Statistical Testing and Software Verification  Steps taken: 1. Plan the test ○ Stratification plan which describes each layer to be developed ○ The sampling plan ○ A description of which physical testing resources are to be devoted to each increment and each stratum 2. Develop usage models required by the test plan 3. Develop and validate the usage distribution

Example Usage Model

NASA Case Study  In March of 1990 NASA preformed a case study of SEL Cleanroom versus their typical process  Each group applied the process to the same project – a Coarse/Fine Attitude Determination Subsystem of the Upper Atmosphere Research Satellite.  Completed system contained about 34,000 Source Lines of Code (SLOC) of primarily FORTRAN

NASA Case Study-SEL Cleanroom Lifecycle

NASA Case Study-Experience Comparison

NASA Case Study  Testers and developers are on completely separate teams  Developers have no access to the mainframe computer for compilation and testing  Developers rely on code reading instead of unit testing to verify correctness  Testers use a statistical testing approach

NASA Case Study - Results

 Failure Rate: Standard SEL process – 6 errors/KSLOC Cleanroom SEL procees – 3.3 errors/KSLOC  The inexperience of the cleanroom team had no effect on the outcome  Impact of unstable requirements lessened by concentrated effort in team reviews

DoD Case Study  The STARS program is a US Department of Defense (DoD) reasearch and development program  Emphasizes: Process driven Re-use based Integrated software engineering environment

DoD Case Study  Typical Process Productivity measured at 121 loc/person month Failure rate: 23~27 failures/KLOC  Cleanroom Process Productivity measured at 559 loc/person month Failure rate: 1 failure/KLOC

DoD Case Study  Important benefits: Improved Productivity Improved quality High staff morale

Critiques  In 1997, Beizer argued the elimination of unit testing is contradicting “known testing theory and common sense”  Also, is it possible to find bugs without compiling/running code?

References  1. Cleanroom Software Engineering. Retrieved from University of Texas at Arlington website: r/clean/page1.html 2. DACS, The Data and Analysis Center for Software. Retrieved January 5, 2009 Found at: keycode=64 r/clean/page1.htmlwww.dacs.dtic.mil/databases/url/key.php? keycode=64

References  3. Green, Scott et al. (1990). "The Cleanroom Case Study in the Software Engineering Laboratory: Project Description and Early Analysis". NASA. Retrieved from nasa.gov/ _ pdf 4. Prowell, Stacy et al. (1993). "Cleanroom Software Engineering: Technology and Process". Reading, MA: Addison Wesley Longman, Inc. nasa.gov/ _ pdf