You are on page 1of 1

Cleanroom Software Development [1]

Cleanroom software development is a software development approach which aims to minimize


the number of errors in the software, thereby, producing a high quality software product [2]. It
involves significant planning, careful design and a verification process to avoid any errors that
might go into the system during development phase.
Cleanroom Software Engineering Reference Model (CRM) consists of
1) Cleanroom Management Process involves proper project planning, project management,
evaluation and improvements in team performance, making engineering changes based on the
how project is progressing and how team is performing.
2) Cleanroom Specification Process includes understanding user requirements, documenting
user requirements in formal way (functional specifications), documenting how software will be
used (usage specifications), software architecture details, and incremental planning to better
understand and meet customer requirements before development begins.
3) Cleanroom Development Process includes software re-usability, design and implementation
of a software version, and verifying the implemented software version. To maintain the quality of
final product, quality of software module being re-used is evaluated before incorporating it in the
final product. Design and implementation follows incremental box structure development
approach where each box has different level of details regarding data and implementation. The
correctness verification step involves verifying the software version implemented before it is
released for testing.
4) Cleanroom Certification Process starts with creation of a usage model which shows the
different ways in which software can be used. These usage models are verified by customers and
after taking into account their feedback, the usage model is used to write test cases. After this
step, there is a testing and certification step, in which testing team tests the software and share
the feedback on software quality.
The cleanroom approach works well when used in combination with CMM model or Object
Oriented approach. Although there are some differences between these approaches (CMM and
object oriented) and cleanroom approach, they dont have any negative impact and basically
balance the shortcomings of the other approach.
Conclusions: Cleanroom approach finds the errors that might occur much earlier in the software
development life-cycle and care is taken to avoid these errors in development phase. This
approach results in higher team productivity as developers dont have to do much changes to the
code. This approach works well with both new and existing systems.
References:
[1] Ananthpadmanabhan, Harish, Chetan Kale, Mujtaba Khambatti, Ying Jin, Shaun Taufiq
Usman, and Shu Zhang. "Cleanroom software development."Arizona State University (1996).
[2] http://en.wikipedia.org/wiki/Cleanroom_software_engineering

You might also like