Верификация автоматных программ

advertisement
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Верификация
автоматных программ
Г. А. Корнеев
А. А. Шалыто
Санкт-Петербургский государственный
университет информационных технологий,
механики и оптики
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Виды верификации
 Динамическая

Тестирование
 Статическая


Доказательная
Верификация на модели
Верификация автоматных программ
2
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ

Построение модели Крипке


Формулировка требований в терминах модели
Крипке
Формальная верификация


Соответствие модели программе
Построение формальных требований


Верификация модели
программы
Большая размерность пространства состояний
Отображение контрпримеров

Преобразования контрпримеров в термины
исходной программы
Верификация автоматных программ
3
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ

Формальное построение модели Крипке


В терминах автоматов
Формальная верификация


Возможность автоматизации
Формулировка требований


Верификация автоматной
модели программы
Рассмотрение управляющих состояний
Формальное восстановление
контрпримеров

В терминах исходной модели
Верификация автоматных программ
4
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Верификация с
применением SPIN
Требования на языке LTL
в терминах автоматов
Система автоматов
Предварительная обработка
Спецификация на языке Promela
Верификация с применением SPIN
Подтверждение
выполнения требований
Контрпример в
терминах модели
Преобразование контрпримера
Контрпример в
терминах автоматов
Верификация автоматных программ
5
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Построение описания
автомата на языке Promela
 Переменная

Инициализируется начальным
состоянием
 Автоматная


состояния
процедура
Switch по номеру текущего состояния
Недетерминированный переход в
следующее состояние
Верификация автоматных программ
6
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Обработка событий
 Описание
потока событий в терминах
темпоральной логики
 Извлечение события из очереди при
переходе
Верификация автоматных программ
7
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Спецификация системы
взаимодействующих
автоматов
 Переменная
состояния для каждого
автомата
 Автоматная процедура для каждого
автомата


Изменяет переменную состояния своего
автомата
Читает переменные состояния других
автоматов
Верификация автоматных программ
8
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Состояния объектов
управления
 Объекты
управления не имеют
состояния
 Объекты управления имеют
состояния

Описание изменения состояния в
терминах темпоральной логики
Верификация автоматных программ
9
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Управление дверьми лифта
A1
O1
CLOSED
e1-5
e1/z1
e5/z3,z1
OPENING
e4/z3
CLOSING
z1-3
e3/z3
e2/z2
OPENED
e1 — нажата кнопка
«Открыть двери»
e2 — нажата кнопка
«Закрыть двери»
e3 — Двери открыты
e4 — Двери закрыты
e5 — Препятствие
z1 — Открыть двери
z2 — Закрыть двери
z3 — Окончить действие
Верификация автоматных программ
10
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Фрагмент описания на
языке Promela
int stateA1 = CLOSED;
inline A1() {
do
::stateA1 == CLOSING ->
if
::stateA1 = CLOSED;
event = e4;
::stateA1 = OPENING;
event = e5;
fi;
...
od;
}
Верификация автоматных программ
11
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Верифицируемые
утверждения
Двери открываются бесконечное
число раз
1.


LTL: G F Opened
Promela: - [] <> Opened
Двери закрываются бесконечное
число раз
2.


LTL: G F Closed
Promela: - [] <> Closed
Верификация автоматных программ
12
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Верификация утверждений
 Утверждение
1
выполняется
 Утверждение 2 не
выполняется:
A1 [stateA1 = CLOSED]
A1 [stateA1 = OPENING]
A1 [stateA1 = OPENED]
A1 [stateA1 = CLOSING]
A1 [stateA1 = OPENED]
A1
CLOSED
e1/z1
e5/z3,z1
OPENING
CLOSING
e3/z3
Верификация автоматных программ
e4/z3
e2/z2
OPENED
13
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Верификация с
применением Bogor
Требования на языке LTL
в терминах автоматов
Система автоматов
Конкретизация системы автоматов
Спецификация на языке BIR
Тип данных
«Cистема
автоматов»
Верификация с применением Bogor
Подтверждение
выполнения требований
Контрпример в терминах типа данных
«Cистема автоматов»
Верификация автоматных программ
14
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Применяемые методы
 Симуляция
 Двойной поиск в глубину
 Увеличение «масштаба»
