Технология верификации управляющих программ со сложным

advertisement
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Технология верификации
управляющих программ со сложным
поведением, построенных на основе
автоматного подхода
Руководитель проекта – А. А. Шалыто
Докладчик – Ф. Н. Царев
Санкт-Петербургский государственный
университет информационных технологий,
механики и оптики
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ



Парадигма автоматного
программирования
Предложено в России в 1991
году
Программные системы
разрабатываются как системы
взаимодействующих
автоматизированных объектов
управления
Система управления является
системой взаимодействующих
конечных автоматов
E, X2
Система
управления
Z
Объект
управления
X1
Состояния
События и входные
переменные
 Выходные воздействия
 Конечный автомат
 Система конечных
автоматов


Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
2
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Виды верификации
 Динамическая

Тестирование
 Статическая


Доказательная
Верификация на модели
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
3
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Верификация моделей
традиционно построенных
программ
Модель поведения программы строится на
этапе верификации
 Построение модели Крипке





соответствие модели программе

формулировка требований в терминах модели
Крипке
Построение формальных требований
Формальная верификация

большая размерность пространства состояний

преобразования контрпримеров в термины
исходной программы
Отображение контрпримеров
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
4
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ





Верификация автоматной
модели программы
Модель поведения программы (в общем случае,
система взаимосвязанных автоматов) строится
не на этапе верификации, а при проектировании
программы
Формальное построение модели для
верификации по модели поведения

возможность автоматизации

в терминах автоматов

рассмотрение управляющих состояний

в терминах исходной модели – модели поведения
Формулировка требований к программе
Формальная верификация
Формальное восстановление контрпримеров
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
5
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
1.
2.
3.
4.
Предлагаемые методы
Метод верификации автоматных
программ с использованием
верификатора NuSMV
Метод верификации на основе
темпоральной логики CTL
Метод верификации визуальных
автоматных моделей
Метод верификации на основе
эмуляции
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
6
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
1. Метод верификации автоматных
программ с использованием
верификатора NuSMV
 Выделение
промежуточных
состояний в каждом автомате
 Запись каждого автомата набором
переменных и переходов между ними
 Объединение моделей автоматов в
общую модель
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
7
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ




Выделение промежуточных
состояний (метод 1)
s1 – автомат находится
в состоянии s1;
s2 – в этом состоянии
модели автомат
вызывает автомат A2 с
событием e1;
s3 – переходит в
основное состояние s2;
s5 – автомат находится
в состоянии s2
s6,
inReturn
s1,
inState
s1
e1[x1&x2]/
A2.e1();
s2
s2,
inEvent,
A2.e1()
s3,
inReturn
s4,
inState
s5,
inReturn
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
8
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Запись требований (метод 1)
 Формулы темпоральной логики ACTL
 Автомат Ak находится в состоянии sj
– yk.sj.
 Выполнилось выходное воздействие
z1 – Action_z1.
 Произошло событие ei – A1.ei
 Темпоральные операторы: AF, AG,
A[U]
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
9
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Инструментальное средство
FSM Verifier (метод 1)
 Вход – система автоматов Мили
 Преобразует систему автоматов
в
модель для верификатора NuSMV
 Преобразует контрпример из
формата NuSMV в термины исходной
системы автоматов
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
10
2. Метод верификации на
основе темпоральной логики
CTL
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ


Рекурсивное построение модели Крипке для
системы автоматов, взаимодействующих через
вложенность
Выделение промежуточных состояний в каждом
автомате:
промежуточные состояния, построенные из выходных
воздействий
 промежуточные состояния на переходах

AY,1
AY,1
Start
AY,2
AY,1
Finish
AY,2
Start
AY,v
AY,2
Finish
…
AY,v
Start
AY,v
Finish
Y
InState
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
11
Промежуточные состояния
(метод 2)
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Промежуточные состояния,
построенные из выходных
воздействий
Y
z1, InAction
z2, InAction
z1, z2, …, zn
…
zn, InAction
Y, InState
Промежуточные состояния на
переходах
Y=1
Y1, InState
ei, InEvent
x2, !x4, !x5
ei & x2 & !x4 & !x5 / z1, z2, …, zn
z1, InAction
z2, InAction
…
Y=2
zn, InAction
Y2, InState
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
12
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Запись требований (метод 2)
 Требования
записываются в виде
CTL-формул
 Темпоральные операторы: AF, AG,
