TMPA-2013 Lukin: Spin

677 views

Published on

Lukin, M., Shalyto, А. , St. Petersburg National Research University of Information Technologies, Mechanics and Optics
Verification of Distributed Automated Programs Using the Spin Tool

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
677
On SlideShare
0
From Embeds
0
Number of Embeds
144
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • <number>
    <number>
  • <number>
    <number>
  • TMPA-2013 Lukin: Spin

    1. 1. 1 Верификация многопоточных автоматных программ с использованием инструментального средства Spin Лукин М. А., Шалыто А. А. 2013
    2. 2. 2 Итория Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Работа началась в 2005 г. В 2007 был выигран грант Инструментальные средства
    3. 3. 3 Область применения Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Реактивные программы (особенно программы управления оборудованием) Формальная спецификация (например, UML) Event-driven programming Обработка текста
    4. 4. 4 Верификация автоматов Stateflow Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Полную верификацию никто не сделал Наиболее полная верификация – сингапурский университет: Chen C., Sun J., Liu Y., Dong J., Zheng M. 2013.  Нельзя формулировать темпоральные свойства
    5. 5. 5 Выбор верификатора Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Spin – один из самых популярных Опубликован ряд книг Удобно использовать в учебном процессе
    6. 6. 6 Пример: прототип управления гусеничным шасси Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Два автомата AChassis: left и right управляют двигателями. Автомат Amanager подает команды автоматам left и right.
    7. 7. 7 AManager Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin
    8. 8. 8 AChassis Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin
    9. 9. 9 Автоматная модель Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Система параллельно работающих ИКА Автоматы смешанного типа (Мура + Мили) Взаимодействие: сообщения и общие переменные Выходные воздействия:  Список функций  Произвольный код Переменные в автоматах
    10. 10. 10 Зачем интерактивность? Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Бесконечный цикл: события, по которым нет перехода Проверка поведения при неожиданных событиях
    11. 11. 11 Интерактивность Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Источники событий Параллельность Переменные Опции Spin Удобный для человека код
    12. 12. 12 Состояние автомата Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin typedef AChassisData { byte state; byte curEvent; byte ID; byte functionCall; byte nestedMachine; bool started; bool finished; //Переменные автомата }
    13. 13. 13 Моделирование автомата Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin proctype leftProc () { byte newEvt; left.started= true; left_ch ? newEvt; leftParamChange(); do :: left.finished == false -> left_ch ? newEvt; AChassis(left, newEvt); :: else -> skip; od; }
    14. 14. 14 Моделирование автомата Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin inline AManager(machine, evt) { if ::(machine.state ==s0) -> if ::((evt == e0)) -> machine.state = s1; … fi; … fi; }
    15. 15. 15 Источник событий Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Процесс, который запускается вместе с процессом автомата Отправляет события в канал автомата  Случайные  Только те, которые могут быть обработаны
    16. 16. 16 Спецификация Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin  Спецификация при помощи assert и LTL  Невозможность запуска одного экземпляра дважды atomic { assert (!left.started); run leftProc(); } }  Если пришла команда остановки, то левый двигатель будет остановлен G ( manager.stop → (F (left.EngineStop)) )
    17. 17. 17 Внедрение Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin ООО «СТЦ» Мобильные приложения Учебный процесс
    18. 18. 18 Ограничения метода Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Ограничение на размер одного автомата Ограничение на число volatile-переменных Ограничение на общий размер модели: проводятся исследования
    19. 19. 19Лукин М. А., Вельдер С. Э., Яминов Б. Р. Верификация программного обеспечения Конец слайдов Спасибо за внимание!

    ×