clean room : Java Glossary
©1996-2017 Roedy Green of Canadian Mind Products
- clean room
Clean room has three meanings:
- Integrated circuit chips are manufactured under super clean dust-free
conditions in a "clean room" with special air pumps and filters to clean
out the dust.
- By analogy, clean room refers to a way of writing
software. When a company wants to make a clone of some existing product, they are
concerned that they will be accused of reverse engineering. So they lock the
programmers away and never even let them look at the product they are copying. A
separate team studies the behaviour and specifications of the product to be copied.
All conversations between the two teams are recorded. This way the company can
prove in a court of law that it created the clone without reverse engineering.
Companies that write JVM (Java Virtual Machine) interpreters in the clean
room style would not owe Sun any royalties.
- Clean room also refers to a technique of writing
reliable code. The specification team uses a formal specification language to
define the system. The specification language should be mathematically provable or
verifiable. The developers are expressly forbidden to compile and execute their
code. Instead, the development team holds extensive walkthroughs and functional
verification exercises: the goal is to address every known design possibility in
the code. If this team has done its job, when they turn their code over to the
certification team, it should compile cleanly and run perfectly the first