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
   191   192   193   194   195   196   197   198   199   200   201