CS709 : Formal Methods for Software Engineering

I like this Course

Course Info

Course Category

Computer Science/Information Technology

Course Level


Credit Hours





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

Course Contents

Introduction to Formal Methods, Dijkstra's Algorithm, Implications, Some useful equivalances, Model Building Tools, Propositional and Predicate Calculus, Logic and Set Theory, Properties of Equivalance, Logic and Proposition, Introduction to Hoare's Logic, Hoare's Logic (Weakest Pre-condition and Loops), Hoare's Logic (Conditional and Control Flow, Invariant Condition), Hoare's Logic with Example (Tower of Hanoi), Hoare's Logic, Verification of Functions, Specification of Functions using Pre and Post-Conditions, Dijkstra's Guarded if Statement, Constructing Conditional Statement, Output Variables, Ghost Variables, Simultaneous Assignment, Example: Max.of Two Numbers, Constructing Loops, The Dutch National Flag Problem, Defensive Programming, Design by Contract, Design by Contract and its Components, Implementation of Design by Contract (jContractor), A Pure Java Implementation - Design by Contract, Object Constraint Language (OCL), The Structure of an Algebraic Specification, Algebraic Specification: Rules and Methods, New_List Specification Methods: Queue Operations, Errors Specification and Boolean Function with Tools and Techniques, Structure of the File System Specification, How to use Specification of Boolean, Pair, List, Quad and Bimap, Tools for Algebraic Specification (Sub-System Interfaces), Larch Specification Languages, Interface of Algebraic Specification and Larch (Family of Specification) Languages, OBJ (Family of Specification), Model Based Specification, VDM: Vienna Development Method, Incubator, Main Operations on Sets, Sequences and Mappings, Z-Specification, Structure and Schema (A Birthday Book), Z-Specification, Refinement and Totalization, Z-Specification, (A Program Refinement, Different Operations Simulation, Lifting, Forward Simulation), Using Z-Specification, Application of Operating System Components, Using Z-Specification, Operating System Scheduler, Operations: Delete Start, Middle and End, How to Specify Concurrent and Real Time System, Introduction to Petri Nets, Development of Concurrent System (Petri Nets), Conflict, Concurrency and Confusion, Behavioural Properties, Activities, Limitations and Acceptance of Formal Methods, Seven Myths of Formal Methods