SE7103 FORMAL MODELS OF SOFTWARE SYSTEMS Syllabus - Anna University PG ME CSE Regulation 2013 Syllabus

SE7103 FORMAL MODELS OF SOFTWARE SYSTEMS Syllabus

OBJECTIVES:

 To understand the basic elements of Z
 To understand relations, functions, and logical structures in Z
 To understand Z schemas and schema calculus
 To learn selected Z case studies
 To understand Z schema refinement

UNIT I FOUNDATIONS OF Z

Understanding formal methods – motivation for formal methods – informal requirements to  formal specifications – validating formal specifications – Overview of Z specification – basic elements of Z – sets and types – declarations – variables – expressions – operators – predicates and equations

UNIT II STRUCTURES IN Z

Tuples and records – relations, tables, databases – pairs and binary relations – functions – sequences – propositional logic in Z – predicate logic in Z – Z and boolean types – set  comprehension – lambda calculus in Z – simple formal specifications – modeling systems and change

UNIT III Z SCHEMAS AND SCHEMA CALCULUS

Z schemas – schema calculus – schema conjunction and disjunction – other schema calculus operators – schema types and bindings – generic definitions – free types – formal  reasoning – checking specifications – precondition calculation – machine-checked proofs

UNIT IV Z CASE STUDIES

Case Study: Text processing system – Case Study: Eight Queens – Case Study: Graphical User Interface – Case Study: Safety critical protection system – Case Study: Concurrency  and real time systems

UNIT V Z REFINEMENT

Refinement of Z specification – generalizing refinements – refinement strategies – program derivation and verification – refinement calculus – data structures – state schemas – functions and relations – operation schemas – schema expressions – refinement case study

OUTCOMES:

Upon Completion of the course,the students will be able to
 Apply the basic elements of Z
 Develop relational, functional, and logical Z structures
 Develop Z schema as models of software systems
 Perform verifications and conduct proofs using Z models
 Refine Z models towards implementing software systems

REFERENCES:

1. Jonathan Jacky, “The way of Z: Practical programming with formal methods”, Cambridge University Press, 1996.
2. Antoni Diller, “Z: An introduction to formal methods”, Second Edition, Wiley, 1994.
3. Jim Woodcock and Jim Davies, “Using Z – Specification, Refinement, and Proof”, Prentice Hall, 1996.
4. J. M. Spivey, “The Z notation: A reference manual”, Second Edition, Prentice Hall, 1992.
5. M. Ben-Ari, “Mathematical logic for computer science”, Second Edition, Springer, 2003.
6. M. Huth and M. Ryan, “Logic in Computer Science – Modeling and Reasoning about systems”, Second Edition, Cambridge University Press, 2004.