Skip to main content

Short note: Information in forward/reverse engineering

Short answer

Forward engineering transforms abstract models into detailed code, adding information and preserving design intent. Reverse engineering recovers high-level models from code, but abstracts away detail and loses design rationale, yielding incomplete models.

Write a short note on Information content in forward and reverse engineering.

Information content is the amount and level of detail of design information that is available to or produced by the process.

Forward engineering

  • Goes from abstract, high-level information to detailed low-level information.
  • Input: requirements, use cases, domain and design models (class, sequence diagrams) with business rules and design intent.
  • Output: source code and database schemas. Information is added at each step (algorithms, data types, platform details).
  • Information content therefore increases as the process moves towards code, and the intent of the designer is known.

Reverse engineering

  • Goes from low-level to high-level.
  • Input: source code, binaries, database. Contains much detail (control flow, data structures) but not the requirements, design rationale or business rules.
  • Output: recovered class diagrams, call graphs, sequence diagrams, documentation.
  • Information is abstracted; some information (comments, intent, naming, design decisions) is lost or has to be guessed, so the recovered models are less complete than the original ones.
 Forward:   Requirements -> Design -> Code     (info added)
 Reverse:   Code -> Design -> Requirements     (info abstracted,
                                                 intent lost)
PointForwardReverse
Information flowAbstract to detailDetail to abstract
Design intentKnownMust be inferred
Completeness of the resultHighPartial

Round-trip engineering combines both so that the model and the code stay synchronised.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Object Oriented Analysis and Design chapter 4 questions →