Cleanroom Software Engineering A unique approach to software development.

Slides:



Advertisements
Similar presentations
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Advertisements

Lecture # 2 : Process Models
CSE 470 : Software Engineering The Software Process.
Chapter 4 Quality Assurance in Context
Cleanroom Software Engineering CIS 376 Bruce R. Maxim UM-Dearborn.
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
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
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.
Introduction to Software Testing
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.
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.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
CLEANROOM SOFTWARE ENGINEERING.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
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.
Formal Methods in Software Engineering
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Software Testing and Quality Assurance Software Quality Assurance 1.
The Cleanroom Approach to Quality Software Development
Building Simulation Model In this lecture, we are interested in whether a simulation model is accurate representation of the real system. We are interested.
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.
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.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Certification and Adoption Workgroup HIT Policy Committee April 28, 2014 Discussion on Incremental Rulemakings.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
 System Requirement Specification and System Planning.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
MANAGEMENT INFORMATION SYSTEM
COMP 6710 Course NotesSlide 4-0 Auburn University Computer Science and Software Engineering Course Notes Set 4: Cleanroom Software Engineering Computer.
Software Development Life Cycle Waterfall Model
Group mambers: Maira Naseer (BCS ).
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Engineering (CSI 321)
Cleanroom Software Engineering
Software Processes (a)
Object oriented system development life cycle
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Introduction to Software Testing
Chapter 2 – Software Processes
Software life cycle models
Chapter 28 Formal Modeling and Verification
Chapter 10 – Software Testing
Baisc Of Software Testing
CS310 Software Engineering Lecturer Dr.Doaa Sami
Cleanroom Software Engineering
Presentation transcript:

Cleanroom Software Engineering A unique approach to software development

Harlan D. Mills Theory developed thru 1970’s to mid 80’s by mathematician and IBM employee Harlan Mills and colleagues. First seen use in the mid 80’s being selected for the ARPA STARS program Military demonstrations of the theory began in the early 1990’s. In 1990 IBM developed a Cleanroom Software Technology Centre In 1995 a Operations research model was developed for use with Usage model In 1996 an Enumeration theory was developed and the Cleanroom software methodology was mapped to CMM (Capability Maturity Model)

Manufacturing Named after a manufacturing process used commonly for semiconductor production Manufacturers work in a nearly ideal environment with limited or controlled amounts of pollutants Prevents the introduction of defects instead of fixing them later Software Development Cleanroom methodology follows same principles as manufacturing Developers work in a nearly ideal error free environment Tries to limit the errors in software during the design and implementation stages instead of debugging later

What is it? – Cleanroom software engineering (SE) is a process that focuses on mathematical verification of design and specifications before production, and then software certification during testing to provide near zero defects in its product. Who does it? – Cleanroom SE is a unique development process and can only be performed by a highly trained software engineering Why is it Important? – Errors and debugging in software engineering take time and money. With the Cleanroom approach these factors are removed or limited for efficient development. What are the steps? – The Cleanroom process has a standard reference model that must be followed for maximum results this model will be discussed in the upcoming section.

Cleanroom uses a specialized version of the incremental process applying pipelining techniques Each increment is eventually added together to create the entire system Follows a 7 step process for each increment assuring that each component is certified reliable before moving on to the next component

Development begins with an overall product specification developed through standard system engineering processes Project is adopted to an incremental strategy and each increment (functional component) is defined and planned from beginning to end Detailed description of customer level requirements is descried for each functional increment Gathering of requirements may lead to a simplified customer concept, or determining requirements that the customer may not have initially addressed.

Once requirements have been established, the function and behavior of each increment must be defined. Cleanroom SE uses a box structure specification to define the product. The refining process begins as a general component overview (black box), refined to transitional state behavior (state box), and then finally to a functional description (clear box). At the end of the process the development team should be left with a design resembling structured programming of their language of choice.

The Black Box The black box represents an incremental component as a whole, and sits at the top of a hierarchy of software components The black box reacts to stimuli and uses transition mapping rules to determine a response The black box approach is further refined to include its state behavior and data in a state box.

The State Box The state box can be seen as a generalized state machine including state data and operations and incorporating the black box The state box reacts to stimuli which causes a state transition and results in a response. State specific data (T) are also retained. State boxes are crucial for showing the behavior of a system, and how it reacts and transitions due to user inputs

The Clear Box The clear box breaks down the sub functions of the black box into procedural like descriptions that resemble structured programming It shows the component in high detail down to the logical constructs of the programming code Sub functions may be composed of other black boxes that have to be refined down to its own clear box. At this stage, these specifications are able to be mathematically proven to be correct

Once box the structure specification is complete Cleanroom designing takes place Cleanroom uses the structured programming philosophy to design its functions. Functions in clear box spec. are systematically refined from mathematical functions to logical connectives that resemble a programming language. Developers use the concepts of data encapsulation, information hiding and data typing to design the data of the product. At this stage much of the design is able to implemented in the selected programming language of choice.

