On successful completion of the module, students should be able to:
-
Explain the limitations of testing as a means to ensure correctness and evaluate the role of verification in software engineering
-
Create mathematically precise specifications and designs using logic-based specification languages
-
Prove the correctness of programs with respect to a specification using Hoare logic
-
Analyse the properties of formal specifications and designs
-
Use tools to verify properties of specifications and designs