CLEANROOM SOFTWARE ENGINEERING By Elliott E Harrington 1
CLEANROOM SOFTWARE ENGINEERING By Elliott E. Harrington 1
Overview What is Cleanroom Software Engineering? Ø Brief History Ø The Processes Ø Cleanroom and Object Oriented Methods Ø Benefits Ø Project Statistics Ø Conclusion Ø 2
What is Cleanroom Software Engineering? Ø Set of principles and practices for software management, specification, design, and testing. l l l Improve quality Increase productivity Reduce cost Ø Emphasis on defect prevention rather than defect removal. 3
Ø Focuses on engineering based practices that produce software that is correct. l Mathematically sound design • Formal Methods l l Z Certified by statistically–valid testing Ø Reduced cycle time l l Incremental development strategy. Avoidance of rework. 4
Brief History Ø Developed by Dr. Harlan Mills of IBM’s Federal Systems division. Ø First published in 1981. l Didn’t become popular until 1986. Ø IBM and other organizations began using this process in 1987. 5
Ø Has evolved to keep up with changing world of software. l From top-down structured programming to include object-oriented design. Ø Users have adapted Cleanroom to coexist with various tools and other techniques. 6
7
The Processes Ø Comprised of four different processes: l l Management Specification Development Certification Ø A separate team is required for each of these processes to ensure the highest quality product. 8
Process Lifecycle Cleanroom Process Lifecycle [3] 9
Management Process Ø The very first process in a Cleanroom Software Engineering project. Ø It is persistent throughout the whole project lifetime. Ø The Specification, Development, and Certification processes are placed on top of and use this process. 10
Project Planning Cleanroom processes are tailored to meet project specific requirements Ø Document, define, and review the plans with the customer and project team. Ø 11
Management Process specifies l l l Project Mission Organization Work products Schedules Resources Measurements l l l Reuse analysis Risk analysis Standards Training Configuration management. 12
Performance Improvement Ø Continually evaluate and “streamline” Cleanroom processes. Ø Introduce new technologies and processes. Ø Pinpoint potential problems with the lifecycle processes. 13
Engineering Change Ø Plan and perform additions, changes, and corrections to the work product. Ø The status of the changes is continually updated throughout the process. Ø Similar to other development processes. 14
Specification Process Ø First process of each increment. Ø Consists of: l l Requirement Analysis Function Specification Usage Specification Increment Planning 15
Requirements Analysis Ø Define requirements for the product. l Function, usage, environment, and performance. Ø Obtain an agreement with the customer on the requirements. Ø Opportunity to simplify the customer’s initial product concept. Ø May reveal requirements that the customer had not addressed. 16
Function Specification Ø Specifies complete functional behavior of the software. Ø Expresses the requirements in a mathematically precise, complete, and consistent form. Ø An incremental specification strategy may be necessary for larger systems. 17
Usage Specification Ø Identifies and classifies software users, usage scenarios, and environment. Ø Establish and analyze high level structure and distribution for software models. Ø A good understanding of usage models is helpful for prioritizing the development activities. 18
Increment Planning Ø Allocate customer requirements into a series of software increments. Ø Define the schedule and resource allocations. Ø Increment Construction Plan l Used by management to assign tasks, track progress, and monitor product quality and process control. 19
Development Process Second process of each increment. Ø Comprised of: Ø l l l Software Reengineering Incremental Design Correctness Verification 20
Software Reengineering Ø Prepare reused software for incorporation into the software product. l Can be mined from Cleanroom or non. Cleanroom environments. Ø Must meet two requirements l l Semantics and interface must be understood and documented. Must know why you’re going to reuse it. 21
Incremental Design Ø Design/implement software increment that satisfies the Increment Construction Plan, Function Specification, and Software Architecture. l Box structure decomposition Ø Prohibited from executing the increment implementation. 22
Correctness Verification Ø Verifies the correctness of the software increment using mathematically based techniques. Ø Last line of defense against failures. Ø Transition to the testing phase with no faults in the design. Ø It is then turned over to the certification team for the first execution of the code. 23
Certification Process Third and final process of each increment. Ø Comprised of: Ø l l Usage Modeling and Test Planning Statistical Testing and Certification process 24
Usage Modeling and Test Planning Ø Refine the Usage Specification to create models for software testing and define test plans. Ø Certification team creates Usage Model, Increment Test Plan, and Statistical Test Cases. l Developed incrementally. Ø The customer reviews the usage model and generates all scenarios of use. 25
Statistical Testing and Certification Ø Demonstrate the software’s performance. Ø Certification goals are established. l Goals can be expressed in terms of software reliability, growth rate, and coverage. Ø Software undergoes first execution. Ø Success is determined by comparing software behavior with the Function Specification. 26
Ø Determine whether or not to continue testing, to stop testing for changes to the software, or to continue on to final software certification. l Depends on the outcome of the tests and how the software behaves compared to the Function Specification. 27
Cleanroom and Object Oriented Ø A study found that combining OO methodology with Cleanroom processes is capable of producing results that are reusable, predictable, and of high-quality. Ø OO can be used for domain analysis and problem decomposition. Cleanroom can be used for life-cycle processes. Ø Cleanroom focuses on correctness and techniques supporting verification. 28
Ø OO focuses on design quality, maintainability, extendibility, and reusability. Ø Combination of these two techniques offers a high-quality product that is well decomposed and based upon good design principals. 29
Benefits Ø Delivers a high quality product that is verified as being correct. Ø Errors are found early on in the project l Due to majority of project time spent in the design phase. Ø Leads to lower overall costs and reduces time spent finding errors. l Reduces the overall project time 30
Project Statistics 31
NASA satellite-control project l l Cost of training the team was calculated at 4% of project hours. Time allocation: • • l 33% design 18% coding 27% testing 22% meetings and other overhead. 69% higher productivity, 45% error reduction rate, and 60 -80% decrease in resources used 32
IBM COBOL Restructuring Tool Ø Took place in 1988 Ø Ten-fold reduction in total defects per thousand lines of code. Ø Five-fold improvement in developer productivity measured in lines of code per month. Ø Only seven errors found in the first three years, all of which were simple fixes. 33
Conclusion Ø Cleanroom SE ensures high-quality software with certified-reliability. Ø Has evolved throughout the years and has been incorporated in many new software practices. Ø Few defects with the possibility for zero defects. Ø Saves time and resources. l Costs Less! 34
References 1. Foreman, John. (1997). Cleanroom Software Engineering Retrieved March 27, 2006 from http: //www. sei. cmu. edu/str/descriptions/cleanroom_body. html 2. Deck, Michael. (1994). Cleanroom Software Engineering: Quality Improvement and Cost Reduction. Retrieved on March 27, 2006 from http: //www. cleansoft. com/cleansoft_library. html 3. Linger, Richard C. , Trammell, Carmen J. (November 1996). Cleanroom Software Engineering: Reference Model, Version 1. 0. Retrieved March 27, 2006 from http: //www. sei. cmu. edu/pub/documents/96. reports/pdf/tr 022. 96. pdf 4. Cleanroom Software Engineering, Inc. (September 1995). An Introduction to Cleanroom Software Engineering for Managers. Retrieved on March 28, 2006 from http: //www. cleansoft. com/cleansoft_library. html 35
- Slides: 35