The formal design approach of the software's functions allow them to be mathematically verified for correctness using mathematical proofs Each refinement of the design must be mathematically proven to be correct using general correctness conditions depending on the situation The use of structured programming concepts allow for a function to be proven to be correct fairly easily compared to the unit testing approach 1.A single condition is required for sequences to be verified 2.2 conditions required for if-else statements 3.3 conditions for loop statements Once all sub functions of a component are verified to be correct, coding implementation can begin.

Once design verification has been complete, the structured programming design method can easily be translated into the correct programming language Similar to the design this code is also put through correctness verification This process results in every line of code in the software to be verified to be functionally correct After code verification team reviews and meetings are held for each component Teams discuss any possible complications with the code, or any changes that may have recently occurred in the design After all members agree on the design and implementation, the crucial Cleanroom testing strategy is applied

Cleanroom testing using the SQA approach is fundamentally different then conventional testing methods Instead of trying to determine test cases that uncover errors, Cleanroom testing tries to show that statistical amount of use cases function correctly Testing teams first determine which use cases accurately describe the behavior of the system Appropriate inputs and events are chosen based on these use cases A probability distribution of these cases is calculated depending on usage scenarios, customer interviews and a general understanding of the product A particular amount of randomly selected stimuli are then chosen to verify the program Time is record to determine the MTTF which is a good calculation of software reliability

Once a component had gone through the design and testing phases it is ready to be certified Certification in the Cleanroom context occurs when a component has reached a certain level of reliability based on its MTTF There are 5 main steps involved with certification: 1.Usage scenarios 2.Usage profiles 3.Test cases 4.Recorded results (testing) 5.Reliability is computed and certified

Certification cont’d The first 4 criteria specified are determined during the designing and testing phases. The final certification requires 3 distinct models : 1.Sampling model 2.Component model 3.Certification model The sampling model involves the certification of M random use cases The component model involves certification of an entire component The certification model evaluates the system as a whole After statistical testing of each model, teams have enough information to calculate a certified MTTF Certified components and their profiles can be stored and used in different software situations

Cleanroom MethodConventional Method Uses SQA for testing Verifies design and code using mathematical proofs of correctness Uses statistical based testing to determine high probability errors Uses test cases and unit testing No formal verification of design or code Unit testing and debugging to uncover and fix errors Cleanroom development is unique in that it does not follow conventional methods Applies all basic and fundamental concepts regarding software analysis and design however different greatly with regards to testing :

Team orientated incremental pipelining approach allows for many components to be worked on concurrently therefore increasing productivity Continuous team meetings/reviews along with statistical testing and correctness verification produce a far better quality code then unit testing and debugging which may lead to further errors Rigorous formal design and specification methods and refinement lead to reduction in code size critical for embedded situations Due to the improvement in software performance and the time and money saved due to significantly less testing revenue on software will readily increase Finally, Cleanroom development certifies a software’s reliability and presents the user with a near zero defect product

Overall Performance Improvements Productivity improvement – (200 to 400)% Quality improvement – ( : 1) Code size reduction – (5:1) Return on investment – (20:1) Reliable certified software – Priceless

Though there are obvious benefits for using the Cleanroom approach for development, the process has seen limited usage to date mainly because: 1.Developers believe the mathematical and statistical methodology is to radial for software development 2.The methods of SQA and statistical testing are so much different then the conventional method of unit testing and debugging 3.It is currently a much more advanced and complex type of development then ad-hoc level of the current industry These factors have a huge impact of the use of this methodology Cleanroom development worldwide spread is inevitable due to its numerous advantages previously discussed and the need for reliable near zero error software for critical situations

Cleanroom developed Software IBM COBOL/SF restructuring tool IBM AOExpert/MVS™ system outage analyzer Ericsson Telecom OS32 operating system IBM mass storage control unit adapters SEL at NASA Goddard Space Flight Center U.S. Army Picatinny Arsenal

Cleanroom design is fundamentally different then other design methods, spending much of its life cycle on design rather then testing Errors found early in lifecycle minimizing rework and speeding time to market Designs are straightforward and verifiable using the box structure specification and mathematical models Maximum quality, and minimized cost are achieved through software verification and not testing The Cleanroom development process is a formal methodology based on structured programming and a set of stepwise refinements and transformations from requirements to the actual implemented code in which each step is verified to minimize errors The Cleanroom approach is the only method to fully verify a software program and to guarantee to its customer a certain level of reliability crucial for life critical or mission critical software products.

References Richard C. Linger, Carmen J. Trammel. “Cleanroom Software Engineering Reference Model Version 1.o”. Technical Report. November 1996 C. L. Lui, Allen B. Tucker. “Software Engineering: A Practioners Approach 5 th ed.”. Chapter 9 – Cleanroom Development. September 2001 Mills, H.; M. Dyer and R. Linger (September 1987). "Cleanroom Software Engineering". IEEE Software 4 (5): 19–25. doi: /MS Mills, H.doi /MS

Further Reading Stavely, Allan (1999). Toward Zero-Defect Programming. Addison-Wesley. Stacy J. Prowell and Carmen J. Trammell and Richard C. Linger and Jesse H. Poore (1999). Cleanroom Software Engineering: Technology and Process. Addison-Wesley. Jesse H. Poore and Carmen J. Trammell (1996). Cleanroom Software Engineering: A Reader. NCC Blackwell.