# Formal specification

In computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software.

- Formal specification84 related topics

## Z notation

The Z notation is a formal specification language used for describing and modelling computing systems.

## Refinement (computing)

Generic term of computer science that encompasses various approaches for producing correct computer programs and simplifying existing programs to enable their formal verification.

In formal methods, program refinement is the verifiable transformation of an abstract (high-level) formal specification into a concrete (low-level) executable program.

## Formal verification

In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics.

## Correctness (computer science)

In theoretical computer science, an algorithm is correct with respect to a specification if it behaves as specified.

## Communicating sequential processes

Formal language for describing patterns of interaction in concurrent systems.

CSP has been practically applied in industry as a tool for specifying and verifying the concurrent aspects of a variety of different systems, such as the T9000 Transputer, as well as a secure ecommerce system.

## Specification (technical standard)

A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service.

It can be informal, in which case it can be considered as a user manual from a developer point of view, or formal, in which case it has a definite meaning defined in mathematical or programmatic terms.

## Computer science

Study of computation, automation, and information.

Formal methods are a particular kind of mathematically based technique for the specification, development and verification of software and hardware systems.

## B-Method

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 has robust, commercially available tool support for specification, design, proof and code generation.

## Jakarta EE

Set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services.

Jakarta EE is defined by its specification.