search menu icon-carat-right cmu-wordmark

A Practical Example of Applying Attribute-Driven Design (ADD), Version 2.0

February 2007 Technical Report
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.

Publisher:

Software Engineering Institute

CMU/SEI Report Number

CMU/SEI-2007-TR-005

Abstract

This report describes an example application of the Attribute-Driven Design (ADD) method developed by the Carnegie Mellon Software Engineering Institute. The ADD method is an approach to defining a software architecture in which the design process is based on the quality attribute requirements the software must fulfill. ADD follows a recursive process that decomposes a system or system element by applying architectural tactics and patterns that satisfy its driving quality attribute requirements. 

The example in this report shows a practical application of the ADD method to a client-server system. In particular, this example focuses on selecting patterns to satisfy typical availability requirements for fault tolerance. The design concerns and patterns presented in this report—as well as the models used to determine whether the architecture satisfies the architectural drivers—can be applied in general to include fault tolerance in a system. Most of the reasoning used throughout the design process is pragmatic and models how an experienced architect works.