Model-based specification

Last updated

Model-based specification is an approach to formal specification where the system specification is expressed as a system state model. This state model is constructed using well-understood mathematical entities such as sets and functions. System operations are specified by defining how they affect the state of the system model.

The most widely used notations for developing model-based specifications are VDM [1] [2] and Z [3] [4] (pronounced Zed, not Zee). These notations are based on typed set theory. Systems are therefore modelled using sets and relations between sets.

Another well-known approach to formal specification is algebraic specification.

See also

Related Research Articles

In computer science, pseudocode is a plain language description of the steps in an algorithm or another system. Pseudocode often uses structural conventions of a normal programming language, but is intended for human reading rather than machine reading. It typically omits details that are essential for machine understanding of the algorithm, such as variable declarations and language-specific code. The programming language is augmented with natural language description details, where convenient, or with compact mathematical notation. The purpose of using pseudocode is that it is easier for people to understand than conventional programming language code, and that it is an efficient and environment-independent description of the key principles of an algorithm. It is commonly used in textbooks and scientific publications to document algorithms and in planning of software and other algorithms.

Unified Modeling Language Software system design modeling tool

The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.

Z notation Formal specification language used for describing and modelling computing systems

The Z notation is a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems in general.

The Vienna Development Method (VDM) is one of the longest-established formal methods for the development of computer-based systems. Originating in work done at the IBM Laboratory Vienna in the 1970s, it has grown to include a group of techniques and tools based on a formal specification language—the VDM Specification Language (VDM-SL). It has an extended form, VDM++, which supports the modeling of object-oriented and concurrent systems. Support for VDM includes commercial and academic tools for analyzing models, including support for testing and proving properties of models and generating program code from validated VDM models. There is a history of industrial usage of VDM and its tools and a growing body of research in the formalism has led to notable contributions to the engineering of critical systems, compilers, concurrent systems and in logic for computer science.

A specification language is a formal language in computer science used during systems analysis, requirements analysis, and systems design to describe a system at a much higher level than a programming language, which is used to produce the executable code for a system.

In computer science, specifically software engineering and hardware engineering, formal methods are a particular kind of mathematically rigorous techniques for the specification, development and verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the expectation that, as in other engineering disciplines, performing appropriate mathematical analysis can contribute to the reliability and robustness of a design.

A modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in the structure.

Jackson System Development (JSD) is a linear software development methodology developed by Michael A. Jackson and John Cameron in the 1980s.

The B method is a method of software development based on B, a tool-supported formal method based on an abstract machine notation, used in the development of computer software. It was originally developed in the 1980s by Jean-Raymond Abrial in France and the UK. B is related to the Z notation and supports development of programming language code from specifications. B has been used in major safety-critical system applications in Europe. It has robust, commercially available tool support for specification, design, proof and code generation.

In computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software. They are used to describe a system, to analyze its behavior, and to aid in its design by verifying key properties of interest through rigorous and effective reasoning tools. These specifications are formal in the sense that they have a syntax, their semantics fall within one domain, and they are able to be used to infer useful information.

Clifford "Cliff" B. Jones is a British computer scientist, specializing in research into formal methods. He undertook a late DPhil at the Oxford University Computing Laboratory under Tony Hoare, awarded in 1981. Jones' thesis proposed an extension to Hoare logic for handling concurrent programs, rely/guarantee.

Dines Bjørner Danish computer scientist

Professor Dines Bjørner is a Danish computer scientist.

Professor James Charles Paul Woodcock is a British computer scientist.

Syntropy is a second-generation object-oriented analysis and software design method developed at Object Designers Limited in the UK during the early 1990s. The goal in developing Syntropy was to provide a set of modelling techniques that would allow precise specification and would keep separate different areas of concern. The approach was to take established techniques, as found in methods such as the Object-modeling technique and Booch method, and reposition and refine them. In recognition that graphical notations were much favoured by the market but lacked rigour, Syntropy adopted ideas from formal specification languages, specifically Z notation, to provide tools for both precise definition of the graphical notations and for the construction of richer models than are possible with pictures alone.

Prentice Hall International Series in Computer Science was a series of books on computer science published by Prentice Hall.

The Meta-IV was an early version of the specification language of the Vienna Development Method formal method for the development of computer-based systems.

Jim Davies is Professor of Software Engineering and current Director of the Software Engineering Programme at the University of Oxford, England.

Charles Carroll Morgan is an American computer scientist who moved to Australia in his early teens. He completed his education there, including a Doctor of Philosophy (Ph.D.) degree from the University of Sydney, and then moved to the United Kingdom in the early 1980s. In 2000, he returned to Australia.

A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchronization of communication and possible error recovery methods. Protocols may be implemented by hardware, software, or a combination of both.

Dansk Datamatik Center Danish software research and development centre

Dansk Datamatik Center (DDC) was a Danish software research and development centre that existed from 1979 to 1989. Its main purpose was to demonstrate the value of using modern techniques, especially those involving formal methods, in software design and development.

References

  1. Cliff B. Jones (1980). Software Development: A Rigorous Approach . Prentice Hall International. ISBN   0-13-821884-6.
  2. Cliff B. Jones (1986). Systematic Software Development using VDM. Prentice Hall International. ISBN   0-13-880717-5.
  3. Ian J. Hayes (May 1986). "Using mathematics to specify software" (PDF). Proceedings of the 1st Australian Software Engineering Conference. ASWEC-86. pp. 67–71.
  4. J. Michael Spivey (1992). The Z Notation: A reference manual (2nd ed.). Prentice Hall International Series in Computer Science. ISBN   0-13-978529-9. Archived from the original on 2008-10-09. Retrieved 2010-10-24.