Z and VDM for Formal Software Specification: Math Notations in Engineering, Exercises of Software Development Methodologies

This course provides an insight into formal specification approaches, focusing on z and vdm modeling and specification languages. Students will learn how to construct models of software systems using these techniques and develop mechanisms for specifying, validating, and verifying software systems. Topics covered include predicate logic, modeling with relations and functions, equality and definite description, free types, and validation and verification techniques.

Typology: Exercises

2011/2012

Uploaded on 07/09/2012

moti
moti 🇮🇳

5

(1)

59 documents

1 / 3

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
1
Course Title: Formal Specification Using Z and VDM
(Nazir Ahmad Zafar)
Objective of the Course
Why Formal Specification Approaches?
The increasing confidence, errors finding at final stages of software development, resolution of
ambiguities, lake of tool support, etc are some of the issues in using traditional software
engineering approaches. For example, it becomes very expensive to remove if the errors are
found at the final stages of software development. These problems can be minimized using
formal specification approaches at the early stage of development.
What are Formal Approaches?
Formal approaches are software engineering techniques, which provide highest confidence in
throughout life cycle of the software development. Formal approaches enable the systems
developer to specify, develop, and verify a computer-based system by applying a rigorous,
mathematical notation. Use of formal specification languages provides a means of specifying the
system so that consistency, completeness and correctness can be assessed in a systematic way.
Formal specification and refinement of systems can be extended towards implementation.
Formal methods can be integrated with existing programming languages, and can be applied to
requirements analysis, testing, safety analysis, and object-oriented approaches.
Z and VDM: Modeling and Specification Languages
More than 90 specification languages with tool support are in use today. The Vienna
Development Method and Z notation are most commonly used, which will be studied in this
course. Z is a set of conventions for presenting mathematical text, chosen to make it convenient
to use simple mathematics to describe computing systems. In Z usually we model a system by
representing its state a collection of state variables, and some operations that can change its state.
A model that is characterized by the operations it describes is called an abstract data type.
This Course
This course will provide an insight into established techniques and will help developers to
overcome the complexity of software development by constructing models of software systems
in real design stages. It will also provide formal mechanisms for specifying, validating and
verifying software systems. Students will be able to develop a mechanism for detecting and
eliminating many problems arising from ambiguity, incompleteness and inconsistencies in the
early stage of systems development. Further students will understand meaning of Software
Engineering and will be able to specify the requirements in Z and VDM. Also they will know
using VDM toolbox and Z Eves tools for the validation and verification of systems. At the end of
the day students will find a relationship between VDM and Z which will be one step forward in
understanding systems development using integrated approaches.
docsity.com
pf3

Partial preview of the text

Download Z and VDM for Formal Software Specification: Math Notations in Engineering and more Exercises Software Development Methodologies in PDF only on Docsity!

Course Title: Formal Specification Using Z and VDM

(Nazir Ahmad Zafar)

Objective of the Course

Why Formal Specification Approaches?

The increasing confidence, errors finding at final stages of software development, resolution of ambiguities, lake of tool support, etc are some of the issues in using traditional software engineering approaches. For example, it becomes very expensive to remove if the errors are found at the final stages of software development. These problems can be minimized using formal specification approaches at the early stage of development.

What are Formal Approaches?

Formal approaches are software engineering techniques, which provide highest confidence in throughout life cycle of the software development. Formal approaches enable the systems developer to specify, develop, and verify a computer-based system by applying a rigorous, mathematical notation. Use of formal specification languages provides a means of specifying the system so that consistency, completeness and correctness can be assessed in a systematic way. Formal specification and refinement of systems can be extended towards implementation. Formal methods can be integrated with existing programming languages, and can be applied to requirements analysis, testing, safety analysis, and object-oriented approaches.

Z and VDM: Modeling and Specification Languages

More than 90 specification languages with tool support are in use today. The Vienna Development Method and Z notation are most commonly used, which will be studied in this course. Z is a set of conventions for presenting mathematical text, chosen to make it convenient to use simple mathematics to describe computing systems. In Z usually we model a system by representing its state a collection of state variables, and some operations that can change its state. A model that is characterized by the operations it describes is called an abstract data type.

This Course

This course will provide an insight into established techniques and will help developers to overcome the complexity of software development by constructing models of software systems in real design stages. It will also provide formal mechanisms for specifying, validating and verifying software systems. Students will be able to develop a mechanism for detecting and eliminating many problems arising from ambiguity, incompleteness and inconsistencies in the early stage of systems development. Further students will understand meaning of Software Engineering and will be able to specify the requirements in Z and VDM. Also they will know using VDM toolbox and Z Eves tools for the validation and verification of systems. At the end of the day students will find a relationship between VDM and Z which will be one step forward in understanding systems development using integrated approaches.

Course Contents

Z Notation

Introduction to Formal Specification Approaches: Software Engineering Approaches, Introduction to Formal Approaches: Z, VDM-SL, Petri-nets, etc., Software Development Process Using Formal Approaches, etc.

Predicate Logic in Z notation: Propositional Logic, Logical Connectives in Z, Predicate Calculus, Quantifiers, Substitution, Universal Introduction and Elimination, Existential Introduction and Elimination, Satisfactions, Validity, etc.

Modeling using Crisp Theory and Possible Operators with Syntax in Z Notation: Memberships and Extensions, Comprehension, Cartesian Products, Crisp Operators, Types,

Modeling with Relations, Functions, Relations, Relational Inverse, Relational Composition, Closures, Partial Functions, Lambda Notations, Functions on Relations, Overriding, Properties, Notations,

Sequences and Bags: Sequences Models, Functions on Sequences, Structural Induction, Bags, etc.

Equality and Definite Description : Equality, The one-point rule, Uniqueness and quantity, Definite description,

Free Types: Free Type Definitions, Proof by Induction, Primitive Induction, Consistency,

Definitions Mechanism in Z : Declarations, Abbreviations, Generic abbreviations, Axiomatic definitions, Generic definitions, predicates,

Schemas : Schema, Schema as Type, Schema as Declaration, Schema as Predicates, Renaming, Generic Schemas,

Schemas Operators: Conjunction, Decoration, Disjunction, Quantification and Hiding, Composition,

VDM

Modeling using Basic Types: The Elements of Formal Model, Union and Basic Types, Basic Constructors, Record Types, Invariants,

Modeling with Functions and Relations : Explicit Functions, Implicit Functions, Constructor, Modeling with Sets, Distributed Operators,

Modeling with Sequences: Sequences in VDM, The Sequence Type Constructor, Defining Sequences, Modeling with Sequences, , Further Operators on Sequences,

Functional Refinement: Level of Abstraction, Recursive Data Structures, Mappings, Mapping Type Constructor, Defining Mappings, Modeling with Mappings,

Validation and Verification Techniques: Validating and Verifying Models, Internal Consistency, Completeness, Visualization of a Model, Systematic Testing, Choosing a Validation Techniques,

Defining Relationships Between Z and VDM: One to One mapping of Basic Data Types in Z to VDM, Schemas in Z and Possible Structures in VDM, Operations over Schemas in Z with Operations over Records in VDM,