Reverse engineering
Reverse engineering is an interesting concept because it enables you to test how good your functional design is and creates a better understanding of the original design. Want to know more? See the reverse engineering paper
With reverse engineering from the end-product a set of criteria / functions is derived and from these descriptions someone without previous knowledge should make the design. It is a neat way to come up with new design and it helps to understand the essence of the design. Here is an interesting paper with more background on the origin of the concept: