19
1 ГОСУДАРСТВЕННЫ Й УНИВЕРСИТЕТ ГОСУДАРСТВЕННЫ Й УНИВЕРСИТЕТ Верификация многопоточных автоматных программ с использованием инструментального средства Spin Лукин М. А., Шалыто А. А. 2013

TMPA-2013 Lukin: Spin

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: TMPA-2013 Lukin: Spin

1

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

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

инструментального средства Spin

Лукин М. А., Шалыто А. А.

2013

Page 2: TMPA-2013 Lukin: Spin

2

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Итория

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

Работа началась в 2005 г.В 2007 был выигран грант Инструментальные средства

Page 3: TMPA-2013 Lukin: Spin

3

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Область применения

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

Реактивные программы (особенно программы управления оборудованием)

Формальная спецификация (например, UML)

Event-driven programmingОбработка текста

Page 4: TMPA-2013 Lukin: Spin

4

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Верификация автоматов Stateflow

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

Полную верификацию никто не сделалНаиболее полная верификация –

сингапурский университет: Chen C., Sun J., Liu Y., Dong J., Zheng M. 2013. Нельзя формулировать темпоральные

свойства

Page 5: TMPA-2013 Lukin: Spin

5

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Выбор верификатора

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

Spin – один из самых популярныхОпубликован ряд книгУдобно использовать в учебном процессе

Page 6: TMPA-2013 Lukin: Spin

6

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Пример: прототип управления гусеничным шасси

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

Два автомата AChassis: left и right управляют двигателями.

Автомат Amanager подает команды автоматам left и right.

Page 7: TMPA-2013 Lukin: Spin

7

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

AManager

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

Page 8: TMPA-2013 Lukin: Spin

8

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

AChassis

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

Page 9: TMPA-2013 Lukin: Spin

9

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Автоматная модель

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

Система параллельно работающих ИКААвтоматы смешанного типа (Мура + Мили)Взаимодействие: сообщения и общие

переменныеВыходные воздействия:

Список функций Произвольный код

Переменные в автоматах

Page 10: TMPA-2013 Lukin: Spin

10

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Зачем интерактивность?

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

Бесконечный цикл: события, по которым нет перехода

Проверка поведения при неожиданных событиях

Page 11: TMPA-2013 Lukin: Spin

11

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Интерактивность

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

Источники событийПараллельностьПеременныеОпции SpinУдобный для человека код

Page 12: TMPA-2013 Lukin: Spin

12

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Состояние автомата

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

typedef AChassisData

{

byte state;

byte curEvent;

byte ID;

byte functionCall;

byte nestedMachine;

bool started;

bool finished;

//Переменные автомата

}

Page 13: TMPA-2013 Lukin: Spin

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;

}

Page 14: TMPA-2013 Lukin: Spin

14

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Моделирование автомата

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

inline AManager(machine, evt) {if::(machine.state ==s0) ->

if::((evt == e0)) ->

machine.state = s1;…fi;

…fi;}

Page 15: TMPA-2013 Lukin: Spin

15

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Источник событий

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

Процесс, который запускается вместе с процессом автомата

Отправляет события в канал автомата Случайные Только те, которые могут быть обработаны

Page 16: TMPA-2013 Lukin: Spin

16

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Спецификация

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

Спецификация при помощи assert и LTL Невозможность запуска одного экземпляра дважды

atomic {

assert (!left.started);

run leftProc();

} } Если пришла команда остановки, то левый двигатель

будет остановлен

G ( manager.stop (F (left.EngineStop)) )

Page 17: TMPA-2013 Lukin: Spin

17

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Внедрение

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

ООО «СТЦ»Мобильные приложенияУчебный процесс

Page 18: TMPA-2013 Lukin: Spin

18

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Ограничения метода

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

Ограничение на размер одного автоматаОграничение на число volatile-переменныхОграничение на общий размер модели:

проводятся исследования

Page 19: TMPA-2013 Lukin: Spin

19

ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ

Лукин М. А., Вельдер С. Э., Яминов Б. Р.Верификация программного обеспечения

Конец слайдов

Спасибо за внимание!