design recovery
A subtask of reverse engineering in which domain knowledge, external information, and deduction of fuzzy reasoning are added to the observations of the subject system to identify meaningful higher level abstractions beyond those obtained directly by examining the system itself.
In other words, design recovery aims to work out what a system or component was designed to do rather than just examining its subcomponents and their interrelationships.