Software Measurement and Quality Assurance
Module code: CO7095
A major aim of software engineering is to ensure the quality of the final product of the software development process. Quality is not a property that can be simply added at the end of the process. Instead, to achieve it one must consider how each stage contributes to the quality of the final software product. Quality assurance should therefore be seen as an intrinsic part of the software life-cycle. Software testing, inspections and reviews are some key mechanisms of quality control. However, these should be implemented as part of a wider Quality Assurance Plan.
The first step towards software quality is to understand what it is and how to measure it. The overall quality of a software product is a rather vague idea that cannot be measured directly. It can be seen as an amalgamation of different attributes – correctness, reliability, maintainability, ease of use etc. – which can be measured by developing and employing the right software metrics. Hence, the use of metrics is an important tool in quality assurance. Furthermore, quality cannot be considered without reference to the associated cost. Metrics can also be used to gauge the size and complexity of software and hence are employed in project cost estimation.
In this module we will explore in depth the issues of software quality assurance from an industrial perspective, exploring the techniques available and how these might be employed. We will focus on the idea of software process improvement, as seen in the SEI process Capability Maturity Model and SPICE (ISO/IEC 15504).