




Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of cleanroom software engineering, a software development approach inspired by the cleanroom manufacturing process. The history of cleanroom software engineering, its key characteristics, and the development process. It also includes examples of cleanroom projects and their reliability results.
Typology: Papers
1 / 8
This page cannot be seen from the preview
Don't miss anything!





Cleanroom Software Engineering Mary Jean Harrold 1
y Cleanroom (physical) used for manufacturing integrated circuits to prevent introduction of defects into the product y Harlan Mills (IBM) saw success of cleanroom for integrated circuits at IBM and thought “why not use the same approach for software?”
Cleanroom Software Engineering Mary Jean Harrold 3
y Mills, Dyer, Linger: First paper on cleanroom software engineering
y Other papers showing results of using cleanroom y Other important contributors to development of cleanroom are Richard Linger, Jesse Poore, Richard Cobb
y Claim that zero defect development is possible y Use structured design techniques but no unit testing is performed y Testing is done statistically after the system is developed y Development is done in increments, each of which is deliverable
Cleanroom Software Engineering Mary Jean Harrold 7
y Statistically verified using mathematically-based correctness arguments y Code components are not executed or tested in any way
y Integrated software increment is tested statistically to determine reliability y Statistical tests based on operational profile (developed in parallel with the system specification)
y Team size < 14
Cleanroom Software Engineering Mary Jean Harrold 9
First task: complete the specification document y Recommendation: three parts
y Decompose specification into executable increments y Typical system < 100KLOC y Increment: 2 - 15KLOC y Each increment End - to – End y Overlapped development of increments y 12 - 18 weeks from beginning of specification to end of test y (Partitioning is difficult and critical)
Cleanroom Software Engineering Mary Jean Harrold 13
y No program execution allowed (but syntax checking ok) y Prime program decomposition (single entry/exit sequence, conditional, iteration) y Program function: description of prime programs; various degrees of formality; top-down refinement y Correctness conditions: bottom-up verification; things to check for each kind of prime program y No debuggingÆ cheap y Inspection-based: informal presentation of proofs y Results in very small program segments y Example: 3300 LOCÆ 600 control structures, 1000 correctness conditions
y For each increment y Design and build increment top down
Cleanroom Software Engineering Mary Jean Harrold 15
y Usage distribution models; other software, earlier versions, analysis y Construct Markov usage chain / probability matrix y Computations of P (proportion of time spent in each state), n (number of states visited before a given state is reached), and s (number of tests needed to reach a state). y Random test generation (some design required here to deal with constraints) y Test execution and test chain generation, including failure states y Calculations of R (reliability), MTBF (mean time between failures), and D (divergence of test chain from usage chain)