[The University of Leicester]

Department of Mathematics & Computer Science

Next: CO3096 Compression Methods for Multimedia Up: Year 3 Previous: CO3014 Mathematics and Computer Science Project

CO3095 Software Measurement and Quality Assurance

CO3095 Software Measurement and Quality Assurance

Credits: 20 Convenor: Simon Ambler Semester: 1

Prerequisites: essential: C01003, C01004, C01006 or EG207+EG223, CO2006 desirable: CO2015
Assessment: Coursework: 40% Three hour exam in January: 60%
Lectures: 36 Problem Classes: 6
Tutorials: none Private Study: 96
Labs: none Seminars: none
Project: none Other: none
Surgeries: 12 Total: 150

Subject Knowledge


The module approaches the issue of quality assurance in the software development process at an advanced level. This includes a rigorous account of the strategies for software testing and quality control, and the introduction of software metrics for quality assurance and project cost estimation. The module is focussed around the notion of software process improvement.

Learning Outcomes

Students understand how quality issues affect each aspect of the software development life-cycle. They will know appropriate strategies for software testing and validation, and how to implement them. They will understand the theory of software metrics and have some experience of making software measurements in practice. They will be able to relate quality to the current standards for process improvement.


Class sessions together with course notes; recommended textbooks; worksheets; additional hand-outs including articles, case studies and research papers; web resources.


Marked coursework, group presentation, written examination.

Subject Skills


Students will learn how to research current issues in software quality assurance, and how to present their findings. They will learn how to turn theoretical ideas into practical process improvement steps in an industrial context.

Learning Outcomes

Students will be able to research a given topic using a variety of sources including books, current articles and research papers and web-resources. They will be able to give a written account of their findings (suitable for inclusion in a company report). They will be able to give a seminar-style presentation of their findings using appropriate audio-visual aids.


Class sessions together with worksheets. Library and web resources.


Marked coursework, group presentation, written examination.

Explanation of Pre-requisites

The module will build on many of the ideas that are introduced in C01006 and CO2006 so these modules are essential. The sections on testing will also require experience of programming in Java. Software Engineering is as much a practical subject as an intellectual discipline so it is an advantage to have had the experience of working in a team on the CO2015 Software Engineering Project.

Course Description

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, and so on; 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.

This module will look in depth at the issues of software quality assurance from an industrial perspective, exploring the techniques available and how these might be employed. It will focus around the idea of software process improvement, as seen in the SEI process Capability Maturity Model and SPICE (ISO/IEC 15504).


Quality issues in the life-cycle model. Quality planning and management. Quality at the requirements stage: negotiation, setting achievable goals. Aspects of quality: reliability, maintainability, correctness, usability. Risk analysis and management.

Theory of measurement. Project size/cost estimation. Algorithmic models: COCOMO, Putnam, etc. Function points and object points. Quality metrics, cost metrics and process metrics. Statistics: data collection and analysis.

Code walk-through, inspections, reviews. Comparison of different approaches. Effective follow-up: collection of data, review feedback.

Different levels: unit testing, integration testing, system testing, validation. Structural testing: coverage techniques. Behavioural testing: domain testing, finite state testing. Mutation and fault seeding. Tools and instrumentation.

Process improvement
SEI process Capability Maturity Model. Standards: ISO 9001, SPICE (ISO/IEC 15504). Cleanroom approach. Formal methods.

Reading list


Edward Kit, Software Testing in the Real World: improving the process, ACM Press, Addison Wesley (1995).


N. E. Fenton, Software Metrics: A Rigorous Approach., Chapman & Hall (1991).

Tom Gilb and Dorothy Graham, Software Inspection, . Addison Wesley (1993).

Pankaj Jalote, CMM in Practice: processes for executing software projects at Infosys, Addison Wesley (2000).

R. Pressman and Darrel Ince, Software Engineering -- A Practitioner's Approach, European Adaptation, 5th Edition, McGraw Hill (2000).

Sami Zahran, Software Process Improvement: practical guidelines for business success, Addison Wesley Longman (1998).


Barry W. Boehm, Chris Abts, A. Winsor Brown, Sunita Chulani, Bradford K. Clark, Ellis Horowitz, Ray Madachy, Donald Reifer and Bert Steece, Software Cost Estimation with COCOMO II, Prentice-Hall (2001).

William A.  Florac and Anita D. Carleton, Measuring the Software Process, Addison-Wesley (1999).

T. Gilb, Principles of Software Engineering Management, Addison-Wesley (1988).

Watts S. Humphrey, Introduction to the Personal Software Process, Addison-Wesley (1997).

Stephen H. Kan, Metrics and Models in Software Quality Engineering, Addison Wesley (1995).

Don Libes, Exploring Expect: A Tcl-based Toolkit for Automating Interactive Programs, O'Reilly (1995).

Suzanne Robertson and James Robertson, Mastering the Requirements Process, ACM Press, Addison Wesley (1999).

Rini van Solingen and Egon Berghout, The Goal/question/metric Method, McGraw-Hill (1999).

Walker Royce, Software Project Management: a Unified Framework, Addison Wesley (1998).


Course notes, web page, study guide, worksheets, handouts, lecture rooms with OHP and data-projector, past examination papers.

Module Evaluation

Course questionnaires, course review.

Next: CO3096 Compression Methods for Multimedia Up: Year 3 Previous: CO3014 Mathematics and Computer Science Project

[University Home] [MCS Home] [University Index A-Z] [University Search] [University Help]

Author: N. Rahman, tel: +44 (0)116 252 3902
Last updated: 2003-09-23
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.