About the New CPSA® – Advanced Level Module FM: Formal Methods
An Interview with the curators Michael Sperber and Lars Hupel
On February 27, 2025, the iSAQB introduced the new Advanced Level module Formal Methods (FM) .
The “FM — Formal Methods” module teaches software architects how to ensure the correctness of a system’s design and implementation through mathematical proofs. Focusing on safety-critical, sensitive, or economically vital systems, this module goes beyond traditional architecture and testing methods, offering formal techniques to verify that software adheres to its requirements. By integrating formal methods early in the design phase, architects can create verifiable models, ensuring a higher level of software quality and reliability.
We conducted an interview with the curators, Michael Sperber and Lars Hupel, where they provide deeper insights into the module.
Why do you believe the topic of “Formal Methods” is important enough to warrant its own module in the CPSA Advanced program?
Software systems control an increasing number of aspects of our lives, and this makes their safety and security ever more relevant: These software systems need to keep our lives and health safe, and be resistant against sabotage and data exfiltration. With such software we want guarantees that they actually fulfill certain requirements. Automated tests are not sufficient for that, as they only cover certain scenarios — but we want the system to behave correctly in all scenarios. This requires applying mathematical techniques — so-called formal methods. So far, this was a gap in the Advanced portfolio, and we have now closed it.
What specific advantages do formal methods offer compared to traditional software development approaches, especially in safety-critical areas?
They achieve something that traditional techniques don’t: They give us guarantees, instead of a mere promise that the “next update” will fix the current security problem.
How does the module help software architects ensure system accuracy and correctness in complex projects?
The first important aspect is to identify those parts of the system where applying formal methods pays off. The second one is to pick the right method depending on the requirements — there is a large collection of such methods. Finally, the training is about making the system architecture amenable to applying formal methods effectively.
Formal methods are known for their mathematical approach – how can this be applied in practice without compromising the agility of development?
In principle, formal methods are not in opposition to agility. However, software architects need to give formal methods some basic consideration at the outset of a project. Otherwise, applying them later may be much more costly. For example, to prove the correctness of a piece of code, it has to be written in a certain way — the programming language also plays a role. Therefore, it is much more effective to use formal methods concomitantly with the development process, and to integrate its tooling into CI. That makes formal methods quite agile.
What impact do formal methods have on the long-term maintainability and scalability of software architectures?
Conal Elliott, a prominent computer scientist, coined the phrase “only correctness composes”: If a building block is guaranteed to have a certain property, it does not matter how it does that, and it is safe to combine it with other such building blocks without worrying about their inner details. This fosters decoupling the building blocks and is great for the architecture.
What prerequisites should one have for this module, particularly regarding mathematical knowledge and experience in software architecture?
High-school math is enough. In principle, the training is independent from other Advanced trainings, but it is a particularly good fit for FUNAR and EMBEDDED: FUNAR because formal methods in practice build on functional programming, and EMBEDDED because embedded systems often have heightened requirements on qualities where formal methods can help.