Formal specification

Formal specification

A formal specification is a mathematical description of software or hardware that may be used to develop an implementation. It describes "what" the system should do, not (necessarily) "how" the system should do it. Given such a specification, it is possible to use formal verification techniques to demonstrate that a candidate system design is correct with respect to the specification. This has the advantage that incorrect candidate system designs can be revised before a major investment has been made in actually implementing the design. An alternative approach is to use provably correct refinement steps to transform a specification into a design, and ultimately into an actual implementation, that is correct by construction.

It is important to note that a design (or implementation) cannot ever be declared “correct” in isolation, but only “correct with respect to a given specification”. Whether the formal specification correctly describes the problem to be solved is a separate issue. It is also a difficult issue to address, since it ultimately concerns the problem constructing abstracted formal representations of an informal concrete problem domain, and such an abstraction step is not amenable to formal proof. However, it is possible to validate a specification by proving “challenge” theorems concerning properties that the specification is expected to exhibit. If correct, these theorems reinforce the specifiers understanding of the specification and its relationship with the underlying problem domain. If not, the specification probably needs to be changed to better reflect the domain understanding of those involved with producing (and implementing) the specification.

The Z notation is an example of a leading formal specification language. Others include the Specification Language(VDM-SL) of the Vienna Development Method and the Abstract Machine Notation (AMN) of the B-Method.

See also

* Algebraic specification
* Formal methods
* Specification (technical standard)
* Software engineering
* Specification language

References

* " [http://kuro5hin.org/story/2005/7/29/04553/9714 A Case for Formal Specification (Technology)] " by Coryoth 2005-07-30
* [http://c2.com/cgi/wiki?FormalSpecification Formal Specification]


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Specification (technical standard) — Specification redirects here. For other uses, see Specification (disambiguation). A specification (often abbreviated as spec) is an explicit set of requirements to be satisfied by a material, product, or service.[1] Should a material, product or… …   Wikipedia

  • Formal methods — In computer science and software engineering, formal methods are particular kind of mathematically based techniques for the specification, development and verification of software and hardware systems.cite web|author=R. W. Butler|title=What is… …   Wikipedia

  • Specification language — A specification language is a formal language used in computer science.Unlike most programming languages, which are directly executable formal languages used to implement a system, specification languages are used during systems analysis,… …   Wikipedia

  • 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… …   Wikipedia

  • Formal — The term formal has a number of uses, including:General*relating to formality *opposite of informalocial* Formal occasion ** Formal attire worn on such occasions ** Formals are particular meals at some British universities ** In Australian or… …   Wikipedia

  • Formal equivalence checking — process is a part of electronic design automation (EDA), commonly used during the development of digital integrated circuits, to formally prove that two representations of a circuit design exhibit exactly the same behavior. Equivalence checking… …   Wikipedia

  • specification of details — index bill (formal declaration) Burton s Legal Thesaurus. William C. Burton. 2006 …   Law dictionary

  • Formal interpretation — A formal interpretation [http://books.google.com/books?id=weKqT3ka5g0C pg=PA74 lpg=PA74 dq=%22Formal+interpretation%22+%22formal+language%22 source=web ots=pLN ms7Wi2 sig=P JqwdzOqLcX4nMpP64qmacnkDU hl=en#PPA74,M1 Cann Ronnie, Formal Semantics:… …   Wikipedia

  • Formal language — A formal language is a set of words , i.e. finite strings of letters , or symbols . The inventory from which these letters are taken is called the alphabet over which the language is defined. A formal language is often defined by means of a… …   Wikipedia

  • formal logic — the branch of logic concerned exclusively with the principles of deductive reasoning and with the form rather than the content of propositions. [1855 60] * * * Introduction       the abstract study of propositions, statements, or assertively used …   Universalium

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”