CMPE 223 Software Specifications Units: 3.00
Introduction to techniques for specifying the behaviour of software, with applications of these techniques to design, verification and construction of software. Logic-based techniques such as loop invariants and class invariants. Automata and grammar-based techniques, with applications to scanners, parsers, user-interface dialogs and embedded systems. Computability issues in software specifications.
(Lec: 3, Lab: 0, Tut: 0)
(Lec: 3, Lab: 0, Tut: 0)
Offering Term: W
CEAB Units:
Mathematics 0
Natural Sciences 0
Complementary Studies 0
Engineering Science 24
Engineering Design 12
Offering Faculty: Faculty of Arts and Science
Course Learning Outcomes:
- Design specifications for the functional behaviour of algorithmic code fragments.
- Formally verify the correctness of simple code fragments involving conditional statements and loops using logic based techniques.
- Design regular expressions, state transition diagrams and context-free grammars for formal languages.
- Appraise the limitations of regular expressions and context-free grammars and to demonstrate that a language is nonregular.
- Appraise the limitations of algorithmic computation and prove that the halting problem is unsolvable.