COMP8130: Verification and Validation


(6 units)


First Semester


35 hours of lectures and tutorial sessions

Lecturer: Ian Hirst and Clive Boughton

Prerequisites

Enrolment in the MSE program is required.

It will be assumed that the student has had some minimal exposure to quality techniques for software systems.

Co-requisites

There are no corequisites.

Syllabus

Verification and validation (V&V) are terms that are often misused or narrowly applied. V&V is frequently taken to mean testing. In fact V&V is an area of systems software development that requires people with a broad technical understanding of software development within a systems context. V&V will be presented as a formal set of techniques that can be adopted/adapted across the systems/software development lifecycle in context with the determination of system and software criticality.

Assessment

There will be an approximately even split of marks between a final exam and two individual and/or team assignments.

Description

Verification and validation (V&V) is often considered to be a job for anyone who can't design or program software. However, anyone who is skilled in the practices of V&V requires a very broad and deep knowledge of all software/system development activities.

In this course V&V will be introduced from a perspective of management of quality and risk. Underpinning the possible approaches that may be taken to implement and execute a V&V program is the issue of criticality of any product. Products that are to exist and operate in environments where reliability and or safety are necessary cannot be developed in an ad hoc fashion. A V&V emphasis needs to be in place from the very beginning of a project that is to deliver such critical products.

Today, when dealing with V&V issues managers and developers have the advantage of past knowledge, in particular the effect of factors that can cause projects to fail or deliver much less than initially agreed and planned. Some of the topics that will be covered include:

Rationale

For the naive, serious V&V pursuits are seen to be necessary only when projects begin to show signs of significant failure. Decisions not to undertake a V&V program until such a stage on any development program is tantamount to negligence by project managers and leads. Stories and studies of failed software development projects are all too frequent. Many containing admissions of poor quality management. There is also much measured evidence to show that V&V applied from the beginning of a project has the potential to reduce rework significantly and to reduce the costs of many defects by two orders of magnitude.

The ongoing persistence to maintain poor practices on software projects among companies, their managers and developers is not surprising when they are inappropriately trained or educated and therefore are not likely to realise the importance of V&V. These poor practices need to be negated before significant improvements in the software industry will be recognised and achievable.

This course is intended to help educate and equip serious software developers with some approaches that will help them and their future development teams to identify what needs to be done to determine an appropriate V&V approach that is oriented to managing risk and quality based on the criticality characteristics of the software/systems they are building.

Ideas

This course will carry the main responsibility for:

Objectives

Upon completion of this course, the student will:

Topics

The following topics will be covered:

Technical Skills

A student will be able to undertake the planning of inspections, testing at all levels, determination of criticality and determination of V&V tasks according to criticality. Also, the student will be able to undertake a HAZOP analysis at the software level for helping understand/determine the level of V&V that is needed to ensure a reliable outcome.

Recommended Reading



Malcolm Newey 2005-05-13