|
Formal Methods in Software Development (326.053, SS 2006)
Time: Thursday, 8:30-11:45. Room: P 215. Start: March 9.
Exam: July 6, 10:00-11:30, P215.
This course gives a survey on the use of formal methods for the
development of reliable software. More specifically, we deal with
- specifying sequential programs and concurrent systems,
- computer-supported verification,
- extended static checking,
- model checking,
- proof-carrying code.
The course consists of two parts:
- a lecture part where the fundamental issues of the field are taught, and
- an exercise part where practical skills are trained using freely available software tools.
The grading of the course will be based on a couple of exercises and a final exam. To take part in the course, you have to enrol in the KUSSS system. If you also login in Moodle and register as a course participant, you will receive per email all
messages posted in the News forum.
| |
1 |
Contents
This is the tentative syllabus of the course which is going to be augmented by the course materials (slides and papers). - Introduction
- Specifying and Verifying Sequential Programs
- Specifying and Verifying Java Programs
- Specifying and Verifying Concurrent Systems
- Proof-Carrying Code
Proof-carrying-code (PCC) is a software mechanism that allows a host system to determine with certainty that it is safe to execute a program supplied by an untrusted source. This is achieved by attaching a condensed version of a formal proof to the program. In this part of the course we will examine the principles of PCC, explore different variants in the design of a PCC infrastructure, and take a closer look at some selected PCC infrastructures. The structure of this part of the course is as follows: - Motivation
- Basic Concepts
- An Example: CCured
- Components of the PCC Architecture
- Main challenges
- PCC for Resources
- Certificate Generation
- Summary
Additional Material
The password for this section is handed out in class. It is strictly forbidden to forward this password to anyone
not participating in the course.
|
|