In computer science, 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.

PropertyValue
dbpprop:abstract
  • In computer science, 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. 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 specifier's 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.
  • Eine formale Spezifikation ist die Beschreibung eines Computerprogramms mittels einer Notation, deren Semantik eindeutig definiert ist. Ziel ist die formalisierte, präzise Beschreibung der zu lösenden Aufgabe in einem in sich konsistenten und geschlossenen Modell, um dieses weiterzuverarbeiten. Mit Hilfe von Zusatzwerkzeugen kann die Einhaltung der Regeln der formalen Sprache und die Integrität des Modells geprüft werden. Weitere Werkzeuge können eine Transformation des Modells in andere formale Sprachen bewirken, z. B. Programmiersprachen, die wiederum mit Compilern in auf Computern ausführbaren Maschinencode übersetzt werden können. Die Z-Notation ist ein Beispiel für eine formale Spezifikationssprache. Andere sind die Specification Language(VDM-SL) der Vienna Development Method und die Abstract Machine Notation (AMN) der B-Methode.
  • 形式仕様記述(けいしきしようきじゅつ、Formal Specification)とは、ソフトウェアやハードウェアの実装を開発する際に使用される数学的記述。システムが何をすべきかを記述するものであり、どのように実装すべきかを記述する必要はない。そのような仕様を与えることにより、対象システムが仕様に照らして正しいかどうかを形式的検証技法で判定することが可能となる。システム設計の問題点を早期に検出することが可能となり、実装工程に移って多大な出費をした後の後戻りを防ぐという利点がある。他の手法として建築に使われている方法があり、仕様から設計、設計から実装へと段階的に検証可能なステップを踏んで詳細化させていく方法である。 設計(や実装)の「正当性」は単独では宣言できないという点が重要である。正当性は与えられた仕様に照らして初めて検証可能であり、形式仕様記述が解決すべき問題を正しく記述できるかどうかは別の問題である。これもまた困難な問題であり、非形式的な実際の問題を抽象化された形式的仕様記述で正しく記述する問題に帰着する。そして、そのような抽象化は形式的証明が不可能である。しかし、仕様が表現することを期待されている特性に関わる定理を証明することによって仕様記述を検証することは可能である。もし検証結果が正しければ、それらの定理は仕様記述者の仕様記述および根底にある問題領域との関係への理解を深める。検証結果が正しくない場合、その仕様は元となっている問題領域を正しく反映しているとは言えないので、仕様記述者はさらに理解を深めて仕様記述を改訂することになるだろう。 Z記法は主要な仕様記述言語の1つである。他にも、VDMによるVDM-SL、B-Methodによる Abstract Machine Notation (AMN) などがある。
  • Uma especificação formal é uma descrição matemática de software ou de hardware que pode ser utilizada para desenvolver uma implementação dos mesmos. Descreve o que sistema deve fazer, e não (necessariamente) como o deve fazer. Dada uma especificação, é possível utilizar técnicas de verificação formal para demonstrar que o modelo de um sistema candidato está de acordo com a sua especificação. Isto tem a enorme vantagem de que sistemas candidatos incorrectos são detectados e podem ser revistos antes de se investir na sua implementação. Uma aproximação alternativa é utilizar passos de refinamento para transformar uma especificação num modelo completo, e por fim numa implementação concreta. É importante notar que um modelo (ou implementação) nunca pode ser declarado "correcto" isoladamente, mas apenas "correcto no que diz respeito à sua especificação". Determinar se uma especificação formal descreve correctamente o problema a resolver, é um problema à parte. É também um problema de difícil resolução, uma vez que consiste em construir uma representação formal abstracta de um domínio de problema informal e concreto, e este passo de abstracção não é responsável nem suficiente para ser por si só uma prova formal. No entanto, é possível validar uma especificação provando teoremas relativos às propriedades que o sistema deve possuir. Se se verificarem correctos, estes teoremas reforçam a compreensão da especificação, e a sua relação com o domínio do problema. Se não, a especificação provavelmente necessita de ser alterada para melhor reflectir a compreensão do domínio de quem está envolvido na produção (e implementação) da especificação. Métodos formais Engenharia de software A Case for Formal Specification (Technology) by Coryoth 2005-07-30 Formal Specification {stub}
  • В информатике формальная спецификация - это математическое описание программной или аппаратной системы, которая может быть реализована в соответствии с этим описанием. Специфицируется, что должна делать система, но не то, как она должна это делать. Если существует спецификация системы, возможно применить методы формальной верификации, чтобы продемонстрировать, что система удовлетворяет (или будет удовлетворять) спецификации. Таким образом, можно проверить, будет ли конкретная спроектированная модель удовлетворять требованиям после реализации. Если верификация ПО исследует соответствие программы спецификации, то валидация исследует соответствие программы или спецификации требованиям пользователя.
  • Форма́льна специфіка́ція — математичне описання програмного забезпечення або обладнання, яке може бути використане для розробки реалізації. В ній описується, що має робити система, але не (обов'язково) вказується як. Маючи таку специфікацію, можна, використовуючи техніку формальної верифікації продемонструвати, що запропонований проект системи є правильним, по відношенню до специфікації. Такий підхід має перевагу в тому, що запропоновані невірні проекти систем можуть бути переглянуті до того як буде зроблено основні витрати на власне саму реалізацію. Альтернативний підхід полягає в тому, аби, виконуючи кроки по уточненню специфікації, вірність яких можна довести, перетворити специфікацію на реалізацію, яка буде вірною через побудову. Важливо зазначити, що проект (або реалізацію) ніколи не можна вважати «вірним» окремо, але, лише «вірним по відношенню до вказаної специфікації».
dbpprop:hasPhotoCollection
dbpprop:reference
rdf:type
rdfs:comment
  • In computer science, 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.
  • Eine formale Spezifikation ist die Beschreibung eines Computerprogramms mittels einer Notation, deren Semantik eindeutig definiert ist. Ziel ist die formalisierte, präzise Beschreibung der zu lösenden Aufgabe in einem in sich konsistenten und geschlossenen Modell, um dieses weiterzuverarbeiten. Mit Hilfe von Zusatzwerkzeugen kann die Einhaltung der Regeln der formalen Sprache und die Integrität des Modells geprüft werden.
  • Uma especificação formal é uma descrição matemática de software ou de hardware que pode ser utilizada para desenvolver uma implementação dos mesmos. Descreve o que sistema deve fazer, e não (necessariamente) como o deve fazer. Dada uma especificação, é possível utilizar técnicas de verificação formal para demonstrar que o modelo de um sistema candidato está de acordo com a sua especificação.
  • В информатике формальная спецификация - это математическое описание программной или аппаратной системы, которая может быть реализована в соответствии с этим описанием. Специфицируется, что должна делать система, но не то, как она должна это делать.
  • Форма́льна специфіка́ція — математичне описання програмного забезпечення або обладнання, яке може бути використане для розробки реалізації. В ній описується, що має робити система, але не (обов'язково) вказується як.
rdfs:label
  • Formal specification
  • Formale Spezifikation
  • 形式仕様記述
  • Especificação formal
  • Формальная спецификация
  • Специфікація формальна
owl:sameAs
skos:subject
foaf:page
is dbpprop:disambiguates of
is dbpprop:redirect of
is owl:sameAs of