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