Page 186 -
P. 186
DOMAIN-SPECIFIC & IMPLEMENTATION-INDEPENDENT SOFTWARE ARCHITECTURES 171
Table 10.1
Typical Software Architecture Quality Attributes
Quality attribute Description Category
Reusability Degree to which system’s structure or some of its Not discernible at runtime
components can be reused
Integrability Ability to make the separately developed Not discernible at runtime
components of the system work together
Maintainability Ability to make changes quickly and cost effectively Not discernible at runtime
Reliability Ability of the system to keep operating over time Discernible at runtime
Performance Responsiveness of the system Discernible at runtime
Cost System development cost Business quality
Comprehensibility Ease by which architecture can be understood by Relevant to the architecture
stakeholders
Completeness Scope of architecture content as a percentage of Relevant to the architecture
source documents
Correctness Accuracy and consistency of content validated Relevant to the architecture
against source documents
Source: Bass, Clements, and Kazman (1998).
1998; Shaw and Garlan, 1996). For example, an architecture intended to emphasize reusability
may be organized as small, cohesive modules. On the other hand, focusing on performance may
suggest optimizing data flow between critical functions that might be separated in a more reusable
architecture. Thus, the decision to colocate critical functions during architecture derivation may
increase performance in systems built from the architecture blueprint at the expense of greater
reusability of system modules.
To manage such tradeoffs while yielding an acceptable architecture, the derivation process must
be capable of maximizing satisfaction of the architecture based on the priorities of competing
quality attributes. As the architect makes decisions at each stage during the derivation process,
choices must be made when conflicts arise. Because there are likely many possible architectures
for a given set of constraints, the capture of rationale for such choices becomes an integral part
of the architecture and the derivation process (Perry and Wolf, 1992).
Given the categories of quality attributes shown in Table 10.1, a variety of architecture evaluation
methods have proved useful during the derivation process. Methods range from “static” approaches—
such as (1) measuring properties of architecture and component structure (Li-Thiao-Te, Kennedy, and
Owens, 1997), (2) rating an architecture based on its ability to support various scenarios (Kazman
et al., 1994, 1998), and (3) subjectively judging an architecture with respect to specific attributes
(Kalyanasundaram et al., 1998)—to “dynamic” approaches such as simulation of an architecture
specification (Bose, 1999).
The objective of this research is to define a formal process to derive a high-level Domain
Reference Architecture analogous to the “Domain Architecture” shown in Figure 10.1 from a
computational Domain Model (DM) such that the resulting architecture prescribes systems exhib-
iting a prioritized set of quality attributes (Barber, Graser, and Holt, 2001; Graser, 2001). In the