# Research Infusion 2008

# Tool or Technology Information

**[Contact Information]{.underline}**

Name of Tool/Technology: Attribute Driven Design (ADD)

Name of Technology Provider: Software Engineering Institute

Primary Point of Contact (PPC): Len Bass

PPC Phone No.: 888-201-4479

PPC e-mail: <ljb@sei.cmu.edu>

Alternate Contact Name (APC): Linda Northrop

APC Phone No.: 412-268-5800

APC e-mail: <lmn@sei.cmu.edu>

Technology Provider Website:
<http://www.sei.cmu.edu/architecture/add_method.html>

Technology Provider Address: Software Engineering Institute

Customer Relations

4500 Fifth Avenue

Pittsburgh, PA 15213-2612

USA

**[Tool/Technology Details]{.underline}**

Description of Tool/Technology: The Attribute-Driven Design (ADD) method
is a method for designing the software architecture of a software
system(s) to ensure that the resulting products have the desired
qualities. The ADD method is based on the explicit description of both
functional and quality requirements: Quality attribute requirements
include both run time qualities such as performance and reliability and
design time qualities such as modifiability and re-use. The design
method proceeds by prioritizing the quality attribute requirements,
using the high priority quality attribute requirements to generate a
pattern for the system(s) under design and then assigning the functional
requirements to the appropriate portions of the pattern. ADD is
iterative in that first an overall pattern is chosen and subsequently
the overall pattern is refined to achieve a final architectural design.

Commercial or Research Technology: Research

Associated Program:

Potential Benefits: Product quality is enhanced from the beginning of
the development lifecycle. One step of ADD is to verify that quality
attribute requirements can be achieved with the existing design. ADD is
an architecture design method and since every system has an architecture
and it is desirable that the architecture be designed to achieve quality
attribute goals, the use of ADD would benefit software design at NASA by
ensuring that the design satisfies quality attribute requirements. IV&V
would be simplified in the area of quality attribute requirement
satisfaction since on step of ADD explicitly tests the quality attribute
requirements and recording the results of that testing will yield an
IV&V trail through the evolution of the design.

Supported Platforms: ADD is a method and has been used with several
different tools including Rational Rose and Rhapsody from Ilogix.

Required Inputs: Functional and quality attribute requirements and
constraints on the architecture design

Outputs Produced: A coarse grained architecture design

**[Maturity Level]{.underline}**

Applied to Real Problems? Yes No

If Yes, Level of Success Achieved: ADD has been used by Robert Bosch to
design automotive components. The SEI has a workshop every year to
report on industrial use of SEI methods and people have reported on the
use of ADD in the design of geographic information systems and Automated
Guided Vehicle (AGV) systems. ADD has also been used by many companies
whose personnel have taken the SEI Software Architecture courses.

Already in Use within NASA? Yes No Unknown

If Yes, at what center(s):

**[Support]{.underline}**

User/Ref. Documentation Available: Descriptions of the method exist in
several SEI technical reports freely available over the web. These
reports are:
[[http://www.sei.cmu.edu/publications/documents/00.reports/00tr001.html]{.underline}](http://www.sei.cmu.edu/publications/documents/00.reports/00tr001.html)
<http://www.sei.cmu.edu/publications/documents/00.reports/00sr009.html>
<http://www.sei.cmu.edu/publications/documents/06.reports/06tr023.html>
<http://www.sei.cmu.edu/publications/documents/07.reports/07tr005.html>

Phone Support Available: Yes

Is Tool/Technology Developer willing to support infusion effort? Yes No
(with appropriate funding)

**[Licensing]{.underline}**

Is Tool/Technology Developer willing to provide Evaluation Copy for
extended period of time? Yes No NA

**[Other Information]{.underline}**