TMPA-2013 Lukin: Spin

Post on 05-Dec-2014

649 views 1 download

description

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

Transcript of TMPA-2013 Lukin: Spin

1

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

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

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

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

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

2013

2

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

Итория

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

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

3

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

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

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

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

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

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

4

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

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

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

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

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

свойства

5

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

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

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

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

6

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

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

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

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

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

7

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

AManager

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

8

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

AChassis

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

9

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

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

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

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

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

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

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

10

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

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

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

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

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

11

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

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

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

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

12

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

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

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

typedef AChassisData

{

byte state;

byte curEvent;

byte ID;

byte functionCall;

byte nestedMachine;

bool started;

bool finished;

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

}

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

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

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

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

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

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

machine.state = s1;…fi;

…fi;}

15

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

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

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

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

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

16

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

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

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

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

atomic {

assert (!left.started);

run leftProc();

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

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

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

17

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

Внедрение

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

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

18

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

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

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

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

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

19

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

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

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

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