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