Provably Correct Software

7.5 credits

Syllabus, Master's level, 1DL017

Code
1DL017
Education cycle
Second cycle
Main field(s) of study and in-depth level
Computer Science A1N
Grading system
Pass with distinction (5), Pass with credit (4), Pass (3), Fail (U)
Finalised by
The Faculty Board of Science and Technology, 3 November 2008
Responsible department
Department of Information Technology

Entry requirements

120 credits including Program design, Algebra, Logic and Proof Techniques, Algorithms and Data Structures, Programming Theory (or equivalent courses). Semantics of Programming Languages is recommended.

Learning outcomes

In order to pass, the student must be able to

  • understand how formal methods fit into the software development process,
  • explain the principles of model-based specification and refinement-based program development,
  • explain the B-method or other used method,
  • understand and independently write model-based formal specifications,
  • independently carry out formal development of programs with tool support.

Content

Overview of specification techniques. Model-based specification. The B specification notation or similar notation. The program development process. Verification and validation. Simulation and other methods to validate specifications. Implementation models. Overview of axiomatic semantics. Invariants. Weakest preconditions. Verification by refinement. The B-method or similar method. Proof obligations. Proof techniques. Tools for formal software development.

Instruction

Lectures and seminars. During the course, students will carry out a program development project including writing a formal specification and developing provably correct program code.

Assessment

Seminars (3 ECTS credits) and the project (4.5 ECTS credits).

FOLLOW UPPSALA UNIVERSITY ON

Uppsala University on Facebook
Uppsala University on Instagram
Uppsala University on Youtube
Uppsala University on Linkedin