Формальная верификация: различия между версиями

Нет описания правки
В контексте аппаратныйпрограммных и программныхаппаратных систем формальная верификация — доказательство с помощью [[формальные методы|формальных методов]] корректности или некорректности (правильности или неправильности) алгоритмов, программ и системысистем в соответствии с формальным описанием их свойств.
{{орисс}}
В контексте аппаратный и программных систем формальная верификация — доказательство с помощью [[формальные методы|формальных методов]] правильности или неправильности алгоритмов, программ и системы в соответствии с формальным описанием их свойств.
 
== Обоснование ==
 
[[Тестирование программного обеспечения]] не может доказать, что система, алгоритм или программа не содержит никаких дефектов.ошибок Такжеи тестированиедефектов неи можетудовлетворяет доказать,определённому чтосвойству. алгоритм,Это программаможет илисделать система''формальная'' удовлетворяет определенному свойствуверификация.
Только процесс ''формальной'' верификации может доказать, что система, алгоритм или программа не содержит определенных дефектов или удовлетворяет определенным свойствам.
Все, что можно сделать - это доказать, что система не имеет никаких дефектов из тех, что можно определить, а также обладает всеми строго определяемыми свойствами, которые вместе делают ее функциональной и полезной.
 
== Области применения ==
 
Формальная верификация может использоваться для проверки таких систем, как программное обеспечение, представленное в виде исходных текстов, [[криптографические протоколы]], [[комбинаторные логические схемы]], [[цифровые схемы]] с внутренней памятью или программное обеспечение, представленное в виде исходных текстов.
 
== Теоретические основы ==
 
Верификация представляет собой формальное доказательство на абстрактной математической модели системы, в предположении о том, что соответствие между математической моделью и природой системы считается изначально заданным. Например, по построению модели либо математического анализа и доказательства правильности алгоритмов и программ.
между математической моделью и природой системы считается изначально заданным. Например, по построению модели либо математического анализа и доказательства правильности алгоритмов и программ.
 
Примерами математических объектов, часто используемых для моделирования и формальной верификации программ и систем являются:
 
* формальная семантика языков программирования, например [[операционная семантика]], [[денотационная семантика]], [[аксиоматическая семантика]] ([[логика Хоара]]), [математическая семантика программ] и [[логика Хоара]].
* [[конечный автомат]]
* помеченная [[модель состояний и переходов]]
* [[структурированные алгоритмы]]
* [[структурированные программы]]
* формальная семантика языков программирования, например [[операционная семантика]], [[денотационная семантика]], [[аксиоматическая семантика]], [математическая семантика программ] и [[логика Хоара]].
 
== Подходы к формальной верификации ==
Существуют следующие подходы к формальной верификации:
 
* формальная семантика языков программирования
* [[проверка моделей]] (model checking)
* [[логический вывод]] (logical inference)
 
==См. также==
 
* [[Тестирование программного обеспечения]]
* [[Контрактное программирование]]
 
[[Категория:Математическая логика]]
[[Категория:Информатика]]
 
[[cs:Formální verifikace]]