A large number of software product metrics have been proposed in software engineering. We use the term
metric
here to be consistent with prevailing international standards. Product metrics quantitatively characterize some aspect of the structure of a software product, such as a requirements specification, a design, or source code. They are also commonly collectively known as
complexity metrics
.
While many of these metrics are based on good ideas about what is important to measure in software to capture its complexity, it is still necessary to systematically validate them.
Two types of validation are recognized internal and external.
Internal validation
is a theoretical exercise that ensures that the metric is a proper numerical characterization of the property it claims to measure. Demonstrating that a metric measures what it purports to measure is a form of theoretical validation. Typically, one defines the properties of the attribute that is to be measured, for example, the properties of module coupling. Then one demonstrates analytically that the product metric satisfies these properties.
External validation
involves empirically demonstrating that the product nature is associated which is important external metter or an improvement is shown above. Internal and external validation are also commonly referred to as
theoretical
and
empirical
validation respectively
This article presents a comprehensive methodology for validating software product metrics. Our focus will be limited to
empirical
validation.