Topic outline
 
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:
  1. a lecture part where the fundamental issues of the field are taught, and
  2. 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.

Forum 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).
This section of the course is given by Hans-Wolfgang Loidl of the University of Munich who has worked in the Mobile Resource Guarantees project and the EmBounded project.

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:
  1. Motivation
  2. Basic Concepts
  3. An Example: CCured
  4. Components of the PCC Architecture
  5. Main challenges
  6. PCC for Resources
  7. Certificate Generation
  8. 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.

2
Software
The following software is used in the course:
All of this software is freely available under Linux (local copies available, see also the information for MS Windows Users). You can install and run it on your own PC (but I cannot give installation support) or use the software installation in the RISC Environment (supported and recommended).

Resource RISC Environment
Resource MS Windows Users
Resource Course Software for Linux

3
Exercises
A couple of exercises are distributed throughout the course (partially theoretical, partial practical using the presented software).
Exercise Grades (password protected)