100 likes | 1.24k Views
Cleanroom software development. Spend a lot of effort "up-front" to prevent defects Formal specification Incremental development Statistical methods to ensure reliability. Cleanroom Process. Formal specification using a state transition model
E N D
Cleanroom software development • Spend a lot of effort "up-front" to prevent defects • Formal specification • Incremental development • Statistical methods to ensure reliability Ch. 19 - Cleanroom Development
Cleanroom Process • Formal specification using a state transition model • Structured programming - limited control and abstraction constructs are used • Program resembles state machine • Static verification using rigorous inspections • Mathematical arguments • Statistical testing of the system reliability [Ch. 21]. Ch. 19 - Cleanroom Development
Cleanroom Process Ch. 19 - Cleanroom Development
Cleanroom Process • Incremental development • Allows freezing of requirements, so formal work can proceed • Work on critical functionality in early revisions, so it receives the most testing Ch. 19 - Cleanroom Development
Cleanroom Process • Specification team. Develop and maintain system specification • Development team. Develop and verify (mathematically) the software. The software is not executed or even compiled during this process • Certification team. Develop set of statistical tests to exercise the software after development. Reliability growth models [Ch.21] used to determine when reliability is acceptable Ch. 19 - Cleanroom Development
Test Results • Successful in the field [Cobbs and Mills 1990] • Few errors • Not more expensive than other processes • Generally workable [Selby et. al. 1987] • Higher quality code resulted Ch. 19 - Cleanroom Development
Deployment • Has been successfully used with highly-trained motivated engineers, at IBM, where process was developed • Can it work with less highly-skilled/motivated engineering teams? Ch. 19 - Cleanroom Development