Best Practices for Forensic Architecture

In an ideal situation, software architecture is created in response to a documented set of requirements. Forensic architecture is the process of expressing the architecture for something after it’s been built. Regardless of when the process is undertaken, software architects use a number of conventions and normative description languages and artifacts to express architecture. These typically include blueprints, patterns, models, diagrams, and text. Ideally, the sequence of events for creating an architecture involves the following steps, though there are many variations:

  1. Identify a problem.

  2. Document the problem.

  3. Propose a solution.

  4. Document specific requirements for the solution.

  5. Propose an architecture to solve the problem.

  6. Map requirements to solutions iteratively until all issues are resolved.

  7. Build a final complete solution, and solve the problem.

A flowchart could capture this sequence as shown in Figure 2-1.

Rough flowchart of architectural process

Figure 2-1. Rough flowchart of architectural process

In the real world, of course, there are usually some complications. Architecture processes can be vastly different, but these general guidelines apply to them all:

  • Find some common ground early. Starting projects is easier if participants have a common alignment, understanding of, and agreement on a specific model or first order of logic.

  • Create consensus, when possible, on what can be achieved ...

Get Web 2.0 Architectures now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.