scispace - formally typeset
Journal ArticleDOI

An introduction to Z and formal specifications

J. M. Spivey
- 03 Jan 1989 - 
- Vol. 4, Iss: 1, pp 40-50
TLDR
This paper provides an introduction to the description of information systems using formal, mathematical specifications written in the Z notation, and to the refinement of these specifications into rigorously checked designs.
Abstract
This paper provides an introduction to the description of information systems using formal, mathematical specifications written in the Z notation, and to the refinement of these specifications into rigorously checked designs. The first part introduces the idea of a formal specification using a simple example: that of a ‘birthday book’ in which people's birthdays can be recorded, and which is able to issue reminders on the appropriate day. The behaviour of this system for correct input is specified first; then the schema calculus is used to strengthen the specification into one requiring error reports for incorrect input. The second part of the paper introduces the idea of data refinement as the primary means of constructing designs which achieve a formal specification. Refinement is presented through the medium of two examples: the first is a direct implementation of the birthday book from part one; and the second is a simple checkpoint facility, which allows the current state of a database to be saved and later restored. A Pascal-like programming language is used to show the code for some of the operations in the examples.

read more

Citations
More filters
Journal ArticleDOI

The three dimensions of requirements engineering: a framework and its applications

TL;DR: This framework consists of three dimensions and can be used to classify and clarify current RE research as well as RE support offered by methods and tools and offers a first step towards a common understanding of RE.
Proceedings Article

The design of ESSENCE: a constraint language for specifying combinatorial problems

TL;DR: Essence is a formal language for specifying combinatorial problems in a manner similar to natural rigorous specifications that use a mixture of natural language and discrete mathematics.
Journal ArticleDOI

How the design of JML accommodates both runtime assertion checking and formal verification

TL;DR: The Java Modeling Language (JML) as mentioned in this paper uses a side-effect free subset of Java's expressions to which are added a few mathematical operators (such as the quantifiers \forall and \exists) and hides mathematical abstractions, such as sets and sequences, within a library of Java classes.

How the design of JML accommodates both runtime assertion checking and formal verification

TL;DR: The goal is to allow JML to serve as a common notation for both formal verification and runtime assertion checking; this gives users the benefit of several tools without the cost of changing notations.
Book ChapterDOI

A survey of formal concept analysis support for software engineering activities

TL;DR: This paper presents a broader overview by describing and classifying academic papers that report the application of FCA to software engineering using a framework based on the activities defined in the ISO12207 Software Engineering standard.
References
More filters
Book

An Introduction to Database Systems

C. J. Date
TL;DR: Readers of this book will gain a strong working knowledge of the overall structure, concepts, and objectives of database systems and will become familiar with the theoretical principles underlying the construction of such systems.
Book

The Z notation: a reference manual

TL;DR: Tutorial introduction background the Z language the mathematical tool-kit sequential systems syntax summary and how to use it to solve sequential systems problems.
Book

Systematic software development using VDM

TL;DR: Logic of propositions reasoning about predicates functions and operations set notation composite objects and invariants map notation sequence notation data rectification more on data types operation decomposition.
Book

Understanding Z: A Specification Language and its Formal Semantics

TL;DR: This book justifies the claim that Z is a precise specification language, and provides a standard framework for understanding Z specifications, making a detailed theoretical comparison between schemas, the Z construct for breaking specifications into modules, and the analogous facilities in other languages such as CLEAR and ASL.