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:
- Inspections
- HAZOP analysis
- Important aspects of testing
- How criticality affects the level of required V&V program.
- The cost of V&V
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:
- presenting the main ideas of software verification and validation from a semi-formal viewpoint,
- developing experience in verification and validation techniques,
- providing experience with identifying and managing level of risk according to system criticality.
Objectives
Upon completion of this course, the student will:
- know specific approaches to implementing a V&V program,
- be able to understand what level of V&V program needs to be implemented,
- understand the relationship between V&V, system criticality, risk and quality.
Topics
The following topics will be covered:
- Quality
- System Criticality
- Risk
- Inspections
- Testing
- Test Cases
- Test Procedures
- HAZOP analysis
- Independent V&V
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
- Edward Kit.
Software Testing in the Real World: Improving The Process.
ACM Books/Addison Wesley Professional, 1995.
- R.O. Lewis.
Independent Verification and Validation: A lifecycle engineering
approach for quality software.
Wiley, New York, 1992.
- Robert M. Pirsig.
Zen and the Art of Motorcycle Maintenance: An Inquiry into
Values.
Bantam, 1980.
- G.G. Schulmeyer and G.R. McKenzie.
Verification and Validation of Modern Software-Intensive
Systems.
Prentice Hall, Englewood Cliffs, New Jersey, 2000.
- G. Weinberg.
Software Quality Management.
Dorset House Publishing, 1994.
- David A. Wheeler, Bill Brykczynski, and Reginald N. Meeson Jr, editors.
Software Inspection: An Industry Best Practice.
IEEE Computer Society, 1996.
Malcolm Newey
2005-05-13