Measurement is becoming more important and gaining acceptance in software development. In this modern-day quality era, customers demand complex software solutions of high quality. To ensure effective development, software development organizations must gain control over the entire development process. Measurement is the key to achieving such control and to making software development a true engineering discipline. Without effective use of measurements, progress in the tasks of planning and controlling software development will remain slow and will not be systematic.
Various software engineering techniques have emerged in the past decades: CASE tools, formal methods , software fault tolerance, object technology, new development processes, and the like. Software developers are faced with an enormous choice of methods, tools, and standards to improve productivity and quality. Relatively, there is little quantitative data and objective evaluation of various methods in software engineering. There is an urgent need for proper measurements to quantify the benefits and costs of these competing technologies. Such evaluations will help the software engineering discipline grow and mature. Progress will be made at adopting innovations that work well, and discarding or improving those that do not. Likewise, proposed process improvement practices must be tested and, substantiated or refuted via empirical studies. Software project assessments and process assessments ought to gather quantitative data on quality and productivity parameters and evaluate the link between process practices and measurable improvements.
The "state of the art" in measurements needs to be continually refined and improved, including all kinds of metrics and models that are discussed: software reliability models, quality management models and metrics, complexity metrics and models, and customer-oriented metrics and measurement. Good measurements must be based on sound theoretical underpinnings and empirical validity. Empirical validation is the key for natural selection and for these measurements to improve and mature. It may be the common ground for the different types of metrics and models that are developed by different groups of professionals.
To make their metrics program successful, development organizations ought to place strong focus on the data tracking system, the data quality, and the training and experience of the personnel involved. The quality of measurement practice plays a pivotal role in determining whether software measurement will become engrained in the state of practice in software engineering.
There are certainly encouraging signs on all these fronts.
What Is Software Quality?
Software Development Process Models
Fundamentals of Measurement Theory
Software Quality Metrics Overview
Applying the Seven Basic Quality Tools in Software Development
Defect Removal Effectiveness
The Rayleigh Model
Exponential Distribution and Reliability Growth Models
Quality Management Models
In-Process Metrics for Software Testing
Complexity Metrics and Models
Metrics and Lessons Learned for Object-Oriented Projects
Measuring and Analyzing Customer Satisfaction
Conducting In-Process Quality Assessments
Conducting Software Project Assessments
Dos and Donts of Software Process Improvement
Using Function Point Metrics to Measure Software Process Improvements
A Project Assessment Questionnaire