IMPROVING THE ARTICULATION OF STRUCTURE
Added 31 Jul 2008
As has already been said, one of the problems with older software is that hidden structural features need to be recovered or uncovered. The word recovery as in "design recovery" (Bigg89) implies that the original author was aware of the structure being buried in the implementation. That is, recovery is a form of "psychohistory" while uncovery makes no such assumption.
Uncovering the structural features requires significant analysis of the usage of constructs in the software to determine if the patterns of these usages conform to more modern constructs. That is, we attempt to infer the intent of the programmer from the usage of the constructs known or available to him.
The results of analysing usage patterns in software can be presented in a number of ways including diagrams, use of a program-design language, metrics, or even in a rewritten version which is guaranteed to be equivalent to the original program, but which uses constructs which more explicitly signal restraints which were previously implicit in the program's use of looser constructs. All of these are useful, but the latter form is particularly attractive, because it is re-executable and retestable.