Attribute-Driven Design Process

Attribute-driven design (ADD) process allows us to use a recursive method for explicitly representing of quality attributes as well as explicitly stating association between architectural decision and quality attributes. To begin the process of ADD, we need a set of functional requirements (e.g. use-cases), quality attributes (ideally expressed through design scenarios) and any further system constraints potentially impactful to the system.

The Attribute-Driven development process

The ADD method is made of 3 key steps:

  1. Choose a module to decompose
    1. Initially the whole system
  2. Refine the module
    1. Choose architectural drivers
      1. Determine quality attributes important for this decomposition
    2. Choose tactics and patterns to satisfy drivers
      1. Satisfy quality Attributes
    3. Allocate functionality from functional requirements
      1. Satisfy functional requirements
    4. Verify and refine functional requirements
      1. Make them constraints for the child modules
  3. Repeat steps for all modules requiring further decomposition