26
ГОСУДАРСТВЕННЫ Й УНИВЕРСИТЕТ Технология верификации управляющих программ со сложным поведением, построенных на основе автоматного подхода Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев Санкт-Петербургский государственный университет информационных технологий, механики и оптики

Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

  • Upload
    morse

  • View
    63

  • Download
    0

Embed Size (px)

DESCRIPTION

Технология верификации управляющих программ со сложным поведением, построенных на основе автоматного подхода. Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев. Санкт-Петербургский государственный университет информационных технологий, механики и оптики. - PowerPoint PPT Presentation

Citation preview

Page 1: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

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

автоматного подхода

Руководитель проекта – А. А. ШалытоДокладчик – Ф. Н. Царев

Санкт-Петербургский государственный университет информационных технологий,

механики и оптики

Page 2: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

2

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

Парадигма автоматного программирования

Предложено в России в 1991 году

Программные системы разрабатываются как системы взаимодействующих автоматизированных объектов управления

Система управления является системой взаимодействующих конечных автоматов

Система управления

Объект управления

E, X2

Z X1

Состояния События и входные

переменные Выходные воздействия Конечный автомат Система конечных

автоматов

Page 3: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

3

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

Виды верификации

ДинамическаяТестирование

СтатическаяДоказательнаяВерификация на модели

Page 4: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

4

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

Верификация моделей традиционно построенных программ

Модель поведения программы строится на этапе верификации

Построение модели Крипке соответствие модели программе

Построение формальных требований формулировка требований в терминах модели

КрипкеФормальная верификация

большая размерность пространства состоянийОтображение контрпримеров

преобразования контрпримеров в термины исходной программы

Page 5: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

5

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

Верификация автоматной модели программы

Модель поведения программы (в общем случае, система взаимосвязанных автоматов) строится не на этапе верификации, а при проектировании программы

Формальное построение модели для верификации по модели поведения возможность автоматизации

Формулировка требований к программе в терминах автоматов

Формальная верификация рассмотрение управляющих состояний

Формальное восстановление контрпримеров в терминах исходной модели – модели поведения

Page 6: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

6

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

Предлагаемые методы

1. Метод верификации автоматных программ с использованием верификатора NuSMV

2. Метод верификации на основе темпоральной логики CTL

3. Метод верификации визуальных автоматных моделей

4. Метод верификации на основе эмуляции

Page 7: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

7

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

1. Метод верификации автоматных программ с использованием верификатора NuSMV

Выделение промежуточных состояний в каждом автомате

Запись каждого автомата набором переменных и переходов между ними

Объединение моделей автоматов в общую модель

Page 8: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

8

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

Выделение промежуточных состояний (метод 1)

s1 – автомат находится в состоянии s1;

s2 – в этом состоянии модели автомат вызывает автомат A2 с событием e1;

s3 – переходит в основное состояние s2;

s5 – автомат находится в состоянии s2

s1

s2

e1[x1&x2]/A2.e1();

s1, inState

s2, inEvent,A2.e1()

s3, inReturn

s4,inState

s6, inReturn

s5, inReturn

Page 9: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

9

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

Запись требований (метод 1)

Формулы темпоральной логики ACTLАвтомат Ak находится в состоянии sj

– yk.sj.Выполнилось выходное воздействие

z1 – Action_z1.Произошло событие ei – A1.eiТемпоральные операторы: AF, AG,

A[U]

Page 10: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

10

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

Инструментальное средство FSM Verifier (метод 1)

Вход – система автоматов МилиПреобразует систему автоматов в

модель для верификатора NuSMVПреобразует контрпример из

формата NuSMV в термины исходной системы автоматов

Page 11: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

11

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

2. Метод верификации на основе темпоральной логики CTL

AY,1

Start

AY,v

Finish

AY,v

Start

AY,2

Finish

AY,2

Start

AY,1

Finish …

AY,1 AY,2 AY,v

Y

InState

Рекурсивное построение модели Крипке для системы автоматов, взаимодействующих через вложенность

Выделение промежуточных состояний в каждом автомате: промежуточные состояния, построенные из выходных

воздействий промежуточные состояния на переходах

Page 12: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

12

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

Промежуточные состояния (метод 2)

Y

