ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Верификация автоматных программ Г. А. Корнеев А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Виды верификации Динамическая Тестирование Статическая Доказательная Верификация на модели Верификация автоматных программ 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