Introduction to Software Metrics and QA
Software metrics is a term that embraces many activities, all of which involve some degree of software measurement with the ultimate objective of improving software quality. These activities include the following:
- Cost and effort estimation models and measures
- Productivity models and measures
- Data collection
- Quality models and measures
- Reliability models
- Performance evaluation and models
- Structural and complexity metrics
- Capability maturity assessment
- Management by metrics
- Evaluation of methods and tools
Each of these activities has evolved into a significant subject area in its own right within the broader domain of software engineering: Our objective is to review these activities within the context of software quality assurance. Thus we begin with a brief overview of software quality assurance within the traditional software life-cycle. Next we explain the role of the above measurement activities within the quality assurance life-cycle processes. Before providing more details of the key individual software metrics activities we describe a rigorous framework for software measurement that enables us to look at the subject from a unified perspective. A number of key software metrics are considered in detail while we describe how to collect key measurement data relating software faults, failures and changes. Finally, we describe various popular measurement-based frameworks and standards for software quality assurance.
While this chapter provides an introduction and overview of software metrics for quality assurance, it is beyond its scope to deal with all of the relevant topics in detail. Full details of all the activities, metrics and models mentioned in this chapter may be found in [Fenton and Pfleeger 1996]
Last modified: July 28, 1999.