IBM has started a series of articles related to Capturing Architectural Decisions at its developerWorks site.This first part of the series presents a domain meta model specifically designed to capture and share architectural decisions and outlines why and how architects should consciously identify, make, and enforce architectural decisions. It is supplemented with an Eclipse-based tool to support this metamodel and also the Architectural Decision Knowledge Wiki.

The main entities in the metamodel are:

  • ArchitecturalDecision - capturing a decision issue (records problem statement, decision drivers, background readings, etc.), e.g., layered architecture
  • ADAlternative - state different alternatives (pros and cons) for each architectural decision, e.g., 3 layers versus 4 layers
  • ADOutcome - the decision that has been made (recording a justification)

Part 2 will look at SOA examples and the role a reusable architectural decision model can take in SOA design and deployment.