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