Верификация автоматных программ Ремизов А.О., д.т.н., проф. Шалыто А.А.

Slides:



Advertisements
Similar presentations
1 Reasoning with Promela Safety properties bad things do not happen can check by inspecting finite behaviours Liveness properties good things do eventually.
Advertisements

The SPIN System. What is SPIN? Model-checker. Based on automata theory. Allows LTL or automata specification Efficient (on-the-fly model checking, partial.
The SPIN System. What is SPIN? Model-checker. Based on automata theory. Allows LTL or automata specification Efficient (on-the-fly model checking, partial.
CS 267: Automated Verification Lecture 8: Automata Theoretic Model Checking Instructor: Tevfik Bultan.
Partial Order Reduction: Main Idea
CS 290C: Formal Models for Web Software Lecture 3: Verification of Navigation Models with the Spin Model Checker Instructor: Tevfik Bultan.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
Promela/SPIN Acknowledgements: These notes used some of the material presented by Flavio Lerda as part of Ed Clarke’s model-checking course.
/ PSWLAB P ROMELA Semantics from “THE SPIN MODEL CHECKER” by G. J. Holzmann Presented by Hong,Shin 5 th Oct :021PROMELA Semantics.
תרגול 9 META LABELS. Basic types of claims State properties.
Frederico Araujo CS6362 – Fall 2010 The SPIN Model Checker.
CS 267: Automated Verification Lecture 10: Nested Depth First Search, Counter- Example Generation Revisited, Bit-State Hashing, On-The-Fly Model Checking.
PSWLAB S PIN Search Algorithm from “THE SPIN MODEL CHECKER” by G Holzmann Presented by Hong,Shin 9 th Nov SPIN Search Algorithm.
1 Temporal Claims A temporal claim is defined in Promela by the syntax: never { … body … } never is a keyword, like proctype. The body is the same as for.
The Spin Model Checker Promela Introduction Nguyen Tuan Duc Shogo Sawai.
1 Spin Model Checker Samaneh Navabpour Electrical and Computer Engineering Department University of Waterloo SE-464 Summer 2011.
Spin Tutorial (some verification options). Assertion is always executable and has no other effect on the state of the system than to change the local.
Автоматическая генерация кода программ с явным выделением состояний Канжелев С.Ю. магистрант СПбГУ ИТМО Шалыто А.А. доктор технических наук профессор СПбГУ.
Дипломная работа Ивановой О.О., группа 545 Научный руководитель: д. ф.-м. н., профессор Терехов А.Н. Генерация кода по диаграмме активностей.
Инструмент реинжиниринга спецификаций трансляций Константин Андреевич Улитин Научный руководитель: Я.А. Кириленко Рецензент: Н.М. Тимофеев Санкт-Петербургский.
Санкт - Петербургский Государственный Университет Математико - механический факультет Кафедра системного программирования Система проверки данных на полноту.
Применение генетического программирования для построения автоматов А. А. Шалыто Г. А. Корнеев Санкт-Петербургский государственный университет информационных.
Виртуальная лаборатория для первоначального обучения проектированию программ Н. Н. Красильников, В. Г. Парфенов, Ф. Н. Царев, А. А. Шалыто Кафедра компьютерных.
1 СПбГУ ИТМО, кафедра Компьютерных Технологий ПРИМЕНЕНИЕ АВТОМАТНОГО ПРОГРАММИРОВАНИЯ ДЛЯ ПОСТРОЕНИЯ СИСТЕМ УПРАВЛЕНИЯ БИЗНЕС- ПРОЦЕССАМИ Евгений Андреевич.
Temporal Logic Model- checking with SPIN COMP6004 Stéphane Lo Presti Part 4: Specifications.
ВЛАДИМИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Факультет прикладной математики и физики.
Применение шаблонов требований для формальной спецификации и верификации автоматных программ Клебанов Андрей, 6538 Науч. рук. Степанов Олег, к.т.н, СПбГУ.
Разработка программного обеспечения (Software Engineering) Часть 2. Создание ПО.
1 Carnegie Mellon UniversitySPINFlavio Lerda SPIN An explicit state model checker.
1 Моделирование задержки радиосигнала в тропосфере Степанов К.Ю. Научный руководитель профессор, д. ф-м.н. Жаров В.Е. Первая московская астрометрическая.
Совместное применение генетического программирования и верификации моделей для построения автоматов управления системами со сложным поведением К. В. Егоров,
Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Семинар 2. Знакомство с построением диаграмм вариантов.
Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением Ф. Н. Царев, А. А. Шалыто 2007 год.
Генерация вероятностных автоматов методами Reinforcement Learning Выполнил: Иринёв А. В. Руководитель: Шалыто А. А.
Симулятор квантовых вычислений Выполнил: Гедерцев А.С. Руководитель, д.ф.-м.н., профессор: Граничин О.Н.
Применение метода представления функции переходов с помощью абстрактных конечных автоматов в генетическом программировании Царев Ф. Н. Научный руководитель.
Санкт-Петербургский Государственный Университет Математико-Механический факультет Кафедра системного программирования Применение диаграмм двоичных решений.
Реализация XPath над S-выражениями 2007 Миленин Евгений, гр. 544 Кафедра Системного Программирования Математико-Механический ф-т, СПбГУ Научный руководитель:
Анализ и Проектирование качественных приложений Презентация по книге Крэга Лармана.
Разработка программного средства 3Genetic для генерации автоматов управления системами со сложным поведением Государственный контракт №
Разработка программного обеспечения (Software Engineering) Часть 2. Создание ПО.
Технология верификации управляющих программ со сложным поведением, построенных на основе автоматного подхода Руководитель проекта – А. А. Шалыто Докладчик.
CS 290C: Formal Models for Web Software Lecture 4: Model Checking Navigation Models with Spin Instructor: Tevfik Bultan.
Применение генетического программирования для реализации систем со сложным поведением Санкт-Петербургский Государственный Университет Информационных Технологий,
The Parallel PV Model-checker Robert Palmer and Ganesh Gopalakrishnan School of Computing University of Utah.
Wishnu Prasetya Model Checking with SPIN A Bit More about SPIN.
Correctness requirements. Basic Types of Claims Basic assertions End-state labels Progress-state labels Accept-state labels Never claims Trace assertions.
Scientific Computing By: Fatima Hallak To: Dr. Guy Tel-Zur.
Sept COMP60611 Fundamentals of Parallel and Distributed Systems Lecture 15 More Advanced Program Properties: Temporal logic and jSpin John Gurd,
Concurrency. A process is a program executing on a virtual computer Processor speed and multiplexing of shared resources are ignored Order of thread execution.
MODEL CHECKING WITH SPIN MODELING AND VERIFICATION WITH SPIN ANDREA ORLANDINI – ISTC (CNR) TexPoint fonts used in EMF. Read the TexPoint manual before.
CIS 842: Specification and Verification of Reactive Systems Lecture SPIN-Soldiers: Soldiers Case Study Copyright , Matt Dwyer, John Hatcliff,
Temporal Logic Model-checking with SPIN
General Techniques for Symmetry Reduction in Model Checking Alastair Donaldson Alice Miller Department of Computing Science University of Glasgow.
May University of Glasgow Generalising Feature Interactions in Muffy Calder, Alice Miller Dept. of Computing Science University of Glasgow.
The Spin Model Checker : Part I Moonzoo Kim KAIST.
/ PSWLAB S PIN Search Optimization from “THE SPIN MODEL CHECKER” by G. Holzmann Presented by Hong,Shin 23 th Nov SPIN Search.
Lecture 4 Introduction to Promela. Promela and Spin Promela - process meta language G. Holzmann, Bell Labs (Lucent) C-like language + concurrency dyamic.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
1 Pass the Parcel /* Pass the parcel in Promela */ /* passing is not atomic */ /* communication is asynchronous */ /* Muffy Calder, November 2000 */ mtype.
Today’s Agenda  Quiz 5 (end of the class)  Quick Review  Finish Search Algorithms Formal Methods in Software Engineering1.
Today’s Agenda  Quiz 4  Temporal Logic Formal Methods in Software Engineering1.
Using SPIN. INTRODUCTION To extend the protocol simulator from Chapter 12 with an validator generator, all we have to do is to activate two command line.
Symbolic Model Checking of Software Nishant Sinha with Edmund Clarke, Flavio Lerda, Michael Theobald Carnegie Mellon University.
CSE 555 Protocol Engineering Dr. Mohammed H. Sqalli Computer Engineering Department King Fahd University of Petroleum & Minerals Credits: Dr. Abdul Waheed.
Formal verification in SPIN
An explicit state model checker
A Refinement Calculus for Promela
COMP60621 Designing for Parallelism
CSE 503 – Software Engineering
Presentation transcript:

Верификация автоматных программ Ремизов А.О., д.т.н., проф. Шалыто А.А.

2 Методы верификации программного обеспечения Экспертиза Статический анализ Динамические методы Формальные методы Синтетические методы

3 Верификация методом Model checking 1.Построение формальной модели 2.Формулировка требований к программе и модели с помощью формул темпоральной логики 3.Инструментальное средство верификации (например, SPIN) 4.Верификация модели

4 Трудности верификации традиционных программ Отсутствие автоматического преобразования в модель для верификации Отсутствие автоматического перехода от контрпримера к программе Генерация огромного числа состояний структуры Крипке

5 Верификация автоматных программ с помощью верификатора SPIN 1.Автоматическое преобразование автомата в текстовое описание модели (структуру Крипке) на языке Promela 2.Число состояний (управляющих) от единиц до сотен (тысяч) 3.Задание отрицания проверяемого требования формулой темпоральной логики и генерации для нее конструкции never claim 4.Преобразование текстового описания модели на языке Promela с включенной конструкцией never claim в программу на языке C 5.Верификация модели 6.Вывод контрпримера (в случае ошибки) и автоматический переход к контрпримеру в программе

6 Парадигма автоматного программирования СУОУ z1z1 x 2, e x1x1 Автоматизированный объект управления Устройство управления a b c Машина Тьюринга

7 Схема связей Пример. Начальная загрузка модуля борьбы с противником

8 Диаграмма состояний

9 Фрагмент текстового описания модели на языке Promela inline A0() { stateA0=0; do ::(stateA0==0)-> printf("State 0: Waiting for activation\n"); if ::stateA0=1; lastEvent=10; printf("Going to state 1\n"); fi ::(stateA0==1)-> printf("State 1: Waiting for persistent data loading start\n"); if ::stateA0=2; lastEvent=11; printf("Going to state 2\n"); ::stateA0=5; lastEvent=30; printf("Going to state 5\n"); fi... od } proctype Model() { A0(); } init { run Model(); }

10 Требования к программе для задачи начальной загрузки

11 Отчет программы-верификатора (ошибок не обнаружено) warning: never claim + accept labels requires -a flag to fully verify hint: this search is more efficient if pan.c is compiled -DSAFETY warning: for p.o. reduction to be valid the never claim must be stutter-invariant (never claims generated from LTL formulae are stutter-invariant) (Spin Version September 2009) + Partial Order Reduction Full statespace search for: never claim + assertion violations + (if within scope of claim) acceptance cycles - (not selected) invalid end states - (disabled by never claim) State-vector 28 byte, depth reached 85, errors: states, stored 110 states, matched 228 transitions (= stored+matched) 0 atomic steps hash conflicts: 0 (resolved) memory usage (Mbyte)

12 Фрагмент диаграммы с внесенной ошибкой x10 заменяем на x11

13 Отчет программы-верификатора (обнаружена ошибка ) warning: never claim + accept labels requires -a flag to fully verify hint: this search is more efficient if pan.c is compiled -DSAFETY warning: for p.o. reduction to be valid the never claim must be stutter- invariant (never claims generated from LTL formulae are stutter-invariant) pan: claim violated! (at depth 15) pan: wrote SWC1.trail (Spin Version September 2009) Warning: Search not completed + Partial Order Reduction Full statespace search for: never claim + assertion violations + (if within scope of claim) acceptance cycles - (not selected) invalid end states - (disabled by never claim) State-vector 28 byte, depth reached 15, errors: 1 8 states, stored 0 states, matched 8 transitions (= stored+matched) 0 atomic steps hash conflicts: 0 (resolved) memory usage (Mbyte)

14 Вывод контрпримера верификатором SPIN Never claim moves to line 13 [(1)] State 0: Waiting for activation Never claim moves to line 11 [(((lastEvent>10)&&(stateA0==1)))] Going to state 1 Never claim moves to line 21 [(1)] spin: trail ends after 15 steps #processes: 2 stateA0 = 1 lastEvent = 11 15: proc 1 (Model) line 27 "SWC1" (state 65) 15: proc 0 (:init:) line 133 "SWC1" (state 2) 15: proc - (:never:) line 22 "SWC1" (state 16) 2 processes created

15 Где еще ведутся аналогичные работы СПбГУ ИТМО (Научно-технический вестник СПбГУ ИТМО. Автоматное программирование. Выпуск ) Ярославский государственный университет им. П.Г. Демидова (Кузьмин Е.В., Соколов В.А. Моделирование, спецификация и верификация «автоматных» программ //Программирование № 1, с ) NASA (NASA: Миссия надежна //Открытые системы № 3)

16 Выводы автоматическое построение модели для верификации; точное определение проверяемых свойств с помощью формул темпоральной логики; возможность верифицировать автоматные модели уже на стадии проектирования ПО; использование широко распространенных программ- верификаторов; для автоматных программ удается резко повысить уровень автоматизации их верификации.

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