Page 199 -
P. 199

184     BARBER  AND  GRASER
                    appropriate technique for both reducing coupling under the “Reduce class coupling . . .” heuristic
                    and reducing message passing under the “Reduce I/O performance bottlenecks . . .” heuristic.
                    Strategies may be triggered based on the stage of the DRA during the derivation process. For
                    example, “Collect classes into subsystems” may be executed after DRACs have been defined and
                    functionality allocated. Strategies are also triggered by certain structural arrangements detected in
                    the DRA, based on the value of related metrics. For example, “Redistribute services . . .” under
                    the “Reduce class coupling . . .” heuristic could be triggered, in part, by an unsatisfactory value
                    for metric “Coupling Between Objects.”
                      To express the intentions for a particular architecture being derived, the architect selects and
                    prioritizes goals from the RARE KB prior to initiation of the derivation process (step 1 in the Plan-
                    Generation phase Figure 10.5). To enable customization, the architect is provided with a working
                    copy of the goals selected and may modify any portion of the associated heuristics, metrics, or
                    strategies. Modifications may include (step 2 in the Plan-Generation phase Figure 10.5):


                      •  pruning heuristics,
                      •  adjusting heuristic weights,
                      •  pruning metrics,
                      •  adjusting metric weights,
                      •  adjusting acceptable ranges for metric values, and
                      •  pruning strategies.

                    Managing Strategy Conflicts and Identifying Potential Strategy Problems
                    During Derivation

                    Given that there are often inherent conflicts leading to tradeoffs between high-level architectural
                    quality attributes, conflicts will naturally arise between suggested architectural transformations
                    during the derivation process. While it is not uncommon for multiple strategies to be suggested
                    during a particular stage of derivation (i.e., during a Derivation Plan Entry), a conflict arises when
                    the projected effects of different strategies will likely drive the derivation process into opposing
                    directions or stagnate the derivation progress altogether. For example, a strategy associated with
                    one goal may suggest combining services into a single class, while another strategy may become
                    active that suggests further dividing the existing classes into smaller classes.
                      During Plan-Generation, RARE detects conflicts based on explicit strategy-to-strategy conflict
                    declarations in strategy definitions. Regardless of the rationale for selecting a particular strategy
                    for a given heuristic, the strategy itself describes a deterministic transformation of the DRA’s
                    structure and content (e.g., combining classes, splitting classes, allocating functionality, allocat-
                    ing data); therefore, conflicts can be explicitly encoded at the strategy level because it is readily
                    apparent that two strategy transformations will likely interfere with each other (e.g., combining
                    DRACs vs. splitting DRACs). Nonetheless, due to the relationship between strategies and their
                    associated heuristics and goals, such strategy conflicts also suggest conflicts between respective
                    goals and heuristics. Correspondingly, RARE attempts to resolve these conflicts during “static
                    strategy evaluation” by suggesting to the architect that selected strategies be pruned based on their
                    associated goal priorities and heuristic weights.
                      After RARE generates a Derivation Plan based on the goal priorities and heuristic weights set
                    by the architect, it is highly likely that conflicts will exist between strategies based on the conflict
                    declarations in each strategy. RARE resolves strategy conflicts by suggesting that certain strategies
                    be pruned, retaining only strategies with higher priorities (i.e., where strategy priority is a function
   194   195   196   197   198   199   200   201   202   203   204