Software Measurement and Quality Assurance

Module code: CO7095

Module co-ordinator: Neil Walkinshaw

A major aim of software engineering is to ensure the quality of the final product of the software development process. Quality is not an extra that can be added at the end of the process. To achieve it one must consider how each stage contributes to the quality of the final product. Quality assurance should be seen as an intrinsic part of the software life-cycle. One key mechanism of quality control is software testing, another is inspections and reviews. However, these should be implemented as part of a wider Quality Assurance Plan.

The first step towards quality is to understand what it is and how to measure it. The overall quality of a 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 the right software metrics. The use of metrics is thus 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 look in particular at the idea of software process improvement, as seen in the SEI process Capability Maturity Model and SPICE (ISO/IEC 15504).


  • 30 one-hour lectures
  • 10 one-hour seminars
  • 5 one-hour tutorials


  • Exam, 3 hours (60%)
  • Coursework (40%)