An Integrated Approach for Verification and Validation of Software Systems
CS395T – Spring 2005
1. Goal and Purpose
Correctness is the most critical concern in the software industry. Yet there does not exist an approach to verification and validation which integrates the several methods and tools for verification and validation. This course is an effort to provide such an integrated approach. This seminar is also the rehearsal for an undergraduate course on Integrated Verification and Validation of Software Systems which will be offered in Fall 2005. The lectures will cover the principles and methods. The participants in the course will follow an example through the steps in an integrated process. They will also evaluate the tools which are available for each aspect of the method.
The principles and mechanisms for validation and verification are language independent but the tools implementing the mechanisms are language specific. The lectures will be largely language independent but the examples and the outside assignments will use Java and C. A substantial portion of the lectures will be devoted to design for verification and validation and an integrated and comprehensive approach to specification of properties to be verified and evaluated.
The content for the course will include:
a. Design for test and verification.
b. Introduction to program analysis (static analysis methods).
c. Formal and complete approaches to testing:
Specification of properties, behaviors and assertion
Test coverage algorithms based on static analysis processes
Testing as a continuous process integrating runtime monitoring with conventional testing, model checking and proof-based verification.
d. Applied model checking:
Model checking as the endpoint of testing
e. Classical Dijkstra/Hoare and other proof-based verification.
This material is already covered in other courses and will not be repeated but the role of this material in a comprehensive approach to verification and validation will be covered.
f. Run-Time Monitoring
Methods and Tools
Automated compilation of property monitors.
g . Integration of all the methods in a coherent, complete structure for validation and verification.
h. Extension of verification and validation to security policy issues such as information flow.
i.. Failure analysis, fault-tolerance, practical self-stabilization, etc.
2. Student Prerequisites
Graduate standing in Computer Sciences. Students are advised to consult with the instructor before registering for this course.
3. Texts and Course Materials
There are many monographs and texts focusing on each topic concerning validation and verification (particularly testing) but no usable texts covering this span of material. There are survey and tutorial articles and a large amount of web-based material is available on each topic.
4. Course Work and Grading
The work product for each participant in the course will be either a case study in integrated verification and validation of a non-trivial software system or an evaluation of one or more tools for some aspect of the integrated process. The work products will be in the form of a presentation and a report on the case study or tool evaluation.
Grades will be assigned on the basis of the presentation, the report and content of the project.