CS709 - Formal Methods For Software Engineering
Q & A
Online Test
Course Category: Computer Science/Information Technology
Course Level: Graduate
Credit Hours: 3
Pre-requisites: CS504, MTH502
Share this page on:
CS-709 Handouts (01-10)
Course Contents:
Introduction, Limitations of testing and need for formal verification, Overview of logic and propositional calculus, Calculational Logic, Logical Connectives, Boolean Equality, Continued Equivalence, Disjunction, Conjunction, Implication, Introduction to Hoare’s Logic, Weakest pre-condition, The assignment axiom, Calculating assignments, Sequential composition, Conditional statements, Reasoning about conditional statements, Constructing conditional statements, Inductive proofs and constructions, Patterns and invariant, From verification to construction, Design by Contract (DBC), The six principles of Design by contract, UML and Formal Methods, The Object Constraint Language (OCL), Algebraic Specifications, Specifications of abstract data types, Completeness, Axioms and term rewriting, Modularity and re-usability, Model-based specifications, The Z (Zed) specification Language, Z Schemas and Schema Calculus, Promotions, Data and functional refinements, Petri Nets, Limitations and Acceptance of Formal Methods, Seven Myths of Formal Methods.
Course Instructor

Dr. Fakhar Lodhi D.Sc.
Computer Science George Washington University, USA

Program Construction: Calculating Implementation from Specifications by Roland Backhouse

Design by contract, by example by Richard Mitchell and Jim McKim

The Object Constraint Language, precise modeling with UML by Jos Warmer and Anneke Kleppe

Software Engineering by Sommerville

The Specification of Complex Systems by B. Cohen, W. T. Harwood and M. I. Jackson

Using Z: Specification, Refinement, and Proof by Jim Woodcock and Jim Davies

Program Construction and Verification by Roland C. Backhouse

Object-Oriented Software Construction by Bertrand Meyer