Upload
easter
View
93
Download
0
Embed Size (px)
DESCRIPTION
Применение шаблонов требований для формальной спецификации и верификации автоматных программ. Клебанов Андрей , 6538 Науч . рук . Степанов Олег , к . т . н , СПбГУ ИТМО и JetBrains. План. Введение Шаблоны требований ( ШТ ) Применимость к автоматному программированию (АП) - PowerPoint PPT Presentation
Citation preview
Применение шаблонов требований для формальной
спецификации и верификации автоматных
программ
Клебанов Андрей, 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 // Моделирование и анализ информационных систем. Ярославль: ЯрГУ. 2007. Т. 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)
До R <>R -> (!P U R)
После Q [](Q -> [](!P))
Между Q и R []((Q & !R & <>R) -> (!P U R))
После Q до R [](Q & !R -> (!P W R))
CTL Ограничение Запись
Глобально AG(!P)
После Q AG(Q -> AG(!P))
… …
После Q до R AG(Q & !R -> A[!P W R])
Пример использования
Этот шаблон может быть применен для описания общих свойств модели в целом или отдельной группы состояний. Для специфицирования свойства безопасности (safety) следует использовать это шаблон и ограничение «Глобально». Например, в том случае, когда необходимо выразить свойство вида: «Автомат A никогда не перейдет в состояние s», «В состоянии s никогда не будет обработано событие e» или свойство «Тупиковое состояние» из разд. 1.1.4.
Связь с другими шаблонами
…
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)Особенности алгоритма преобразования?
ШТ «Ответ» (на след. шаге): [](e1 -> X(z1))
Непосредственно после открытия двери загорается лампочка.
e1 U z1
e1 z1 e1 z1
24
Адаптация шаблонов к АП
Пример использования
Этот шаблон может быть применен для описания общих свойств модели в целом или отдельной группы состояний. Для специфицирования свойства безопасности (safety) следует использовать это шаблон и ограничение «Глобально». Например, в том случае, когда необходимо выразить свойство вида: «Автомат A никогда не перейдет в состояние s», «В состоянии s никогда не будет обработано событие e» или свойство «Тупиковое состояние» из разд. 1.1.4.
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»
Кузьмин Е. В., Соколов В. А. Моделирование, спецификация и верификация «автоматных» программ // Программирование. 2008. № 1, 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 Межвузовская Конференция Молодых Ученых, СПбГУ ИТМО, 20-23.04.2010Диплом за лучший доклад на секции «Автоматное программирование»Подана статья в «Научно-технический вестник СПбГУ ИТМО»
• Spring/Summer Young Researchers' Colloquium on Software Engineering (SYRCoSE 2010), Нижний Новгород, 1-2.06.2010
• Workshop on Program Semantics, Specification and Verification: Theory and Applications (PSSV 2010) в рамках Computer Science Symposium in Russia (CSR 2010), Казань, 14-15.06.2010
37
Спасибо!
Вопросы?
Клебанов Андрей, 6538