
Formal methods are mathematically based techniques used to specify, design and verify computer systems precisely. They express system requirements, operations and expected behaviour using logic, models and formal notation, reducing the ambiguity associated with natural-language descriptions. Techniques such as formal specification, model checking and theorem proving help determine whether a system satisfies properties such as correctness, safety, security and reliability. Formal methods are particularly valuable in safety-critical and security-sensitive systems, including banking, aviation, healthcare and railway control, where system failure may have serious consequences. However, they normally complement rather than replace conventional software testing because their conclusions depend on the accuracy and completeness of the original specification.
- Teacher: Godfrey Mlambo