The ReverseAndReengineeringTaxonomy defines *design recovery* as _a subset of ReverseEngineering in which domain knowledge, external information, and deduction or fuzzy reasoning are added to the observations of the subject system._ The objective of design recovery is to identify meaningful higher-level abstractions beyond those obtained directly by examining the system itself. See also ArchitectureExtraction, DocumentationGeneration.