Ian Somerville proposes that cleanroom software development is a technique that is focuses so much on verifying the developed software and also in carrying out an intensive testing before implementation. The main purpose of the cleanroom approach is to ensure elimination of all defects in software hence assuring the users of its reliability. It’s an incremental development process where all the requirement specifications identified at analysis are implemented and a formal testing process is conducted to correct defects and test on reliability (Sommerville, 2011).
Proposers of the software development cleanroom approach to entirely bases its argument on some five strategies. There is the Formal specification strategy that requires formal specification of the software before development begins. The software to be developed is formally specified. A state-transition model which shows system responses to stimuli is used to express the specification (Sommerville, 2011).
A second strategy touches on the need for incrementing software development. This is a call to subdivide the development process into partitions that are addresses on different platforms. This will allow the developers to focus on the possible input t an early stage to facilitate the testing process. A third strategy proposes on adoption of structured programming. This is all about appreciating data abstraction where only the necessary constructs are incorporated into the development. This is crucial to ensuring the main objective of implementing the specifications is achieved, reducing to a great extent transformation of the specifications to suit the situations (Sommerville, 2011).
A fourth strategy to cleanroom software development is what Ian calls static verification. This is a more intense verification process on the software that makes full use of statistical methods. Modularity in testing is not applied but testing is done as a whole. Lastly there is the strategy that touches on statistically testing the system. A final determination on reliability is made on the system as a whole basing on a predetermined system specification profile (Sommerville, 2011).
References
Sommerville, I. (2011). Software engineering (9th ed.). Harlow, England: Addison-Wesley.