CMPE 422 Formal Methods In Software Eng Units: 3.00
Mathematical methods for describing software behaviour and structure. Topics include (but are not limited to) the following: requirements specification; Module specification: axiomatic, algebraic, and trace specification; program specification: abstract models; verification; specification-based validation.
(Lec: 3, Lab: 0, Tut: 0)
(Lec: 3, Lab: 0, Tut: 0)
Offering Term: F
CEAB Units:
Mathematics 14
Natural Sciences 0
Complementary Studies 0
Engineering Science 12
Engineering Design 10
Offering Faculty: Faculty of Arts and Science
Course Learning Outcomes:
- Use and explain formal specification languages based on, e.g., propositional logic, predicate logic, relational calculus, and finite state machines.
- Use and explain notations and techniques to define the semantics of a language precisely.
- Use and explain analysis techniques for formal specification languages such as theorem proving, satisfiability checking, automatic test input generation, and exhaustive state space exploration together with their capabilities and limitations.
- Use and explain tools supporting formal specification languages together with their capabilities and limitations.
- Design, construct, and analyze small formal specifications.
- Explain the advantages and disadvantages of formal specification languages and tools.
- Explain the role and potential uses of formal methods for different software development activities.