Attribute Driven Design

Jijoy
3 min readNov 24, 2020

--

What is attribute driven design ?

Attribute driven design is a design process developed by SEI by basing the design process on the quality attibutes requirements. It’s an iterative method that at each iteration architect do the following.

  • Choose a part of system to design
  • Marshall all architecturally significant requirements of that part.
  • Create and test a design for that part.

Inputs to the design

Before beginning the design , it will require all requirements — fuctional,quality and constraints to be available. However in reality it will never be the case.

So we can start the process with known architecturally significant requirements. If any of the ASR change after design , will need to rework the design itself. So it will behoove the architect to lobby for collecting ASR prior to the design process.

In addition to the ASR , following information is also paramount for the design.

  1. What are the boundaries of the system — This will help isolate the scope of the design.
  2. What are the external systems /actors involved — This will help to define the runtime environment in which system is going to exist.

Output

The output is a collection of sketchs of various architectural views. The views together will identify various runtime elements and their interaction in the system.

ADD doesn’t take the design to the far that it will have full blown interface specifications. However once it’s completed it will have full-fledged architectural views which will offer complete view.

What is the significance of it and how it differs from other techniques ?

There are many other design process other than ADD and they combined or alone cater to various types of products.

4+1 Views

It uses the concept of using 4+1 views to describe the design — logical view, process view, development view , phyical / deployment view and usecase view.

Siemens’ 4 views

The Siemens Four-Views (S4V) method developed at Siemens Corporate Research, is based on best architecture practices for industrial systems. The
four views (conceptual, execution, module and code architecture view), separate different engineering concerns, thus reducing the complexity of the architecture design task.

Business Architecture Process and Organization

The BAPO/CAFCR approach developed primarily by Philips Research, aims at developing an architecture (the A in BAPO) for software intensive systems that fits optimally in the context of business (B), process (P), and organization (O). For that purpose, the five CAFCR views are described:Customer, Application, Functional, Conceptual, and Realization. These views bridge the gap between customer needs, wishes, and objectives on the one hand and technological realization on the other hand.

Architectural Separation of Concerns

Architectural Separation of Concerns (ASC) or ARES System of Concepts , developed primarily by Nokia, is a conceptual framework based on separa-
tion of concerns to manage complexity of architecture design. ASC relies on the fact that concerns related to different segments of the software transformation cycle (typically including design, build, upgrade, load, and
run time) are often separable.

Courtesy : Christine Hofmeister, Philippe Kruchten, Robert L Nord, Henk Obbink, Alexander Ran, and Pierre America. 2005. Generalizing a model of software architecture design from five industrial approaches. In 5th Working IEEE/IFIP Conference on Software Architecture (WICSA’05). IEEE, 77–88.

How is attribute driven design done ?

ADD is a five step method.

  1. Choose an element on the system to design — For greenfield designs the “part” to begin with will be the entire system. For the partially completed systems we can choose a part that’s geting built new. Choosing next element can go in either bread-first or depth-first approach.
  2. Identify ASR of the chosen element
  3. Generate a design solution for the chosen element
  4. Inventory remaining requirements and select input for next iteration
  5. Repeat 1–4 , until all ASRs have been satisfied.

Further Reading

  1. George Fairbanks — Just Enough Software Architecture , A Risk driven approach
  2. Ian Gordon — Essential Architecture , Second Edition
  3. Woods&Rozanski — Software Systems Architecture
  4. Generalizing a Model of Software Architecture Design from Five Industrial Approaches — Kruchten,Nord,Obbink

--

--

No responses yet