1 Chapter 26 Cleanroom Software Engineering. 329-272 Cleanroom Developed in early 80’s by Harlan Mills Reported very good results –reliable, high-quality.

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Object Oriented Analysis And Design-IT0207 iiI Semester
Testing and Quality Assurance
SWE 316: Software Design and Architecture Objectives Lecture # 01 Prologue: The Software Process SWE 316: Software Design & Architecture  To review software.
IMPLEMENTING CLASSES Chapter 3. Black Box  Something that magically does its thing!  You know what it does but not how.  You really don’t care how.
Software Failure: Reasons Incorrect, missing, impossible requirements * Requirement validation. Incorrect specification * Specification verification. Faulty.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Cleanroom Software Engineering A unique approach to software development.
CLEANROOM SOFTWARE ENGINEERING
ISBN Chapter 3 Describing Syntax and Semantics.
Software Reliability CIS 640 Adapted from the lecture notes by Doron Pelel (
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
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.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
COMP2001 Testing. Aims of Testing To achieve a correct system producing correct results with a variety of input data.
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Security Architecture and Analysis Software Inspections and Verification Software Testing and Certification.
Describing Syntax and Semantics
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
COMP 6710 Course NotesSlide 4-0 Auburn University Computer Science and Software Engineering Course Notes Set 4: Cleanroom Software Engineering Computer.
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.
Software Integration and Documenting
CLEANROOM SOFTWARE ENGINEERING By Alan Spangler Presented By : Vamshi Krishna Merugu.
Introduction to High-Level Language Programming
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
CLEANROOM SOFTWARE ENGINEERING.
Prologue: The Software Process. Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2.
1 Performance Evaluation of Computer Networks: Part II Objectives r Simulation Modeling r Classification of Simulation Modeling r Discrete-Event Simulation.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Chapter 3 Developing an algorithm. Objectives To introduce methods of analysing a problem and developing a solution To develop simple algorithms using.
Chapter 25 Formal Methods Formal methods Specify program using math Develop program using math Prove program matches specification using.
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 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.
Software Debugging, Testing, and Verification Presented by Chris Hundersmarck November 10, 2004 Dr. Bi’s SE516.
Anton Krbaťa Ján Budáč  Verification: "Are we building the product right ?„  Validation: "Are we building the right product ?"
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Formal Methods.
Verification and Validation Assuring that a software system meets a user's needs.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Software testing techniques Software testing techniques Statistical Testing Presentation on the seminar Kaunas University of Technology.
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 Engineering 2 -Prakash Shrestha.
Software Engineering Saeed Akhtar The University of Lahore.
Software Quality Assurance and Testing Fazal Rehman Shamil.
DevCOP: A Software Certificate Management System for Eclipse Mark Sherriff and Laurie Williams North Carolina State University ISSRE ’06 November 10, 2006.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
©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.
Software Engineering (CSI 321)
Cleanroom Software Engineering
Verification and Validation Overview
Software engineering – 1
Assembler, Compiler, Interpreter
Methodologies For Systems Analysis.
Chapter 28 Formal Modeling and Verification
Assembler, Compiler, Interpreter
Project Management: Inspections and Reviews Formal Specifications
Presentation transcript:

1 Chapter 26 Cleanroom Software Engineering

Cleanroom Developed in early 80’s by Harlan Mills Reported very good results –reliable, high-quality software –inexpensively and quickly produced Not used very much Moderate use of formal methods

Moderate? Extreme use of formal methods –prove theorems in a formal language –a program checks all proofs Moderate use of formal methods –prove theorems on a whiteboard –a group of people talk about the proof until all are satisfied

Cleanroom increment Requirements gathering Box structure specification Formal design Correctness verification (proofs) Code generation Code inspection Statistical use testing Certification

Testing Purpose is to estimate quality Purpose is NOT to improve quality –if there are a significant number of bugs, do it over Tests are generated based on –what users actually do –probability that event will occur

Statistical use testing Make model of how the system will be used List the set of stimuli that cause the software to change its behavior Estimate the probability of each stimuli Generate tests based on probability

The formal part Box structure specification Formal design Correctness verification (proofs) Goal: produce code that matches specification

Box Specification BB - black box –sequence of stimuli (input events) –response –rules that map stimuli to response

Black box bank account Stimuli –deposit x, withdraw y, check-balance Results –OK, BOUNCE, BALANCE z BankAccount is a function BankAccount( stimulusHistory: Seq of Stimuli, stimulus: Stimuli) -> Results

Black box bank account Define function balance(Seq of Stimuli) balance({}) = 0 balance(SS+S) = –if (S = withdraw X) and X <= balance(SS) then balance(SS) - X –if (S = deposit X) then balance(SS)+X –ottherwise, balance(SS)

Black box bank account BankAccount(stimH, s) if s = balance then BALANCE stim(H) else if s = deposit X then OK else “s = withdrawal X” if X <= balance(stimH) then OK else BOUNCE

Box specification SB - state box –single stimulus (input event) –response –state –rules that map stimulus and old state to response and new state

State box bank account Bank account has one variable: balance BankAccount(s) if s = balance then BALANCE balance else if s = deposit X then balance’ = balance + X and OK else if x = withdraw X then if X <= balance then balance’ = balance - X and OK else BOUNCE

Boxes BB: S, T => R where S is a sequence of stimuli, T is a stimulus, and R is a result SB: S, P => R, Q where S is a stimulus, P and Q are states, and R is a result. CB: Clear box can use any code to specify the function from stimuli to responses.

Design Design is the step of converting a Black Box or State Box into a Clear Box. Clear Box is usually described by pseudocode. For each step of the design, the designers prove that the step is correct. Each kind of step has a rule for proving it correct.

Code generation Once a design is expressed only as Clear Boxes, it is easy to translate into a programming language like C or Java. The programmers translate the design into code.

Advantages of Cleanroom Verification becomes a finite process Improves quality Can verify every line of design and code It results in a near zero defect level It scales up It produces better code than unit testing

Near Zero Defect Level? KLOC,error/KLOC Ericsson OS-32: improvement HP IBM LOC/PM IBM US Army improvement

Summary If reliability is very important, Cleanroom techniques should be considered Reasonably efficient of programmer time Works for groups of 70 programmers Not popular, and there are probably reasons