UCL Home Page
Home Admissions Students Alumni Research Business People Help
 

 


| STUDENTS > Validation and Verification |

Validation and Verification

Note: Whilst every effort is made to keep the syllabus and assessment records correct for this course, the precise details must be checked with the lecturer(s).


Code: GS03 (Also taught as: 4023)
Year:4
Prerequisites:An understanding of the basics of programming and software engineering.
Term: 2
Taught By: Graham Roberts (50%)
Alessio Lomuscio (50%)
Aims:The course will train students in the principles and techniques of validating and verifying complex software systems. The training will be at an intellectually demanding level and will cover not only the state-of-the practice in validation and verification, but also the most significant trends, problems and results in validation and verification research.
Learning Outcomes:On completion of the course unit, the successful student should have a good knowledge and understanding of basic notions of correctness, consistency, faults and failures, testing and execution trace analysis. The successful student should also be able to understand the use of logic as a formal language for specification of systems, to understand the use of the main verification techniques used in symbolic model checking, to understand the architecture and be able to use a main tool (such as SMV) to verify simple systems. Further, successful students will be able to appreciate the limitations of the current tools and have insights in ongoing advanced research topics to overcome them..

Content:

Basic conceptsSoftware engineering lifecycle context
Correctness
Consistency
Faults
Errors
Failures
Static and dynamic analysis
Introduction to static analysis
Formal verificationAxiomatic specification
Hoare triples
Verification conditions
Proofs of correctness
Model checkingState-based program models
Finite-state models
Temporal logic specification
Symbolic model verification
Introduction to dynamic analysis
Basic testingThe testing lifecycle
Control-flow program models
Data-flow program models
Coverage (whitebox) testing
Specification-based (blackbox) testing
Regression testing
Advanced testingOperational profiles
Reliability testing
Performance and scalability testing
Regression testing
Fault injection
Mutation analysis
Testing concurrent and distributed programs
Testing component-based software
Execution analysisProgram instrumentation
Assertion checking
Trace analysis

Method of Instruction:

Lectures, coursework, student-led seminars

Assessment:

The course has the following assessment components:

  • Written Examination (2.5 hours, 85%)
  • Coursework Section (2 pieces, 15%)
To pass this course, students must:
  • Obtain at least 40% on the coursework component
  • Obtain an average of at least 50% when the coursework and exam components of a course are weighted together
The examination rubric is:
Answer THREE questions.

Resources:

Logics in Computer Science: Modelling and Reasoning about Systems. Huth and Ryan. Cambridge University Press. Second Edition, 2004

 
Last updated: 6 September, 2005 Maintained by Jill Saunders