The Metric
superclass is subclassed by ActualMetric
and
DerivedMetric
. In this model, an ActualMetric
holds any metrics
data, whereas a DerivedMetric
acts as a proxy to another metric so that
metrics data does not have to be duplicated.
Five different range methods are provided under the abstract Range
superclass. IntegerRange
describes the most simple case, a range between
two integer values. RealRange
provides the same functionality; however,
real numbers are an acceptable input. The other three types of range all use maps
to store the ranges, they have a common superclass MappedRange
.
OrderedNominalRange
is the simplest of these implementations, this range
simply consists of a set of Integer to String pairings.
CompositeIntegerRange
and CompositeRealRange
allow ranges,
IntegerRange
and RealRange
respectively, to be mapped
to String values. This allows a specific range of values to be specified in a certain
manner. (E.g. LOC in a method, Good 1-15, Ok 16-20, Bad 21-1000 - using
CompositeIntegerRange
)