Page 196 -
P. 196
DOMAIN-SPECIFIC & IMPLEMENTATION-INDEPENDENT SOFTWARE ARCHITECTURES 181
Figure 10.7 Using Meta-strategies to Enforce a High-level Order for Derivation
Derivation Process
Order of Execution
Start End
Meta-strategy 1 Meta-strategy 2 Meta-strategy 3
Associated Associated Associated
Strategies Strategies Strategies
• S001 • S005 • S003
• S002 • S006 • S004
heritance hierarchy and/or number of data/event dependencies passed between DRACs (e.g., one
service in one DRAC required as input data held by another DRAC) provide some evidence as to
the degree of coupling in the DRA (Rosenberg and Hyatt, 1997). Typically, multiple metrics are
used in combination to evaluate an architecture in the context of a heuristic and its parent goal.
Meta-strategy
Meta-strategies establish a high-level order for the derivation process and determine when a strat-
egy is applicable during derivation. The derivation process executes only one meta-strategy at a
time, and only strategies associated with the active meta-strategy may be executed. Figure 10.7
illustrates this relationship. Each Derivation Plan Entry in a Derivation Plan is associated with
a meta-strategy (Meta-strategy 1–3 in Figure 10.7). The derivation process begins by executing
Meta-strategy 1, during which only strategies S001 and S002 can be applied. Meta-strategy 1
completes when neither S001 nor S002 becomes active (i.e., each strategy has respective precon-
ditions that must evaluate to true for the strategy to be selectable), and derivation proceeds with
Meta-strategy 2, during which strategies S005 and S006 may be applied. The process continues
until no more meta-strategies are available for execution. One portion of the derivation process
that relies on the order enforced by meta-strategies is subsystem definition. Based on experiences
deriving DRAs manually, it is recommended that functional and data allocation be completed
before defining subsystems (Barber, 2004). RARE enforces this order through meta-strategies that
ensure allocation strategies are executed prior to subsystem definition strategies.
Table 10.2 illustrates a sample set of goals, heuristics, and strategies represented in the RARE
KB. The quality goals depicted have been prioritized based on an architect’s understanding of the
needs of a particular architecture: Priority 1: “Reusability,” Priority 2: “Performance,” Priority
3: “Comprehensibility,” and Priority 4: “Maintainability.” Examining the “Reusability” goal
more closely, four contributing heuristics have been defined, each associated with corresponding
strategies. Metrics applicable to the “Reduce class coupling . . .” heuristic may include familiar
object-oriented metrics such as “Coupling Between Objects” and “Degree of Cohesion” (Chidam-
ber and Kemerer, 1991; Rosenburg and Hyatt, 1997). Since strategies and metrics may apply to
more than one heuristic under more than one goal, the “Redistribute services . . .” strategy is an