Attribute Driven Design (ADD)—a method for designing software
architectures—was developed by the Carnegie Mellon Software Engineering
Institute. The first version of ADD was published in January 2000, and
the second version was published in November 2006. Recently we have made
some improvements to the method to increase its adoption by the
software architecture community. ADD 2.0 focused on a conceptual
architecture design and promoted the use of Patterns and Tactics as key
concepts that drive the design process. Our experience, however, has
shown that other important design concepts, including reference
architectures and frameworks, are used in architectural design by
practitioners. Furthermore, when ADD 2.0 was created, agile methods were
not widespread. As a consequence, the method does not provide insights
on how to use it in a more agile setting. To address these issues, we
have created a new version of the method that we call ADD 3.0.
In this tutorial, we will introduce ADD 3.0 and explain the key changes
that we made to its previous version. We will also present a detailed
case study and walk the participants through a few iterations of the
method, showing how the steps are performed. We will place particular
emphasis on the design decisions that are made in the different design
iterations. Finally, we will make a brief comparison of ADD to other
design methods and close with a general discussion.