Highly dependable software is, by nature, predictable. For example, one can predict with confidence the circumstances under which the software will work and under which it will fail. Empirically-based approaches to creating predictable software are based on two assumptions: (1) historical data can be used to develop and calibrate models that generate empirical predictions, and (2) there exists relationships between internal attributes of the software (i.e. concrete attributes such as size, effort, and defects) and external attributes of the software (i.e. abstract attributes such as quality or time to failure.). Software measurement validation is the process of determining a predictive relationship between available internal attributes and correspondingly useful external attributes.
The general objective of this research is to design, implement, and validate software measures that support: (1) identification of fault-prone modules, enabling more efficient and effective allocation of quality assurance resources, and (2) an incremental software development method through incremental and developer-specific notifications and analyses.
Empirical assessment of these methods and measures during use on the Mission data System project at Jet Propulsion Laboratory will advance both the theory and practice of software measurement validation. The research will also produce an open source software system for software measurement validation.