Применение шаблонов требований для формальной спецификации и верификации автоматных программ Клебанов Андрей, 6538 Науч. рук. Степанов Олег, к.т.н, СПбГУ.

Презентация:



Advertisements
Похожие презентации
Верификация автоматных программ Г. А. Корнеев А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики.
Advertisements

Совместное применение генетического программирования и верификации моделей для построения автоматов управления системами со сложным поведением К. В. Егоров,
Michael Jackson
Типовые расчёты Растворы
Автор: Вельдер С. Э., аспирант Руководитель: Шалыто А. А., доктор технических наук, профессор, заведующий кафедрой «Технологии программирования» Верификация.

Технология верификации управляющих программ со сложным поведением, построенных на основе автоматного подхода Руководитель проекта – А. А. Шалыто Докладчик.
Ф. Т. Алескеров, Л. Г. Егорова НИУ ВШЭ VI Московская международная конференция по исследованию операций (ORM2010) Москва, октября 2010 Так ли уж.
1 Программирование на языке Паскаль Циклы. 2 Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов.
Ребусы Свириденковой Лизы Ученицы 6 класса «А». 10.
Школьная форма Презентация для родительского собрания.
Урок повторения по теме: «Сила». Задание 1 Задание 2.
Тренировочное тестирование-2008 Ответы к заданиям КИМ Часть I.
Дипломная работа Ивановой О.О., группа 545 Научный руководитель: д. ф.-м. н., профессор Терехов А.Н. Генерация кода по диаграмме активностей.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
1 Карагандинский государственный технический университет Лекция 4-1. Особенности задач оптимизации. «Разработка средств механизации для устройства «Разработка.
Маршрутный лист «Числа до 100» ? ? ?

Применение методов решения задачи удовлетворения ограничениям для построения управляющих конечных автоматов по сценариям работы Владимир Ульянцев Научный.
Тем, кто учит математике, Тем, кто учит математику, Тем, кто знает и любит математику, И тем, кто ещё не знает, что он любит математику, Работать сегодня.
Транксрипт:

Применение шаблонов требований для формальной спецификации и верификации автоматных программ Клебанов Андрей, 6538 Науч. рук. Степанов Олег, к.т.н, СПбГУ ИТМО и JetBrains

2 План Введение Шаблоны требований (ШТ) Применимость к автоматному программированию (АП) Запись требований Заключение

3 Проблема К АП хорошо применима верификация на модели Однако работать с требованиями в виде формул темпоральной логики трудоемко: –Сложно понять –Еще сложнее специфицировать корректно

4 Пример проблемы «Between the time an elevator is called at a floor and the time it opens its doors at that floor, the elevator can arrive at that floor at most twice» []((call & open) -> ((!atfloor & !open) U (open | ((atfloor & !open) U (open | ((!atfloor & !open) U (open | ((atfloor & !open) U (open | (!atfloor U open)))))))))) Dwyer M. B., Avrunin G. S., Corbett J. C. Patterns in Property Specifications for Finite-state Verification / Proceedings of the 21st International Conference on Software Engineering. 1999

5 Существующее решение Графические нотации Облегчают восприятие, но не помогают при спецификации Естественный язык

6 Существующее решение (АП) Контракты: + Проще и понятней, чем темпоральные формулы - Ограничены в выразительных возможностях - Трудоемко для нескольких состояний Степанов О. Г. Методы реализации автоматных объектно- ориентированных программ. Диссертация на соискание ученой степени кандидата технических наук. СПбГУ ИТМО, 2009.

7 Предлагаемое решение Записывать верифицируемые требования на подмножестве естественного языка

8 Детали Требования выводятся из грамматики Нет необходимости в обработке естественного языка (NLP) Гибкость для разных предметных областей Грамматика основывается на шаблонах требований (ШТ) Для каждого требования существует формальная запись

9 Актуальность ШТ в контексте АП Васильева К.А., Кузьмин Е.В. Верификация автоматных программ с использованием LTL // Моделирование и анализ информационных систем. Ярославль: ЯрГУ Т. 14, 1, с. 3–14. «… важным является вопрос о шаблонах (структуре) темпоральных свойств, наиболее применимых и адекватных для верификации автоматных программ. Наличие таких шаблонов позволяло бы говорить о классах темпоральных свойств автоматных моделей, что, несомненно, облегчало бы построение технологической схемы проверки автоматных программ на корректность относительно спецификации»

10 План Введение Шаблоны требований Применимость к АП Запись требований Заключение

11 Шаблоны требований ШТ – обобщенное описание (на формальном и естественном языках) часто встречающихся ограничений на допустимые последовательности состояний в модели системы с конечным числом состояний Формально описывают некий аспект поведения системы Dwyer M. B., Avrunin G. S., Corbett J. C. Patterns in Property Specifications for Finite-state Verification / Proceedings of the 21st International Conference on Software Engineering. 1999

12 Шаблоны требований Требование = ШТ + Ограничение

13 Шаблоны требований Ограничение – та часть пути исполнения, на которой должно выполняться требование

14 Шаблоны требований Глобально До Q После Q Между Q и R После Q до R Последовательность состояний Q R Q R Q Ограничения

15 Шаблоны требований Система шаблонов Наличие Порядок Отсутствие Ограниченное существование Всеобщность Существование Предшествование Ответ Цепное предшествование Цепной ответ

