Architectural Recovery

Learned in SE464.

If drift or erosion is allowed to accumulate, the team eventually has to recover the system’s architecture.

Architectural recovery is the process of determining a software system’s architecture from its implementation-level artifacts.

Implementation-level artifacts include:

  • Source code
  • Executable files
  • Java .class files

In practice, you often end up with three different recovered views of the same web system:

  1. Logical: how the different HTML files relate to each other
  2. Dynamic: the browser, get/post requests, etc.
  3. Physical: actual computers and servers talking to each other