[The University of Leicester]

Department of Mathematics & Computer Science



Next: MC396 Compression Methods for Multimedia Up: Year 3 Previous: MC384 Stochastic Modelling

MC395 Software Measurement and Quality Assurance


MC395 Software Measurement and Quality Assurance

Credits: 20 Convenor: Simon Ambler Semester: 1

Prerequisites: essential: MC103, MC104, MC106 or EG207+EG223, MC206 desirable: MC215
Assessment: Continual assessment: 40% 3 hour examination: 60%
Lectures: 36 Problem Classes: 6
Tutorials: none Private Study: 96
Labs: none Seminars: none
Project: none Other: none
Surgeries: 12 Total: 150

Explanation of Pre-requisites

The module will build on many of the ideas that are introduced in MC106 and MC206 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 MC215 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).

Aims

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

Transferable Skills

Syllabus

Quality
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.

Measurement
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.

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

Testing
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

Essential:

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

Recommended:

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).

Background:

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

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

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

Details of Assessment

The continual assessment will be on three written essays and a group presentation.

The written examination has six questions and candidates can obtain full marks for good answers to four questions.


Next: MC396 Compression Methods for Multimedia Up: Year 3 Previous: MC384 Stochastic Modelling

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

Author: S. J. Ambler, tel: +44 (0)116 252 3884
Last updated: 2001-09-20
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.