CLEANROOM SOFTWARE ENGINEERING

Slides:



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

Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
Chapter 4 Quality Assurance in Context
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.
Stepan Potiyenko ISS Sr.SW Developer.
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
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Iterative development and The Unified process
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
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.
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.
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.
Software Integration and Documenting
CLEANROOM SOFTWARE ENGINEERING By Alan Spangler Presented By : Vamshi Krishna Merugu.
Effective Methods for Software and Systems Integration
© 2005 Prentice Hall14-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
8/27/20151NeST Controlled. 2 Communication Transportation Education Banking Home Applications.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
S/W Project Management
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.
N By: Md Rezaul Huda Reza n
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Software System Engineering: A tutorial
Understand Application Lifecycle Management
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Teaching material for a course in Software Project Management & Software Engineering – part II.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Chapter 2 Process: A Generic View
Service Transition & Planning Service Validation & Testing
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
SWEN 5130 Requirements Engineering 1 Dr Jim Helm SWEN 5130 Requirements Engineering Requirements Management Under the CMM.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Systems Analysis and Design in a Changing World, Fourth Edition
Software Testing and Quality Assurance Software Quality Assurance 1.
CLEAN ROOM SOFTWARE ENGINEERING CSC-532
The Cleanroom Approach to Quality Software Development
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
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.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Lecture 2 System Development Lifecycles. Building a house Definition phase Analysis phase Design phase Programming phase System Test phase Acceptance.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
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 Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Process 4 Hours.
Lecture 3 Prescriptive Process Models
Cleanroom Software Engineering
IEEE Std 1074: Standard for Software Lifecycle
Introduction to Software Testing
Chapter 2 – Software Processes
An Overview of Software Processes
Baisc Of Software Testing
Presentation transcript:

CLEANROOM SOFTWARE ENGINEERING By Elliott E. Harrington

Overview What is Cleanroom Software Engineering? Brief History The Processes Cleanroom and Object Oriented Methods Benefits Project Statistics Conclusion

What is Cleanroom Software Engineering? Set of principles and practices for software management, specification, design, and testing. Improve quality Increase productivity Reduce cost Emphasis on defect prevention rather than defect removal.

Focuses on engineering based practices that produce software that is correct. Mathematically sound design Formal Methods Z Certified by statistically–valid testing Reduced cycle time Incremental development strategy. Avoidance of rework.

Brief History Developed by Dr. Harlan Mills of IBM’s Federal Systems division. First published in 1981. Didn’t become popular until 1986. IBM and other organizations began using this process in 1987.

Has evolved to keep up with changing world of software. From top-down structured programming to include object-oriented design. Users have adapted Cleanroom to coexist with various tools and other techniques.

The Processes Comprised of four different processes: Management Specification Development Certification A separate team is required for each of these processes to ensure the highest quality product .

Process Lifecycle Cleanroom Process Lifecycle [3]

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.

Project Planning Cleanroom processes are tailored to meet project specific requirements Document, define, and review the plans with the customer and project team.

Management Process specifies Project Mission Organization Work products Schedules Resources Measurements Reuse analysis Risk analysis Standards Training Configuration management.

Performance Improvement Continually evaluate and “streamline” Cleanroom processes. Introduce new technologies and processes. Pinpoint potential problems with the lifecycle processes.

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.

Specification Process First process of each increment. Consists of: Requirement Analysis Function Specification Usage Specification Increment Planning

Requirements Analysis Define requirements for the product. 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.

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.

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.

Increment Planning Allocate customer requirements into a series of software increments. Define the schedule and resource allocations. Increment Construction Plan Used by management to assign tasks, track progress, and monitor product quality and process control.

Development Process Second process of each increment. Comprised of: Software Reengineering Incremental Design Correctness Verification

Software Reengineering Prepare reused software for incorporation into the software product. Can be mined from Cleanroom or non-Cleanroom environments. Must meet two requirements Semantics and interface must be understood and documented. Must know why you’re going to reuse it.

Incremental Design Design/implement software increment that satisfies the Increment Construction Plan, Function Specification, and Software Architecture. Box structure decomposition Prohibited from executing the increment implementation.

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.

Certification Process Third and final process of each increment. Comprised of: Usage Modeling and Test Planning Statistical Testing and Certification process

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. Developed incrementally. The customer reviews the usage model and generates all scenarios of use.

Statistical Testing and Certification Demonstrate the software’s performance. Certification goals are established. 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.

Determine whether or not to continue testing, to stop testing for changes to the software, or to continue on to final software certification. Depends on the outcome of the tests and how the software behaves compared to the Function Specification.

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.

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.

Benefits Delivers a high quality product that is verified as being correct. Errors are found early on in the project Due to majority of project time spent in the design phase. Leads to lower overall costs and reduces time spent finding errors. Reduces the overall project time

Project Statistics

NASA satellite-control project Cost of training the team was calculated at 4% of project hours. Time allocation: 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

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.

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. Costs Less!

References Foreman, John. (1997). Cleanroom Software Engineering Retrieved March 27, 2006 from http://www.sei.cmu.edu/str/descriptions/cleanroom_body.html Deck, Michael. (1994). Cleanroom Software Engineering: Quality Improvement and Cost Reduction. Retrieved on March 27, 2006 from http://www.cleansoft.com/cleansoft_library.html 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/tr022.96.pdf 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