Attribute-Driven Design Method Collection
The SEI Attribute-Driven Design (ADD) method is a systematic step-by-step method for designing the software architecture of a software-intensive system. This is a collection of SEI publications about ADD.
Software Engineering Institute
The SEI Attribute-Driven Design (ADD) method is a systematic step-by-step method for designing the software architecture of a software-intensive system. It is an approach to defining software architectures by basing the design process on the architecture's quality attribute requirements. It follows a recursive decomposition process where, at each stage in the decomposition, tactics and architectural patterns are chosen to satisfy a set of quality attribute scenarios.
Required input to ADD includes known functional requirements, quality attribute requirements, and constraints. Functional requirements may be specified with a feature list or use cases. Quality attribute requirements may be specified using quality attribute scenarios, such as result from an SEI Quality Attribute Workshop. Constraints are design decisions that are forced by outside factors.
- How do you design the architecture for a system so that it best meets users' needs?
- How do you meet quality attribute requirements for envisioned systems?
- How do you determine which architectural strategies are appropriate for your quality attribute requirements?
- How can you understand the impact of quality attribute tradeoffs while you're designing a software architecture?
Applying ADD results in the decomposition of the architecture, documented using architectural views, such as those found in the SEI Views and Beyond approach to documenting software architecture. ADD is a recursive method that has two parts:
Part 1: Using tactics to achieve quality requirements
- Confirm there is sufficient requirements information.
- Choose an element of the system to decompose.
- Identify candidate architectural drivers.
- Choose a design concept that satisfies the architectural drivers.
Part 2: Documenting decomposition
- Instantiate architectural elements and allocate responsibilities
- Define interfaces for instantiated elements
- Verify and refine requirements and make them constraints for instantiated elements.
- Repeat these steps for the next element.
The ADD method has been used for application domains ranging from information systems to embedded systems. Additional research on systematically producing an architecture design from a set of quality attribute scenarios is underway. Current work is embodied in SEI ArchE, an architecture expert design assistant.
The ADD method enables designers to understand quality attribute tradeoffs early in the design process and guides them in designing an architecture that will satisfy both quality and functional requirements.
Who Would Benefit
The ADD method has been used for application domains ranging from information systems to embedded systems.
The SEI can help you use the ADD method or answer technical questions about ADD. Contact us using the link in the For more information box at the bottom of this page.
Attribute-Driven Design (ADD), Version 2.0
November 1, 2006 • Technical Report
By Rob Wojcik, Felix Bachmann, Len Bass, Paul C. Clements, Paulo Merson, Robert Nord, William G. Wood
This report revises the steps of the Attribute-Driven Design (ADD) method and offers practical guidelines for carrying out each step.read
Integrating Software-Architecture-Centric Methods into the Rational Unified Process
July 1, 2004 • Technical Report
By Rick Kazman, Philippe Kruchten, Robert Nord, James E. Tomayko
This report presents a summary of the RUP (Rational Unified Process) and examines the potential uses of the SEI's architecture-centric methods.read
Managing Variability in Software Architectures
May 1, 2001 • White Paper
By Felix Bachmann, Len Bass
This paper presents experience with explicitly managing variability within a software architecture.read
A Practical Example of Applying Attribute-Driven Design (ADD), Version 2.0
February 1, 2007 • Technical Report
By William G. Wood
This 2007 report describes an example application of the ADD method, an approach to defining a software architecture in which the design process is based on the quality attribute requirements the software must fulfill.read
Quality Attribute Design Primitives and the Attribute Driven Design Method
October 1, 2001 • White Paper
By Felix Bachmann, Len Bass, Mark H. Klein
This paper discusses the understanding of quality attributes and their application to the design of a software architecture.read
A Principled Way to Use Frameworks in Architecture Design
November 30, 2012 • Article
By Humberto Cervantes (Universidad Autonoma Metropolitana–Iztapalapa), Perla Velasco-Elizondo (Autonomous University of Zacatecas), Rick Kazman
In the past decade, researchers have devised many methods to support and codify architecture design.read