|
Formal Methods in Software Development (326.053, SS 2005)
Time: Thursday, 8:30-11:45
Room: KHG II
Start: March 10 Final Exam: the written exam will take place on Wednesday, October 12 , 17:15-18:45 in T211. No material is allowed, please do not forget your Kepler identity card. Questions will focus on the theoretical background (Hoare calculus, predicate transformers, concurrency/model checking) and on small practical exercises (JML specifications, verifications of small code sniplets, modeling of and reasoning about small concurrent systems).
To take part in the course, you have to register in the KUSSS system.
Please also register in Moodle ("Login" at the upper right corner) such that you will receive per email all announcements that I post in the "News Forum". You may use the "Discussion Forum" for your own purpose.
Please note the changed lecture rooms (see the calendar and the announcement in the "Discussion Forum").
| |
1 |
Contents and Organization
This course gives a survey on the use of formal methods for the development of reliable software. More specifically, we will deal with
- program specification,
- extended static checking,
- model checking,
- computer-supported proving,
- 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.
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
Proof-Carrying Code
Applying formal methods in a distributed world
This part is given by Hans-Wolfgang Loidl who works in the MRG (Mobile Resource Guarantees) project at the LMU university in Munich.
- General PCC
- Motivation
- Basic Concepts
- Main challenges
- Components of the PCC Architecture
- An Example
- Concrete infrastructures
- Details of PCC infrastructures
- CCured
- ConCert/Hemlock
- Foundational PCC
- Other relevant projects
- PCC for resources
- MRG: PCC for Resources
- Camelot: Our High-level Language
- Space Inference
- Grail: Our intermediate language
- A Program Logic for Grail
- Termination Logic
- Heap Space Logic
- A PCC infrastructure for resource bounds
- Hands-on Session
- The MRG infrastructure
- The CCured infrastructure
- The Ciao infrastructure
- Other stuff
|
|
7 |
|
|
8 |
Additional Material
The password for this section will be handed out in class. It is strongly forbidden to forward this password to anyone
not participating in the course.
|
|