Page 205 -
P. 205
190 BARBER AND GRASER
Tekinerdogan, 2004) as well as supporting tools (Benarif et al., 2004; Kazman, 1996). As evident
by the name, ATAM considers multiple quality attributes and the tradeoffs between those attributes.
The assumption is that attribute-specific analyses are interdependent, since attributes connect to
other attributes through specific architectural elements (e.g., a property of a component), leading
to tradeoffs (Kazman et al., 1998). RARE recognizes such inherent conflicts among quality goals
(manifested through a given DRA structure, which promotes some attributes while inhibiting oth-
ers), and the RARE approach allows the architect to establish goal priorities, so RARE can make
sensible tradeoffs when conflicts arise.
Other evaluation methods that are not scenario-based have also been applied to software ar-
chitectures (Dobrica and Niemela, 2002). Among those relevant to DRA evaluation in RARE are
the use of static metrics to aid the evaluation of quality attributes (Kalyanasundaram et al., 1998);
a method for architectural complexity evaluation described in Alhazbi (2004); and metrics for
evaluating product-line architectures (the DRA was partly inspired by the notion of product-line
architectures) discussed in (van der Hoek, Dincel, and Medvidovic, 2003). In Kalyanasundaram
and colleagues (1998), the authors propose the Concept Selection Method to assess the effects of
individual metrics on different software qualities, attempting to establish a relationship between
objective metrics and subjective quality attributes. The RARE DRA derivation process improves
upon the Concept Selection Method by establishing a stronger correlation between high-level
goals and low-level metrics, managing the many-to-many relationships through heuristics and
strategies. A number of the static metrics referenced in Kalyanasundaram and colleagues (1998)
contributed to the metrics suite used in DRA derivation, although many do not apply, since they
focus on implementation-level concerns.
Object-Oriented Analysis and Design and Software Architectures
The software development community has migrated away from traditional functional method-
ologies toward object-oriented analysis/object-oriented design (OOA/OOD) methodologies due
to what many researchers and practitioners claim to be the clear advantages of OO architectures
(Calio, Antiero, and Bux, 2000; Eckert, 1994; Graham, 1995; Henderson-Sellers and Edwards,
1994; Meyer, 1997; Richter, 1999; Riel, 1996). Because these benefits align so closely with the
quality attributes typically targeted by software architectures (e.g., reusability, maintainability,
performance, reliability), object-orientation is often selected as an appropriate architectural style
for structuring an architecture to yield desired qualities.
A significant activity in all OOA/OOD methodologies involves identifying class abstractions
and assigning domain data and functionality to those classes. This activity sets the foundation for
the structure upon which resulting systems will be built (Meyer, 1997) and is also foundational for
DRA derivation. Nonetheless, based on experiments comparing the conceptualizations offered by
different people given the same problem, Stepp and Michalski (1986) conclude there is no “right”
answer. The position taken by the research described in this chapter is analogous. The objective of
this research is to evolve from an ad hoc DRA derivation approach toward a more formal process
by leveraging advice (heuristics) from experienced architects in a rational manner that aligns with
quality goals (intentions) prioritized by the architect. To provide a foundation for these heuristics,
the research described in this chapter must draw upon the recommendations of popular OOA/
OOD methodologies (Booch, Rumbaugh, and Jacobson, 1999; Coad and Yourdon, 1991; Graham,
1995; Kruchten, 2000; Rubin and Goldberg, 1992; Shlaer and Mellor, 1992; Wirfs-Brock et al.,
1990) as well as experts in the field (Richter, 1999; Riel, 1996; Meyer, 1997).
Without the ability to objectively evaluate an object-oriented design in light of given qualities,