переходов
Верификация автоматных программ
15
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Структура описания
автоматов
 Абстрактный



Выбор следующего перехода
«Откат» на состояние назад
Восстановление ошибочного пути
 Система


тип данных «Автомат»
автоматов
Взаимодействия через номера
состояний
Взаимодействие по вложенности
Верификация автоматных программ
16
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Практическое
использование
 Ручная

верификация
Верификация проектов, опубликованных
на сайте http://is.ifmo.ru
 Автоматизированная

верификация
Основана на существующих
верификаторах
Верификация автоматных программ
17
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Повышение качество
программного обеспечения
 Верификация
управляющих
программ в NASA


Stateflow
SPIN
 Верификация
проектов,
опубликованных на сайте
http://is.ifmo.ru


UniMod
SPIN или Bogor
Верификация автоматных программ
18
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Выводы
 Простота
верификации автоматных
программ
 Возможность автоматизации
верификации
 Практическая применимость
Верификация автоматных программ
19
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Направление дальнейших
исследований
 Разработка
примера верификации
системы со сложным поведением
 Проведение экспериментальных
исследований
 Разработка предложений и
рекомендаций по использованию
результатов НИР
Верификация автоматных программ
20
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Публикации по теме (1)
Вельдер С.Э., Шалыто А.А. О верификации простых автоматных
программ на основе метода «Model Checking» //Информационноуправляющие системы. 2007. №3.
2. Корнеев Г.А., Парфенов В.Г., Шалыто А.А. Верификации
автоматных программ //Тезисы докладов Международной научной
конференции, посвященной памяти профессора А.М. Богомолова
«Компьютерные науки и технологии». Саратов: Саратовский
государственный университет. 2007.
3. Корнеев Г.А., Шалыто А.А. Верификация управляющих программ
со сложным поведением, построенных на основе автоматного
подхода /Материалы международной научно-технической
конференции «Многопроцессорные вычислительные и
управляющие системы» (МВУС`2007). Таганрог: НИИМВС. Т.1.
4. Гуров В.С., Шалыто А.А., Яминов Б.Р. Технология верификации
автоматных моделей программ без их трансляции во входной язык
верификатора / Материалы международной научно-технической
конференции «Многопроцессорные вычислительные и
управляющие системы» (МВУС`2007). Таганрог: НИИМВС. Т.1.
1.
Верификация автоматных программ
21
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
1.
2.
3.
4.
Публикации по теме (2)
Васильева К.А., Кузьмин Е.В. Верификация автоматных
программ с и спользованием LTL //Моделирование и анализ
информационных систем. Ярославль: ЯрГУ. T. 14. 2007, №1.
Кузьмин Е.В., Соколов В.А. О дисциплине специализации
«Верификация проргамм» /Доклады II научно-методической
конференции Ярославского гос. университета. Ярославль:
ЯрГУ, 2007.
Кузьмин Е.В., Соколов В.А. О некоторых подходах к
верификации автоматных программ /Сборник докладов
семинара GoIT. М.: Институт системного программирования.
Виноградов Р.А., Кузьмин Е.В., Соколов В.А.
Свидетельство об официальной регистрации
программы для ЭВМ «Система моделирования и
анализа автоматных программ» № 2007611856
Верификация автоматных программ
22
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Дополнительная
информация
 Раздел
«Генетические алгоритмы»
сайта кафедры «Технологии
программирования» СПбГУ ИТМО по
автоматному программированию
http://is.ifmo.ru/genalg/
Верификация автоматных программ
23
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Спасибо за внимание
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Верификация автоматных программ
24
Download