Download - 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
ГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТ
Лукин М. А., Вельдер С. Э., Яминов Б. Р.Верификация программного обеспечения
Конец слайдов
Спасибо за внимание!