z1, z2, …, zn…

Y, InState

z2, InAction

z1, InAction

zn, InAction

Промежуточные состояния, построенные из выходных

воздействий

Y = 1

Y = 2

ei & x2 & !x4 & !x5 / z1, z2, …, zn

Y1, InState

x2, !x4, !x5

ei, InEvent …

Y2, InState

z2, InAction

z1, InAction

zn, InAction

Промежуточные состояния на переходах

Page 13: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

13

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

Запись требований (метод 2)

Требования записываются в виде CTL-формул

Темпоральные операторы: AF, AG, A[U], AX, EF, EG, E[U], EX

Page 14: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

14

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

Инструментальное средство CTL Verifier (метод 2)

Вход – система смешанных (Мили-Мура) автоматов, взаимодействующих по вложенности

Преобразует систему автоматов в модель Крипке

Выполняет верификацию (алгоритм Кларка-Эмерсона-Систлы)

Преобразует контрпример из терминов модели Крипке в термины исходной модели

Page 15: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

15

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

3. Метод верификации визуальных автоматных моделей

Преобразование автоматной модели в текст программы на языке Promela

Для каждого автомата создается функция, для текущего состояния переменная, для каждого перехода – оператор, … (14 правил)

Требования записываются в виде LTL-формул

Операторы G, F, U

Page 16: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

16

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

Верификация с применением SPIN (метод 3)

Система автоматовТребования на языке LTL

в терминах автоматов

Спецификация на языке Promela

Контрпример в терминах модели

Подтверждение выполнения требований

Контрпример в терминах автоматов

Предварительная обработка

Верификация с применением SPIN

Преобразование контрпримера

Page 17: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

17

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

Инструментальное средство Converter (метод 3)

Вход – XML-описание автоматной модели, построенной в UniMod

Преобразование автоматной модели в текст программы на языке Promela

Верификация программы с помощью верификатора SPIN

Отображение контрпримера в терминах модели на языке Promela

Page 18: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

18

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

4. Метод верификации на основе эмуляции

Глобальное состояние автоматной программы задается набором состояний ее автоматов.

Элементарным шагом программы является обработка автоматной программой одного события.

Элементарный шаг откатывается путем установки автоматов в исходные состояния.

Перебор возможных историй работы программы происходит за счет выбора всех возможных событий и выбора всех возможных значений условий на переходах.

Предикаты описывают события, действия и значения переменных, полученные в последнем шаге.

Требования записываются в виде LTL-формул Операторы G, F, U

Page 19: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

19

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

Верификация с применением Bogor (метод 4)

Тип данных«Cистема

автоматов»

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

Спецификация на языке BIR

Конкретизация системы автоматов

Контрпример в терминах типа данных «Cистема автоматов»

Подтверждение выполнения требований

Верификация с применением Bogor

Требования на языке LTL в терминах автоматов

Page 20: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

20

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

Инструментальное средство UniMod.Verifier (метод 4)

Page 21: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

21

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

Пример применения метода 4 – модель банкомата

Автомат AClient Автомат AServer

Page 22: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

22

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

Банкомат выдает деньги только после авторизации

[не выдадут деньги] 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")

)); Свойство выполняется

Page 23: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

23

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

Деньги не выдаются, пока пользователь не сделает соответствующий запрос

[не выдаются деньги] U [сделан запрос на выдачу денег] !o1.z10 U e23LTL.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")

)); Свойство не выполняется

Page 24: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

24

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

Результаты

Разработаны четыре метода верификации управляющих программ со сложным поведением, построенных на основе автоматного подхода

Эффективность методов продемонстрирована на задаче верификации модели банкомата

Разработаны прототипы программных средств, поддерживающих указанные методы

Page 25: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

25

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

Выполнение программных индикаторов

Защищена одна диссертация на соискание ученой степени кандидата технических наук – Гуров В. С. Технология проектирования и реализации объектно-ориентированных программ с явным выделением состояний (метод, инструментальное средство, верификация)

Опубликовано восемь статей в ведущих научных журналах

Получено четыре свидетельства об официальной регистрации программы для ЭВМ

Page 26: Руководитель проекта – А. А. Шалыто Докладчик – Ф. Н. Царев

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

26

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

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

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