Java Glossary : clean room
Last updated 2004-06-28 by Roedy
Green ©1996-2004 Canadian Mind Products
Java definitions: 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
You are here : home : Java
Glossary : C words : clean room.
- 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 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 time.