Software Development for Safe and Secure Systems (Course)

Lecturer: Prof. Dr. Stefan Lucks

The development of safe and reliable systems is a challenging task for both system architects and software developer.
Due to the raising awareness of the politics and mass media, IT-security is becoming an increasingly important aspect of the IT industry.

The course introduces the programming language Ada'05,which is considered particularly suitable for implementing secure and reliable systems. In addition, methods from the field of software engineering are presented, which serve the safety, reliability and maintainability of software systems.

Class Meeting:

Weekly, every Wednesday from 11:00 to 12:30 (beginning on October 12th, 2016)

Seminar room 014, B11 (Bauhausstraße 11)


  • Chapter 0: Introduction
  • Chapter 1: A Crash Course in Ada
  • Chapter 2: Software Testing
  • Chapter 3: Design by Contract
  • Chapter 4: The Hoare Logic
  • Chapter 5: Welcome to SPARK 2014
  • Chapter 6: Distributed Systems and Concurrency
  • Chapter 7: Tasks – Concurrency in Ada
  • Chapter 8: Failure Tolerant and Reliable Systems
  • Chapter 9: Compiler Directives Representation Clauses
  • Chapter 10: On Hacking and the Theory of Formal Languages
  • Chapter 11: Exkurs: The Story of Fibo and Nacci


  • Ada Distilled (Richard Riehle)
  • Ada 95: The Craft of Object-Oriented Programming (John English)
  • The Clean_Up Package
  • Richard E. Pattis, Textbook Errors in Binary Searching (1988)
  • p.gpr: a gnat project file for SPARK

Video Courses:

  • AdaCore currently offers short video courses on Overview and Basic Concepts of Ada

More Resources:

  • Download GNAT GPL and SPARK GPL Editions
  • The Ada Programming Wikibook
  • The Ada Information Clearinghouse and its Resources for Learning Ada


Oral examination

Target audience:

Master Computer Science and Media