Introduction
Although has been around for years, cleanroom rarely heard in Software engineer community. Many software engineers ask about the benefit and existence of cleanroom itself. In this article I want to tell a short story about cleanroom and the important factor that we need to be aware of as software engineer.
What is it about?
Cleanroom is developed by Harlan Mills, 1980. He suggest that as with cleanroom hardware Development, we need to focus on defect prevention rather than defect removal[1]. It means we need to make sure that our artifact and process in every process level must be guarded well. Everything must be error free. Rather than fix error after debug / testing, we can fix the error even from design and analysis level by implementing formal method and statistical measurement.
Clean or clear?
So it must be clean. How we do it? That’s the meaning of my headline here. Our specification must be extremely clear so our increment can be clean. Cleanroom incorporates method called Box Structure Specification that incorporate black box (input output mapping), state box (state in black box), and clear box (algorithm in state). The use of box model can clear the ambiguity of analysis and design artifact plus a very unique possibility of test the box model error.
Figure 1. Black Box representation
Figure 2. State Box representation
Figure 3. Clear Box representation
Process model
Cleanroom, like other method have its own process model depicted in Figure 4.
Figure 4.Cleanroom Process Model (adapted from [2])
Closing
Although cleanroom held great potential of quality improvement, its development is slow. Most engineers who know this method think it is too theoretical and not practical, especially in our agile era.
Last words, this is a respectable invention. Many interesting technique and method applied here. Nice addition for our knowledge as software engineer.
Reference
[1] Mills, Harlan, et al. 1987. Cleanroom Software Engineering.
[2] Oshana, Robert. 1998. An Industrial Application of Cleanroom Software Engineering – Benefits Through Tailoring.