370 likes | 558 Views
Применение шаблонов требований для формальной спецификации и верификации автоматных программ. Клебанов Андрей , 6538 Науч . рук . Степанов Олег , к . т . н , СПбГУ ИТМО и JetBrains. План. Введение Шаблоны требований ( ШТ ) Применимость к автоматному программированию (АП)
E N D
Применение шаблонов требований для формальной спецификации и верификации автоматных программ Клебанов Андрей, 6538 Науч. рук. Степанов Олег, к.т.н, СПбГУ ИТМО и JetBrains
План • Введение • Шаблоны требований (ШТ) • Применимость к автоматному программированию (АП) • Запись требований • Заключение
Проблема • К АП хорошо применима верификация на модели • Однако работать с требованиями в виде формул темпоральной логики трудоемко: • Сложно понять • Еще сложнее специфицировать корректно
Пример проблемы «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
Существующеерешение • Графические нотации Облегчают восприятие, но не помогают при спецификации • Естественный язык
Существующеерешение (АП) Контракты: + Проще и понятней, чем темпоральные формулы - Ограничены в выразительных возможностях - Трудоемко для нескольких состояний Степанов О. Г. Методы реализации автоматных объектно-ориентированных программ. Диссертация на соискание ученой степени кандидата технических наук. СПбГУ ИТМО, 2009.
Предлагаемое решение Записывать верифицируемые требования на подмножестве естественного языка
Детали • Требования выводятся из грамматики • Нет необходимости в обработке естественного языка (NLP) • Гибкость для разных предметных областей • Грамматика основывается на шаблонах требований (ШТ) • Для каждого требования существует формальная запись
Актуальность ШТ в контексте АП Васильева К.А., Кузьмин Е.В. Верификация автоматных программ с использованием LTL // Моделирование и анализ информационных систем. Ярославль: ЯрГУ. 2007. Т. 14, № 1, с. 3–14. «… важным является вопрос о шаблонах (структуре) темпоральных свойств, наиболее применимых и адекватных для верификации автоматных программ. Наличие таких шаблонов позволяло бы говорить о классах темпоральных свойств автоматных моделей, что, несомненно, облегчало бы построение технологической схемы проверки автоматных программ на корректность относительно спецификации»
План • Введение • Шаблоны требований • Применимость к АП • Запись требований • Заключение
Шаблоны требований • ШТ – обобщенноеописание (на формальном и естественном языках) часто встречающихся ограничений на допустимые последовательности состояний в модели системы с конечным числом состояний • Формально описывают некий аспект поведения системы 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
Шаблоны требований Требование = ШТ + Ограничение
Шаблоны требований Ограничение– тачасть пути исполнения, на которой должно выполняться требование
Шаблоны требований Глобально До Q Ограничения После Q Между Q и R После Q до R Q R Q R Q Последовательность состояний
Система шаблонов Порядок Наличие Предшествование Ограниченное существование Цепной ответ Отсутствие Цепное предшествование Ответ Существование Всеобщность Шаблоны требований
План • Введение • Шаблоны требований • ПрименимостьШТ к АП • Запись требований • Заключение
Анализ применимости Шаблоны были получены из требований к обычным программам • Стоит ли использовать шаблоны для специфицирования АП? • Т.е. можем ли выразить требования к АП, используя шаблоны, или у АП есть особенности?
Анализ применимости • 118 требований к 15+программам из ~20 источников • 85% покрывается 5 (из 8) шаблонами
Оставшиеся 15% • Ограниченность системы шаблонов • Проблема всамой модели • Особенности алгоритма преобразования исходной модели в модель, пригодную для верификации
Оставшиеся 15% (Пример 1) Проблема всамой модели? ШТ «Отсутствие»:[](Q & !R -> (!P W R)) Q: Ресурс заняли P:Ресурс свободен R:Ресурс освободили
Оставшиеся 15% (Пример 2) Особенности алгоритма преобразования? ШТ «Ответ» (на след. шаге):[](e1 -> X(z1)) e1 z1 e1 z1
План • Введение • Шаблоны требований • Применимость к АП • Запись требований • Заключение
Грамматика (фрагмент) <требование> – стартовый нетерминальный символ
Методика вывода Неформальный алгоритм: • Выделить свойство (требование) • Выбрать шаблон и ограничение • Выполнить порождение • Использую данные шагов №1 и №2 получить формальную запись для верификации
Пример вывода (Оригинальное требование) «Система управления кофеваркой никогда не попадет в такое состояние, в котором она не реагирует ни на события системного таймера, ни на нажатие кнопок «ОК» и «C» Кузьмин Е. В., Соколов В. А. Моделирование, спецификация и верификация «автоматных» программ // Программирование. 2008. № 1, c. 38–60.
Пример вывода (Шаг №1) «Система управления кофеваркой никогда не попадет в такое состояние, в котором она не реагирует ни на события системного таймера, ни на нажатие кнопок «ОК» и «C» act = end
Пример вывода (Шаг №2) Наречие «никогда» подсказывает, что должен быть использован шаблон «Отсутствие» с ограничением «Глобально»
Пример вывода (Шаг №3) <требование> → <ограничение> <шаблон> → Для любого состояния верно, что <шаблон> → Для любого состояния верно, что <отсутствие> → Для любого состояния верно, чтоникогда не выполняется P
Пример вывода (Шаг №4) • Для любого состояния верно, что никогда не выполняется act = end • Формальный эквивалент для верификации: AG!(act = end) и[]!(act = end)
План • Введение • Шаблоны требований • Применимость к АП • Запись требований • Заключение
Результаты • Исследован вопрос применимости ШТ к спецификации АП • Проведена адаптация шаблонов • Разработаны грамматики для записи требований на подмножестве русского и английского языков • Разработана методика записи верифицируемых требований
Дальнейшие исследования • Теоретическая сторона: • Анализ требований, которые не удалось выразить (нет и в оригинальной работе!) • Выделение новых шаблонов • Практическая сторона: • Wizard для формализации требования • Интеграция с инструментальным средством
Конференции • 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
Спасибо! Вопросы? Клебанов Андрей, 6538