|Software Engineering using
|TDA293/DIT270, LP1, HT2016|
About This Course
The course assistants Mauricio (room 5446, EDIT building), Raúl (room 5447, EDIT building) and Andreas (room 5461, EDIT building) offer scheduled office hours to help you with questions. You can make an appointment with one of them by email. It is not very likely that they are available if you just drop in.
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 one
The lectures and exercises are held in room EA, with the exception of Tuesday and Thursday
in the last week, where the room is EC.
Formal 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 be able to:
For the first part we use the book Principles of the Spin Model Checker, mostly Chapters 1-5. The book is available as E-book from the Chalmers network. Some additional material for that book, in particular the examples, can be found online. In particular, you find there a few pages "Supplementary material on version 6 of Spin", which corrects some outdated information from the main book.
For the second part, we do not have a proper course book. Still, there is highly relevant material in the book Verification of Object-Oriented Software: The KeY Approach (accessible from the Chalmers network). Chapter 1 in the book gives a general introduction in the philosophy behind KeY. In Chapter 10, written by the course teacher, is a tutorial on practical usage of the KeY prover. (Chapter 10 is however not fully up-to-date. We are currently writing a new version of the book and this chapter.)
|Home | Course | Schedule | Exam | Exercises | Labs | Eval | Tools||W. Ahrendt, Sep 20, 2016|