Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TMPA-2013 Lukin: Spin

TMPA-2013 Lukin: Spin

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

5206c19df417b8876825b5561344c1a0?s=128

Exactpro
PRO

October 11, 2013
Tweet

Transcript

  1. 1 Верификация многопоточных автоматных программ с использованием инструментального средства Spin

    Лукин М. А., Шалыто А. А. 2013
  2. 2 Итория Лукин М. А., Шалыто А. А. Верификация распределенных

    автоматных программ с использованием инструментального средства Spin Работа началась в 2005 г. В 2007 был выигран грант Инструментальные средства
  3. 3 Область применения Лукин М. А., Шалыто А. А. Верификация

    распределенных автоматных программ с использованием инструментального средства Spin Реактивные программы (особенно программы управления оборудованием) Формальная спецификация (например, UML) Event-driven programming Обработка текста
  4. 4 Верификация автоматов Stateflow Лукин М. А., Шалыто А. А.

    Верификация распределенных автоматных программ с использованием инструментального средства Spin Полную верификацию никто не сделал Наиболее полная верификация – сингапурский университет: Chen C., Sun J., Liu Y., Dong J., Zheng M. 2013.  Нельзя формулировать темпоральные свойства
  5. 5 Выбор верификатора Лукин М. А., Шалыто А. А. Верификация

    распределенных автоматных программ с использованием инструментального средства Spin Spin – один из самых популярных Опубликован ряд книг Удобно использовать в учебном процессе
  6. 6 Пример: прототип управления гусеничным шасси Лукин М. А., Шалыто

    А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Два автомата AChassis: left и right управляют двигателями. Автомат Amanager подает команды автоматам left и right.
  7. 7 AManager Лукин М. А., Шалыто А. А. Верификация распределенных

    автоматных программ с использованием инструментального средства Spin
  8. 8 AChassis Лукин М. А., Шалыто А. А. Верификация распределенных

    автоматных программ с использованием инструментального средства Spin
  9. 9 Автоматная модель Лукин М. А., Шалыто А. А. Верификация

    распределенных автоматных программ с использованием инструментального средства Spin Система параллельно работающих ИКА Автоматы смешанного типа (Мура + Мили) Взаимодействие: сообщения и общие переменные Выходные воздействия:  Список функций  Произвольный код Переменные в автоматах
  10. 10 Зачем интерактивность? Лукин М. А., Шалыто А. А. Верификация

    распределенных автоматных программ с использованием инструментального средства Spin Бесконечный цикл: события, по которым нет перехода Проверка поведения при неожиданных событиях
  11. 11 Интерактивность Лукин М. А., Шалыто А. А. Верификация распределенных

    автоматных программ с использованием инструментального средства Spin Источники событий Параллельность Переменные Опции Spin Удобный для человека код
  12. 12 Состояние автомата Лукин М. А., Шалыто А. А. Верификация

    распределенных автоматных программ с использованием инструментального средства Spin typedef AChassisData { byte state; byte curEvent; byte ID; byte functionCall; byte nestedMachine; bool started; bool finished; //Переменные автомата }
  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 Моделирование автомата Лукин М. А., Шалыто А. А. Верификация

    распределенных автоматных программ с использованием инструментального средства Spin inline AManager(machine, evt) { if ::(machine.state ==s0) -> if ::((evt == e0)) -> machine.state = s1; … fi; … fi; }
  15. 15 Источник событий Лукин М. А., Шалыто А. А. Верификация

    распределенных автоматных программ с использованием инструментального средства Spin Процесс, который запускается вместе с процессом автомата Отправляет события в канал автомата  Случайные  Только те, которые могут быть обработаны
  16. 16 Спецификация Лукин М. А., Шалыто А. А. Верификация распределенных

    автоматных программ с использованием инструментального средства Spin  Спецификация при помощи assert и LTL  Невозможность запуска одного экземпляра дважды atomic { assert (!left.started); run leftProc(); } }  Если пришла команда остановки, то левый двигатель будет остановлен G ( manager.stop → (F (left.EngineStop)) )
  17. 17 Внедрение Лукин М. А., Шалыто А. А. Верификация распределенных

    автоматных программ с использованием инструментального средства Spin ООО «СТЦ» Мобильные приложения Учебный процесс
  18. 18 Ограничения метода Лукин М. А., Шалыто А. А. Верификация

    распределенных автоматных программ с использованием инструментального средства Spin Ограничение на размер одного автомата Ограничение на число volatile-переменных Ограничение на общий размер модели: проводятся исследования
  19. 19 Лукин М. А., Вельдер С. Э., Яминов Б. Р.

    Верификация программного обеспечения Конец слайдов Спасибо за внимание!