Topic outline
 
Formal Methods in Software Development (326.053, SS 2007)

Time: Thursday, 8:30-11:45.
Room: T 911.
Start: March 8.

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).
A class given by Hans-Wolfgang Loidl (LMU Munich), member of the Embounded project and of the former Mobile Resource Guarantees 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
Restricted Area
The password to this area is handed out in class.


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

Resource RISC Environment
Resource MS Windows Users

3
Exercises

4
Exam
The final exam will take place in written form on Tuesday, July 10, 8:30-10:00 in T112. No materials are allowed; don't forget to bring your student id card with you.

The exam will focus on small examples demonstrating your basic understanding of and practical proficiency with the following topics:
  • Hoare calculus and weakest precondition reasoning.
  • JML and extended static checking.
  • Modeling, specifying, and verifying concurrent systems.
  • Model checking, Proof-Carrying Code.

Latest News
13 Jul, 16:20
Wolfgang Schreiner
Results of Exercise 4 + Exam more...
26 Jun, 08:15
Wolfgang Schreiner
PCC Slides more...
13 Jun, 16:08
Wolfgang Schreiner
Slide Set "Verifying Concurrent Systems" more...
8 Jun, 08:38
Wolfgang Schreiner
Exam July 10, 8:30-10:00, T112 more...
7 Jun, 17:29
Wolfgang Schreiner
Exercise 3 results more...