16 Шаблон «Отсутствие» ЦельИспользуется для описания части пути исполнения системы, в которой нет определенного состояния. Так же известен как «Никогда». ЗаписьLTLОграничениеЗапись Глобально [](!P) До RR -> (!P U R) После Q[](Q -> [](!P)) Между Q и R []((Q & !R & R) -> (!P U R)) После Q до R[](Q & !R -> (!P W R)) CTLОграничениеЗапись Глобально AG(!P) После QAG(Q -> AG(!P)) …… После Q до RAG(Q & !R -> A[!P W R]) Пример использования Этот шаблон может быть применен для описания общих свойств модели в целом или отдельной группы состояний. Для специфицирования свойства безопасности (safety) следует использовать это шаблон и ограничение «Глобально». Например, в том случае, когда необходимо выразить свойство вида: «Автомат A никогда не перейдет в состояние s », «В состоянии s никогда не будет обработано событие e » или свойство «Тупиковое состояние» из разд Связь с другими шаблонами …

17 План Введение Шаблоны требований Применимость ШТ к АП Запись требований Заключение

18 Анализ применимости Шаблоны были получены из требований к обычным программам Стоит ли использовать шаблоны для специфицирования АП? Т.е. можем ли выразить требования к АП, используя шаблоны, или у АП есть особенности?

19 Пример организации результатов ТребованиеИсходная формальна запись Шаблон, Ограничение Источник 9Система управления кофеваркой никогда не попадет в такое состояние, в котором она никак не реагирует ни на события системного таймера, ни на нажатие кнопок «ОК» и «C». !(EF act = end) Отс., Глобально AG(!P) !EF(P), P: act = end 5

20 Анализ применимости 118 требований к 15+ программам из ~20 источников 85% покрывается 5 (из 8) шаблонами

21 Оставшиеся 15% Ограниченность системы шаблонов Проблема в самой модели Особенности алгоритма преобразования исходной модели в модель, пригодную для верификации

22 Оставшиеся 15% (Пример 1) Проблема в самой модели? ШТ «Отсутствие» : [](Q & !R -> (!P W R)) Q: Ресурс заняли P: Ресурс свободен R: Ресурс освободили Если ресурс заняли, то он несвободен, пока его не освободят. o1.x1 W o1.z1 & G (o1.z2 -> (o1.x1 W o1.z1) & o1.z1 -> (!o1.x1 W o1.z2))

23 Оставшиеся 15% (Пример 2) Особенности алгоритма преобразования? ШТ «Ответ» (на след. шаге) : [](e 1 -> X(z 1 )) Непосредственно после открытия двери загорается лампочка. e 1 U z 1 e1e1 z1z1 e1e1 z1z1

24 Адаптация шаблонов к АП Пример использования Этот шаблон может быть применен для описания общих свойств модели в целом или отдельной группы состояний. Для специфицирования свойства безопасности (safety) следует использовать это шаблон и ограничение «Глобально». Например, в том случае, когда необходимо выразить свойство вида: «Автомат A никогда не перейдет в состояние s », «В состоянии s никогда не будет обработано событие e » или свойство «Тупиковое состояние» из разд Examples and Known Uses The most common example is mutual exclusion. In a state- based model, the scope would be global and P would be a state formula that is true if more than one process is in its critical section.

25 План Введение Шаблоны требований Применимость к АП Запись требований Заключение

26 Грамматика (фрагмент) ::= ::= «Для любого состояния верно, что» | «До состояния, в котором Q, верно что» | «После состояния, в котором Q, верно что» | «Между состоянием, в котором Q, до состояния, в котором R, верно что» | «После состояния, в котором Q, до состояния, в котором R, верно что» ::= | | | | | ::= «никогда не выполняется P » ::= «всегда выполняется P » ::= «когда-нибудь выполнится P » …… – стартовый нетерминальный символ

27 Методика вывода Неформальный алгоритм: 1.Выделить свойство (требование) 2.Выбрать шаблон и ограничение 3.Выполнить порождение 4.Использую данные шагов 1 и 2 получить формальную запись для верификации

28 Пример вывода (Оригинальное требование) «Система управления кофеваркой никогда не попадет в такое состояние, в котором она не реагирует ни на события системного таймера, ни на нажатие кнопок «ОК» и «C» Кузьмин Е. В., Соколов В. А. Моделирование, спецификация и верификация «автоматных» программ // Программирование , c. 38–60.

29 Пример вывода (Шаг 1) «Система управления кофеваркой никогда не попадет в такое состояние, в котором она не реагирует ни на события системного таймера, ни на нажатие кнопок «ОК» и «C» act = end

30 Пример вывода (Шаг 2) Наречие «никогда» подсказывает, что должен быть использован шаблон «Отсутствие» с ограничением «Глобально»

31 Пример вывода (Шаг 3) Для любого состояния верно, что Для любого состояния верно, что Для любого состояния верно, что никогда не выполняется P

32 Пример вывода (Шаг 4) Для любого состояния верно, что никогда не выполняется act = end Формальный эквивалент для верификации: AG!(act = end) и []!(act = end)

33 План Введение Шаблоны требований Применимость к АП Запись требований Заключение

34 Результаты Исследован вопрос применимости ШТ к спецификации АП Проведена адаптация шаблонов Разработаны грамматики для записи требований на подмножестве русского и английского языков Разработана методика записи верифицируемых требований

35 Дальнейшие исследования Теоретическая сторона: –Анализ требований, которые не удалось выразить (нет и в оригинальной работе!) –Выделение новых шаблонов Практическая сторона: –Wizard для формализации требования –Интеграция с инструментальным средством

36 Конференции VII Межвузовская Конференция Молодых Ученых, СПбГУ ИТМО, Диплом за лучший доклад на секции «Автоматное программирование» Подана статья в «Научно-технический вестник СПбГУ ИТМО» Spring/Summer Young Researchers' Colloquium on Software Engineering (SYRCoSE 2010), Нижний Новгород, Workshop on Program Semantics, Specification and Verification: Theory and Applications (PSSV 2010) в рамках Computer Science Symposium in Russia (CSR 2010), Казань,

37 Спасибо! Вопросы? Клебанов Андрей, 6538