Software Engineering using Formal Methods |
TDA293/DIT270, LP1, HT2011 |
About This Course | |
People
The course assistants Ramona and Bart offer scheduled office hours to help you with questions:
If you have any general questions regarding the course, please post in our google group. This will reach all teachers and your fellow students. This way, there can be an exchange of questions, hints, and discussions among all of us. Please make use of this forum. If you are not yet a member of the group, you have to
All kinds of questions (and answers) on the content of the course are welcome. (But don't post lab solutions!) ExaminationTo pass the course a student must
Two courses in oneThe course is available both for Chalmers students and for GU students.
ScheduleThe workload for an average student is expected to be around 200h, evenly distributed over the 8 week course period that means around 25h/week. From these 25h/week only 6h/week are scheduled and 19h/week are your own responsibility. The lectures are held in room EA and the exercises in room EB Please check Lectures and Schedule for directions. Course ContentFormal Methods is a generic term for system design, analysis, and implementation methods that are described and used with mathematical rigor. The purpose is to construct, with high confidence, systems that behave according to their specification. The course introduces practically and theoretically the two most important styles of formal methods for reasoning about software: model checking and deductive verification. Each style will be introduced using a concrete tool. On the model checking side, the advantage of an automated method at the same time places restrictions on the kind of properties that can be verified. Accordingly, we concentrate on the verification of safety properties. The lectures cover the following topics:
For the deductive verification side, we use KeY, an integrated tool for the formal specification and verification of Java programs. The tool, which is partly developed at Chalmers and Gothenburg University, supports formal specification in the Java Modeling Language (JML), and translation from JML into logic. An interactive theorem prover is used to formally verify statements about specifications and programs. The lectures cover the following topics:
Familiarity with Java is encouraged. After successful completion of the course you will:
LiteratureFor the first part we use the book Principles of the Spin Model Checker, mostly Chapters 1-5. A more thorough and theoretical treatment of the material can be found in The SPIN Model Checker, but this is not required reading. For the second part, there is a book on the KeY system called Verification of Object-Oriented Software: The KeY Approach. You can access the online version from a Chalmers account. Chapter 1 in the book gives a general introduction in the philosophy behind KeY. In Chapter 10 gives many useful tips on practical usage.
| |
Home | Course | Schedule | Exam | Exercises | Labs | Eval | Tools | W. Ahrendt R. Bubel W. Mostowski , Aug 15, 2012 |