Über das neue CPSA® – Advanced Level Modul FM: Formale Methoden
Ein Interview mit den Kuratoren Michael Sperber und Lars Hupel
Am 27. Februar 2025 führte das iSAQB das neue Advanced Level-Modul Formale Methoden (FM) ein.
Das Modul „FM – Formale Methoden“ vermittelt Softwarearchitekten, wie sie die Korrektheit des Designs und der Implementierung eines Systems durch mathematische Beweise sicherstellen können. Das Modul konzentriert sich auf sicherheitskritische, sensible oder wirtschaftlich vitale Systeme und geht über traditionelle Architektur- und Testmethoden hinaus, indem es formale Techniken bietet, um zu überprüfen, dass Software ihren Anforderungen entspricht. Durch die frühzeitige Integration formaler Methoden in der Designphase können Architekten verifizierbare Modelle erstellen, die ein höheres Maß an Softwarequalität und Zuverlässigkeit gewährleisten.
Wir haben ein Interview mit den Kuratoren, Michael Sperber und Lars Hupel, geführt, in dem sie tiefere Einblicke in das Modul geben.
Warum ist das Thema „Formale Methoden“ aus eurer Sicht so wichtig, dass es ein eigenes Modul im CPSA Advanced-Programm verdient?
Softwaresysteme steuern immer mehr Aspekte unseres Lebens, und damit wird zunehmend die Sicherheit dieser Systeme relevant, und zwar im doppelten Sinne: Die Sicherheit, wenn es um Leib, Leben oder
unternehmenskritische Bereiche geht, und die Sicherheit vor Einbrüchen, Sabotage und Datenenlecks. Bei solcher Software wollen wir, dass die Software bestimmte Anforderungen garantiert erfüllt. Dafür reichen einfache Tests nicht aus, die ja in der Regel nur bestimmte Szenarien abdecken – wir wollen, dass die Software sich in allen Szenarien korrekt verhält. Es braucht die Anwendung mathematischer Techniken – sogenannter formaler Methoden, und die waren bisher eine Lücke im Portfolio der Advanced-Schulungen, die wir jetzt geschlossen haben.
Welche konkreten Vorteile bieten formale Methoden im Vergleich zu traditionellen Softwareentwicklungsansätzen, besonders in sicherheitskritischen Bereichen?
Sie leisten etwas, was traditionelle Ansätze eben nicht leisten: Sie geben uns Garantien, statt einem bloßen Versprechen, dass ein Sicherheitsproblem mit dem nächsten Update behoben wird.
Wie unterstützt das Modul Softwarearchitekten dabei, die Systemgenauigkeit und ‑korrektheit in komplexen Projekten zu gewährleisten?
Der erste wichtige Aspekt ist, die Teile eines Systems zu identifizieren, bei denen die Anwendung bei formaler Methoden sich lohnt. Der zweite ist, abhängig von den Anforderungen die richtige formale Methode auszuwählen: Inzwischen gibt es ja einen bunten Strauß davon. Schließlich geht es außerdem darum, in einem Projekt die technischen Voraussetzungen zu schaffen, dass formale Methoden effektiv zum Einsatz kommen können.
Formale Methoden sind bekannt für ihren mathematischen Ansatz – wie lässt sich dieser in die Praxis umsetzen, ohne die Agilität der Entwicklung zu beeinträchtigen?
Prinzipiell sind formale Methoden kein Widerspruch zur Agilität. Allerdings muss man ein ein paar grundlegende Überlegungen zum Anfang des Projekt treffen. Das liegt daran, dass es aufwendig ist, formale Methoden nachträglich anzuwenden. Will ich zum Beispiel die Korrektheit eines bestimmten Stücks Codes beweisen, dann muss der in der Regel auf eine bestimmte Art und Weise geschrieben sein, und auch die Programmiersprache spielt eine Rolle. Viel effektiver ist es, die formalen Methoden begleitend zum Entwicklungsprozess zu benutzen und das Tooling dafür in die CI einzubauen. Damit ist es auch agil.
Welchen Einfluss haben formale Methoden auf die langfristige Wartbarkeit und Erweiterbarkeit von Softwarearchitekturen?
Der prominente Informatiker Conal Elliott hat den Satz geprägt „Only correctness composes“: Wenn ein Softwarebaustein eine Eigenschaft sicher erfüllt, dann ist es vollkommen egal, wie das passiert, und ich kann es mit anderen solchen Bausteinen sicher kombinieren, ohne dass ich mir Sorgen um die innereren Details machen muss. Das fördert die Entkopplung der Bausteine und ist damit großartig für die Architektur.
Welche Voraussetzungen sollte man für dieses Modul mitbringen, insbesondere im Hinblick auf mathematische Kenntnisse und Vorkenntnisse in Softwarearchitektur?
Gymnasialmathematik genügt. Die Schulung ist prinzipiell unabhängig von den anderen Advanced-Schulungen, passt aber besonders gut zu FUNAR und EMBEDDED: Zu FUNAR, weil formale Methoden in der Praxis eh auf funktionaler Programmierung aufbauen und EMBEDDED, weil es im Embedded-Bereich häufig erhöhte Anforderungen an Qualitäten gibt, bei denen formale Methoden helfen können.