- •Верификация программного обеспечения
- •Исчисление высказываний
- •Операции над высказываниями
- •(Если a, то b)
- •Исчисление предикатов
- •Операции над высказывательными формами
- •Кванторы
- •Метод индуктивных утверждений
- •Общие сведения
- •Последовательность шагов по доказательству корректности схем-алгоритмов программ
- •Основные проблемы доказательства корректности программ
- •Проблема автоматизации верификации программ
Верификация программного обеспечения
Согласно стандарту СТБ ИСО 12207-2003 процесс верификации является процессом того, что программные продукты функционируют в полном соответствии с требованиями или условиями, реализованными в предшествующих работах
Под верификацией понимают подтверждение экспертизой и представлением объективных доказательств того, что конкретные требования полностью реализованы
В общем, под верификацией понимается процесс проверки правильности какой-то работы ЖЦ. Чем раньше начать верификацию работ, тем выше будет качество будущего ПО, тем раньше будут найдены все дефекты при разработке ПО.
В данном разделе ограничимся рассмотрением спецификаций применительно к доказательству правильности алгоритмов.
Верификация программ состоит в формальном доказательстве их правильности. В отличие от тестирования, имеющего дело со свойствами отдельных процессов программы, верификация имеет дело со свойствами всей программы и для всей совокупности исходных данных.
Исчисление высказываний
Исчисление высказываний - это совокупность правил для определения истинности или ложности высказываний.
Высказывание - это предложение, которое либо истинно, либо ложно.
Предложение “x2=4”, например, не является высказыванием, т.к. чтобы говорить об истинности или ложности высказывания, нужны дополнительные сведения (чему равно число x). В этом предложении x - некоторая переменная, вместо которой можно подставить элементы некоторого множества, называемые значениями этой переменной.
Предложение, которое содержит хотя бы одну переменную и становится высказыванием при подстановке вместо всех переменных их значений, называется высказывательной формой (ВФ).
В математической логике всякое предложение, составленное из высказываний с помощью логических связок (и; или; если то; тогда и только тогда, когда и т.п.), становится высказыванием.
Операции над высказываниями
1. Конъюнкция
A ^ B (A&B)
2. Дизъюнкция
A V B (A+B)
Отрицание
~A ( )
Импликация
(Если a, то b)
Определение импликации иллюстрирует Таблица 5 .1.
Таблица 5.1.
Определение импликации
-
A
B
истина Т
истина Т
ложь F
ложь F
истина T
ложь F
истина T
ложь F
истина T
ложь F
истина T
истина T
Пример импликации:
Если будет хорошая погода, (А),
то я пойду в гости. (В), т.е.
Данное определение соответствует употреблению союза "если-то" не только в математике, но и в обыденной речи. По определению логической операции смысл составляющих высказываний не учитывается. Составляющие высказывания рассматриваются как объекты, обладающие единственным свойством: быть истинными или ложными.
Исчисление предикатов
Исчисление предикатов является расширением логики высказываний.
Рассмотрим высказывательную форму sin(x)=1. Данная форма каждому x на множестве действительных чисел ставит в соответствие некоторое высказывание и тем самым одно из значений истинности. Таким образом, данная высказывательная форма задаёт отображение множества действительных чисел R на множество значений {Истина, Ложь}, то есть задаёт функцию с областью определения R и множеством значений {ИСТИНА, ЛОЖЬ}.
Функция, все значения которой принадлежат множеству {ИСТИНА, ЛОЖЬ}, называется предикатом. Чаще всего предикаты задаются с помощью высказывательных форм.
Например,
- одноместная высказывательная форма,
- предикат с двумя неизвестными,
- трехместная высказывательная форма.