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

24
ГОСУДАРСТВЕННЫ Й УНИВЕРСИТЕТ Верификация автоматных программ Г. А. Корнеев А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики

Upload: kaori

Post on 27-Jan-2016

77 views

Category:

Documents


1 download

DESCRIPTION

Верификация автоматных программ. Г. А. Корнеев А. А. Шалыто. Санкт-Петербургский государственный университет информационных технологий, механики и оптики. Виды верификации. Динамическая Тестирование Статическая Доказательная Верификация на модели. Верификация модели программы. - PowerPoint PPT Presentation

TRANSCRIPT

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

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

Г. А. КорнеевА. А. Шалыто

Санкт-Петербургский государственный университет информационных технологий,

механики и оптики

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Виды верификации

ДинамическаяТестирование

СтатическаяДоказательнаяВерификация на модели

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Верификация модели программы

Построение модели Крипке Соответствие модели программе

Построение формальных требований Формулировка требований в терминах модели

КрипкеФормальная верификация

Большая размерность пространства состоянийОтображение контрпримеров

Преобразования контрпримеров в термины исходной программы

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

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

Формальное построение модели Крипке Возможность автоматизации

Формулировка требований В терминах автоматов

Формальная верификация Рассмотрение управляющих состояний

Формальное восстановление контрпримеров В терминах исходной модели

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Верификация с применением SPIN

Система автоматовТребования на языке LTL

в терминах автоматов

Спецификация на языке Promela

Контрпример в терминах модели

Подтверждение выполнения требований

Контрпример в терминах автоматов

Предварительная обработка

Верификация с применением SPIN

Преобразование контрпримера

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Построение описания автомата на языке Promela

Переменная состоянияИнициализируется начальным

состояниемАвтоматная процедура

Switch по номеру текущего состоянияНедетерминированный переход в

следующее состояние

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Обработка событий

Описание потока событий в терминах темпоральной логики

Извлечение события из очереди при переходе

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Спецификация системы взаимодействующих автоматов

Переменная состояния для каждого автомата

Автоматная процедура для каждого автоматаИзменяет переменную состояния своего

автоматаЧитает переменные состояния других

автоматов

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Состояния объектов управления

Объекты управления не имеют состояния

Объекты управления имеют состоянияОписание изменения состояния в

терминах темпоральной логики

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

Верификация автоматных программ 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

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Фрагмент описания на языке Promela

int stateA1 = CLOSED;

inline A1() { do ::stateA1 == CLOSING -> if ::stateA1 = CLOSED; event = e4; ::stateA1 = OPENING; event = e5; fi; ... od;}

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Верифицируемые утверждения

1. Двери открываются бесконечное число раз

LTL: G F Opened Promela: - [] <> Opened

2. Двери закрываются бесконечное число раз

LTL: G F Closed Promela: - [] <> Closed

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

Верификация автоматных программ 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

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Верификация с применением Bogor

Тип данных«Cистема

автоматов»

Система автоматов

Спецификация на языке BIR

Конкретизация системы автоматов

Контрпример в терминах типа данных «Cистема автоматов»

Подтверждение выполнения требований

Верификация с применением Bogor

Требования на языке LTL в терминах автоматов

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Применяемые методы

СимуляцияДвойной поиск в глубинуУвеличение «масштаба» переходов

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Структура описания автоматов

Абстрактный тип данных «Автомат»Выбор следующего перехода«Откат» на состояние назадВосстановление ошибочного пути

Система автоматовВзаимодействия через номера

состоянийВзаимодействие по вложенности

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Практическое использование

Ручная верификацияВерификация проектов, опубликованных

на сайте http://is.ifmo.ruАвтоматизированная верификация

Основана на существующих верификаторах

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Повышение качество программного обеспечения

Верификация управляющих программ в NASAStateflowSPIN

Верификация проектов, опубликованных на сайте http://is.ifmo.ruUniModSPIN или Bogor

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Выводы

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

Возможность автоматизации верификации

Практическая применимость

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Направление дальнейших исследований

Разработка примера верификации системы со сложным поведением

Проведение экспериментальных исследований

Разработка предложений и рекомендаций по использованию результатов НИР

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Публикации по теме (1)

1. Вельдер С.Э., Шалыто А.А. О верификации простых автоматных программ на основе метода «Model Checking» //Информационно-управляющие системы. 2007. №3.

2. Корнеев Г.А., Парфенов В.Г., Шалыто А.А. Верификации автоматных программ //Тезисы докладов Международной научной конференции, посвященной памяти профессора А.М. Богомолова «Компьютерные науки и технологии». Саратов: Саратовский государственный университет. 2007.

3. Корнеев Г.А., Шалыто А.А. Верификация управляющих программ со сложным поведением, построенных на основе автоматного подхода /Материалы международной научно-технической конференции «Многопроцессорные вычислительные и управляющие системы» (МВУС`2007). Таганрог: НИИМВС. Т.1.

4. Гуров В.С., Шалыто А.А., Яминов Б.Р. Технология верификации автоматных моделей программ без их трансляции во входной язык верификатора / Материалы международной научно-технической конференции «Многопроцессорные вычислительные и управляющие системы» (МВУС`2007). Таганрог: НИИМВС. Т.1.

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Публикации по теме (2)

1. Васильева К.А., Кузьмин Е.В. Верификация автоматных программ с и спользованием LTL //Моделирование и анализ информационных систем. Ярославль: ЯрГУ. T. 14. 2007, №1.

2. Кузьмин Е.В., Соколов В.А. О дисциплине специализации «Верификация проргамм» /Доклады II научно-методической конференции Ярославского гос. университета. Ярославль: ЯрГУ, 2007.

3. Кузьмин Е.В., Соколов В.А. О некоторых подходах к верификации автоматных программ /Сборник докладов семинара GoIT. М.: Институт системного программирования.

4. Виноградов Р.А., Кузьмин Е.В., Соколов В.А. Свидетельство об официальной регистрации программы для ЭВМ «Система моделирования и анализа автоматных программ» № 2007611856

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Дополнительная информация

Раздел «Генетические алгоритмы» сайта кафедры «Технологии программирования» СПбГУ ИТМО по автоматному программированиюhttp://is.ifmo.ru/genalg/

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

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

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Спасибо за внимание

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