Page 203 -
P. 203

188     BARBER  AND  GRASER
                    Figure 10.11  Metric Performance Calculation

                                          performance : HeurMetric → {0.0,2.5,5.0,10.0}
                     performance : HeurMetric → {0.0,2.5,5.0,10.0}
                                   normalized performance value based on acceptable ranges and a summarized value for a
                                   metric under a heuristic.
                                                                              ≤
                                                       LI  LMN   P OG        D  LMN  ≤  P UG
                                                                           MN
                                                                          L
                                                       L  I    P OG        ≤  P UG
                                                                              D ≤
                             SHUIRUPDQFH    K  P =         LMN     LMN   LMN
                                                
                                                                              ≤
                                                       L  I  LMN   P OG        D  LMN  ≤  P UG
                                                                           LMN
                                                          LI       LMN  LMN   D  OG   RU P <  LMN  P >  LMN   D       UG
                     a ijk  : float   aggregate value of metric value set V ijk  for metric m ijk  based on summarization rule
                                   m ijk .sumRule
                                   if m .sumRule = MIN then a ijk  = min(V )
                                     ijk
                                                             ijk
                                   if m ijk .sumRule = MAX then a ijk  = max(V ijk )
                                   if m ijk .sumRule = AVG then a ijk  = avg(V ijk )
                     V ijk  : {v ijk  : float }   set of values produced by calculating metric m ijk  for every relevant element in the DRA,
                                   whether that be (1) the DRA, (2) every DRAC, (3) every attribute, (4) every service, or
                                   (5) every subsystem.
                                   If m .m.scope = DRA then
                                     ijk
                                          V ijk  = {v ijk  : float • v ijk  = m ijk .m.calc(DRA)}
                                   If m ijk .m.scope = DRAC then
                                          V ijk  = {v ijk  : float • ∀d : DRAC | d ∈ DRA • v ijk  = m ijk .m.calc(d)}
                                   If m .m.scope = SVC then
                                     ijk
                                          V ijk  = {v ijk  : float • ∀s : Svc | s ∈ DRA • v ijk  = m ijk .m.calc(s)}
                                   If m ijk .m.scope = ATTR then
                                          V ijk  = {v ijk  : float • ∀a : Attr | a ∈ DRA • v ijk  = m ijk .m.calc(a)}
                                   If m ijk .m.scope = SUBSYS then
                                          V ijk  = {v ijk  : float • ∀b : Ssubsys | b ∈ DRA • v ijk  = m ijk .m.calc(b)}
                    set V , the resulting value is compared to the respective acceptable ranges to yield a performance
                       ijk
                    value of 0, 2.5, 5.0, or 10.0. In summary, a metric contributes to the evaluation of the architecture
                    with respect to a particular goal based on (1) the metric’s current value; (2) the rule for aggregat-
                    ing the metric to the DRA level if the metric is calculated based on characteristics of DRACs,
                    subsystems, services, or attributes (e.g., “Coupling Between Objects” is calculated for each class
                    in the DRA and the average, maximum, or minimum is used across all classes); (3) the acceptable
                    ranges defined by the architect; and (4) the weight of that metric.
                      Ranges for well-known metrics in the RARE knowledge base were initialized based on sug-
                    gestions from the literature (Lorenz and Kidd, 1994; Rosenburg and Hyatt, 1997). Other metrics
                    are unique to the RARE process, and initial values were determined from experiences applying
                    this process manually (Barber, 2004). These values can be adjusted by the architect in the KB and
                    in the Derivation Plan. Modifying a Derivation Plan affects only the respective architecture be-
                    ing derived, while adjusting KB values will be reflected in each Derivation Plan created from the
                    KB. As RARE has been applied to various example domains (Barber and Graser, 2001; DARPA,
                    2000), empirical observations have resulted in fine-tuning adjustments to the deviation ranges. In
                    particular, initial acceptable ranges may have proved too narrow, such that achieving such a range
                    was unrealistic. For example, assume an acceptable “Degree of Coupling” is defined to be less
                    than 5. Thus, if the architecture exhibited a “Degree of Coupling” greater than 5, RARE strategies
                    would be activated to refine the architecture. However, by achieving a “Degree of Coupling” less
   198   199   200   201   202   203   204   205   206   207   208