A[U], AX, EF, EG, E[U], EX
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
13
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Инструментальное средство
CTL Verifier (метод 2)
Вход – система смешанных (Мили-Мура)
автоматов, взаимодействующих по
вложенности
 Преобразует систему автоматов в модель
Крипке
 Выполняет верификацию (алгоритм
Кларка-Эмерсона-Систлы)
 Преобразует контрпример из терминов
модели Крипке в термины исходной
модели

Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
14
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
3. Метод верификации
визуальных автоматных
моделей
 Преобразование
автоматной модели
в текст программы на языке Promela
 Для каждого автомата создается
функция, для текущего состояния
переменная, для каждого перехода –
оператор, … (14 правил)
 Требования записываются в виде
LTL-формул
 Операторы G, F, U
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
15
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Верификация с
применением SPIN (метод 3)
Требования на языке LTL
в терминах автоматов
Система автоматов
Предварительная обработка
Спецификация на языке Promela
Верификация с применением SPIN
Подтверждение
выполнения требований
Контрпример в
терминах модели
Преобразование контрпримера
Контрпример в
терминах автоматов
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
16
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Инструментальное средство
Converter (метод 3)
 Вход
– XML-описание автоматной
модели, построенной в UniMod
 Преобразование автоматной модели
в текст программы на языке Promela
 Верификация программы с помощью
верификатора SPIN
 Отображение контрпримера в
терминах модели на языке Promela
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
17
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ







4. Метод верификации на
основе эмуляции
Глобальное состояние автоматной программы
задается набором состояний ее автоматов.
Элементарным шагом программы является обработка
автоматной программой одного события.
Элементарный шаг откатывается путем установки
автоматов в исходные состояния.
Перебор возможных историй работы программы
происходит за счет выбора всех возможных событий и
выбора всех возможных значений условий на
переходах.
Предикаты описывают события, действия и значения
переменных, полученные в последнем шаге.
Требования записываются в виде LTL-формул
Операторы G, F, U
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
18
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Верификация с применением
Bogor (метод 4)
Требования на языке LTL
в терминах автоматов
Система автоматов
Конкретизация системы автоматов
Спецификация на языке BIR
Тип данных
«Cистема
автоматов»
Верификация с применением Bogor
Подтверждение
выполнения требований
Контрпример в терминах типа данных
«Cистема автоматов»
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
19
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Инструментальное средство
UniMod.Verifier (метод 4)
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
20
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Пример применения метода
4 – модель банкомата
Автомат AClient
Автомат AServer
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
21
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Банкомат выдает деньги
только после авторизации
[не выдадут деньги] U [введет правильный PIN-код]
!o1.z10 U e10
LTL.temporalProperty(
Property.createObservableDictionary(
Property.createObservableKey("correct_pin",
AutomataModel.wasEvent(model, "e10")),
Property.createObservableKey("give_money",
AutomataModel.wasAction(model, "o1.z10"))
),
LTL.weakUntil(
LTL.negation(LTL.prop("give_money")),
LTL.prop("correct_pin")
)
);
 Свойство выполняется


Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
22
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Деньги не выдаются, пока
пользователь не сделает
соответствующий запрос
[не выдаются деньги] U [сделан запрос на выдачу денег]
!o1.z10 U e23
LTL.temporalProperty (
Property.createObservableDictionary (
Property.createObservableKey("money_requested",
AutomataModel.wasEvent(model, "e23")),
Property.createObservableKey("give_money",
AutomataModel.wasAction(model, "o1.z10"))
),
LTL.weakUntil (
LTL.negation(LTL.prop("give_money")),
LTL.prop("money_requested")
)
);
 Свойство не выполняется


Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
23
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ



Результаты
Разработаны четыре метода верификации
управляющих программ со сложным
поведением, построенных на основе
автоматного подхода
Эффективность методов
продемонстрирована на задаче
верификации модели банкомата
Разработаны прототипы программных
средств, поддерживающих указанные
методы
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
24
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ



Выполнение программных
индикаторов
Защищена одна диссертация на соискание
ученой степени кандидата технических наук –
Гуров В. С. Технология проектирования и
реализации объектно-ориентированных
программ с явным выделением состояний
(метод, инструментальное средство,
верификация)
Опубликовано восемь статей в ведущих научных
журналах
Получено четыре свидетельства об официальной
регистрации программы для ЭВМ
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
25
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Спасибо за внимание
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Технология верификации управляющих программ со сложным поведением, построенных
на основе автоматного подхода
26
Download