A Comparative Evaluation of the Z, CSP, RSL, and VDM Languages
Mohammad Reza Nami, Fatemeh Hassani
Islamic Azad University- Qazvin Branch, Qazvin, Iran
{nami1352, fatimahassani.31th}@gmail.com
Abstract
The software engineering process has been described in many
ways. Today, few of these deal specifically with the use of formal
methods in software engineering. New software engineering uses
formal specification languages in system analysis, requirement
analysis, and system design to develop software for critical-safety
systems. Formal specification languages describe the system at a
much higher level than a programming language. They are catego-
rized into model-oriented, constructive, algebraic, process model,
hybrid, and logical. This paper describes the properties and types
of formal specification languages in software engineering. It then
compares the Z, VDM, RSL, and CSP formal specification lan-
guages from different point of views.
Keywords
: Software Engineering, Formal Specification Languag-
es, Verification, the Z Language, VDM, RAISE, Method, CSP
Language.
1. Introduction
Formal methods provide the basis for the precise definition of
consistency, completeness, specification, implementation, and cor-
rectness [1]. Formal method is the applied mathematics of comput-
er systems engineering. These methods are used to develop reliable
software for critical systems such as Air Traffic Control (ATC) [2].
New software engineering [3] serves them for the development of
safety critical systems in three phases including domain engineer-
ing, requirement engineering, and design and implementation.
Some Researchers use formal (mathematical) techniques in the
development of software including requirements analysis and for-
mulation, specification, design and development. Formal software
engineers also build models of systems, but mathematical
abstractions rather than scale models.
A specification language [4] serves formal method idea which
is based on mathematics. Therefore, specifying a system with a
formal language is approvable. Unlike most programming
languages, which are directly executable formal languages used to
implement a system, specification languages are used during
systems analysis, requirements analysis and systems design. A
formal specification language describes a system in a formal
model. Formal models are largely concerned with functionality,
whereas engineering models generally are largely concerned with
performance and reliability. Perhaps this is because engineering
functions are often straightforward, whereas computing functions
are rarely so [5]. Formal specification languages that combine
functional and non-functional aspects have already appeared, but
will need much more development.
This paper is organized as follows. An overview of formal spe-