Формальная верификация: методы и приложения В. Кулямин Е. Корныхин.

Презентация:



Advertisements
Похожие презентации
8 класс 1960 года Классный рук-ль: Пикалёва В.Г..
Advertisements

Верификация автоматных программ Г. А. Корнеев А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики.
Современные проблемы информатики Лекция 1 Введение Транзиционные системы.
Prezentacii.com. Китайский Новый год Традиционное блюдо в Новый Год на ужин - ПЕЛЬМЕНИ Цзяоцзы (кит. / ) блюдо китайскойкит.китайской кухникухни, из.
Школьные годы чудесные… год. Первый состав оркестра народных инструментов под руководством Шиманова Александра Евдокимовича.
СПбГУИТМО, каф. Вычислительной техники Выбор исполнимой модели для описания логики переходов веб- приложений Чепурной Александр Иванович Начный руководитель:
АНАЛИЗ ИЗЛОМОВ БОКОВЫХ РАМ (2006 ÷ 2014 гг.). Распределение изломов боковых рам тележек грузовых вагонов по заводам-изготовителям вагонного литья за 2006.
Синтетические инструменты структурного тестирования Базовые сведения В. Кулямин.
Слепцова Розалия Романовна, учитель физики МОУ Ойская СОШ им. А.В.Дмитриева Хангаласского улуса РС (Я)
Тренировочное тестирование-2008 Ответы к заданиям КИМ Часть I.
Автоматное программирование А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики 2009 г.
Тема 11 Медицинская помощь и лечение (схема 1). Тема 11 Медицинская помощь и лечение (схема 2)
История создания ОС. Семейство ОС MS Windows.. Операционная система базовый комплекс компьютерных программ, обеспечивающий управление аппаратными средствами.
2010 Предикатное программирование Формальные методы в описании языков и систем программирования п/г спецкурс Ведет спецкурс: Шелехов Владимир Иванович,
Маршрутный лист «Числа до 100» ? ? ?
Информатика ЕГЭ Уровень-А8. Вариант 1 Укажите логическое выражение, равносильное данному: (А^B) v ((¬B ^ ¬A) v A). 1) (A^ B) v (¬B) 2) (A ^ B) v (¬A)
Права человека. Статья 1. Статья 2. Статья 3. Статья 4.
Применение автоматного программирования во встраиваемых системах В. О. Клебан, А. А. Шалыто Санкт-Петербургский государственный университет информационных.
Formal Methods- based Technologies for Safeware COURSE PC1 EU Tempus project TEMPUS-UK-TEMPUS-JPCR National Safeware Engineering Network of Centres.
Методы оценки времени отклика задач в двухъядерных системах реального времени СоискательГуцалов Н.В. Научный руководитель д.т.н., профессор Никифоров В.В.
Транксрипт:

Формальная верификация: методы и приложения В. Кулямин Е. Корныхин

2/23 План Общие вопросы Модели Методы Инструменты и приложения

3/23 Потребности Определение Верификация – проверка корректности результатов некоторого этапа разработки по отношению к требованиям, сформулированным на предыдущих этапах Валидация Требования Проектные решения Система (Проектные решения)'

4/23 Формальная верификация Формальная проверка Должны быть представлены в виде формальных моделей Результаты Требования Соответствие между ними должно быть определено формально = реализация I = спецификация S

5/23 Формальное и неформальное Формально можно проверить только что-то формальное Реальные потребности и реальная система – неформальны Проверять адекватность самих формальных моделей нужно другими способами Потребности Спецификация Реализация Система

6/23 Объект верификации Программное и аппаратное обеспечение Формальная верификация Предистория Взлом шифраторов: E. F. Moore – 1956 Начало ПО: Floyd – 1967, Hoare – 1969 Развитие В основном АО: 1979–1995 Почему АО? Более простые примитивы + более однородная структура Стоимость ошибок значительно выше Повторно используется больше проектной информации Инженеры привычны к строгим ограничениям и точным описаниям

7/23 Общие требования Полезные системы достаточно сложны Есть несколько уровней детализации Верификация должна быть иерархической Верификация должна быть модульной

8/23 Абстракция и уточнение Абстракция упрощает модель Но уточнение должно обеспечить перенос результатов Виды абстракций Структурная абстракция Функциональная абстракция Абстракция данных Абстракция взаимодействий Временная абстракция

9/23 План Общие вопросы Модели Методы Инструменты и приложения

10/23 Основные виды моделей Виды формализмов Логико-алгебраическиеL Операционные (исполнимые)E Виды соответствий Выводимость I S ( I S ) L - L Моделирование I S E - L Симуляция I S E - E

11/23 Логико-алгебраические Алгебраические Реляционные алгебры (Codd ) Абстрактные типы данных (Zilles, Liskov – 1974) Алгебры процессов CSP (Hoare ) CCS (Milner ) ACP (Bergstra, Klop ) … Abstract State Machines (Гуревич ) Логические

12/23 Логические Исчисление высказываний Логика 1-го порядка по объектам типы λ по объектам по предикатам/типам λ по типам G, F, X, U A, E μ, ν λ -исчисление (Church – 1936) λ -исчисления высшего порядка (Girard – 1971) Логики высших порядков (Peirce – 1885) LTL (Prior ) интервалы явное время ITL (Moszkowski – 1983) CTL (Clarke, Emerson ) μ- исчисление (Pratt, Kozen – 1982) TPTL (Alur, Henzinger ) Hoare logic (Hoare )

13/23 Операционные FSM (Huffman ) CFSM (Brand, Zafiropulo ) взаимодействие данные разделение I/O IOA (Tuttle, Lynch – 1987) [ASM] EFSM (1973 ?) Сети Петри (Petri – 1962) ω-слова таймеры ω -автоматы (Buchi – 1960) гибридные (Alur, Henzinger ) временные (Alur, Dill ) LTS (1980 ?) [алгебры процессов] Машины (Тьюринг – 1936) Statecharts (Harel – 1987)

14/23 План Общие вопросы Модели Методы Инструменты и приложения

15/23 Методы верификации С полным моделированием – Спецификация и реализация известны С неполным моделированием – Известна только спецификация SI Система SI ? ?

16/23 Полное моделирование Дедуктивный анализ (theorem proving) Floyd – 1967 Проверка моделей (model checking) Clarke, Emerson – 1981 Проверка симуляции (simulation checking, equivalence checking) Moore – 1956 Символическое выполнение (symbolic execution) Topor, Burstall – 1972 Абстрактная интерпретация (abstract interpretation) Cousot – 1975

17/23 Неполное моделирование Формальное тестирование (formal conformance testing) Василевский – 1973 Hennessy, DeNicola – 1984 Верификационный мониторинг (runtime verification, passive testing) С 1970-х было много работ, в которых этот термин не употреблялся ~1999 – термин (Havelund, Rosu ?)

18/23 Распределение работ Model checking Model checkers Theorem proving Provers, SAT solvers Symbolic execution Formal conformance testing Runtime verificatio n Abstract interpretation Simulation checking

19/23 План Общие вопросы Модели Методы Инструменты и приложения

20/23 Дедуктивный анализ Неавтоматизированный анализ ASM Автоматизированный анализ ACL2 (Boyer, J. S. Moore – 1971) ~ 20 примеров, JVM (700 страниц) HOL (Gordon, 1988) ~ 30 примеров PVS (Owre, Rushby, Shankar – 1992) ~ 30 примеров Isabelle Coq

21/23 Проверка моделей и симуляции Model checkers SPIN (Holzman ~ 1982) SMV (McMillan et al.– 1994) и производные Murφ (Dill – 1992) UPPAAL (Larsen et al. – 1995) Equivalence checkers Verity (Kuehlmann et al. – 1995) Смешанные CADP (INRIA ~ 1990) ~ 50 примеров приложений

22/23 Что осталось? Тестирование TGV (1997) Gotcha (1999) Мониторинг TemporalRover (1995) ESC/Java 2 (2002) Java PathFinder (2004) Abstract interpretation ASTREE (2001)

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

24/23 Дедуктивный анализ I Неавтоматизированный анализ: ASM Модель взаимодействия потоков Java (без исключений и пр.) Гуревич, Schulte, Wallace – 1999 Семантика JVM, Java и преобразования (без параллелизма) Borger, Schimd, Stark – 2001 Семантика SDL 2000 Eschbach, Glasser, Gotzhein, Prinz – 2000

25/23 Дедуктивный анализ II R. S. Boyer, J. S. Moore Ограниченная логика 1-го порядка + Applicative Common Lisp 1971 первый инструмент 1986 Nqthm 2001 ACL2 Ранние приложения Процессоры FM8501, FM8502 (1985); FM9001 (1997) Motorola MC68020 (1993), CAP DSP (100 страниц) AMD K5 (1995), Athlon (1997) IBM 4758 security model Rockwell JVM ( ) (700 страниц)

26/23 Дедуктивный анализ III HOL (Gordon – 1988) Основан на LCF (Milner – 1973) + higher-order logic + ML Несколько десятков работ по применению HOL Банки памяти (1996) Процессоры TAMARACK (1987) Viper (1987) Intel (Harrison, OLeary) ПО Web-сервер (1995) Протоколы Первый верифицированный коммерческий процессор После верификации найдена ошибка!

27/23 Дедуктивный анализ IV PVS (Owre, Rushby, Shankar – 1992) higher-order logic + язык, похожий на VDM Тоже несколько десятков приложений Протоколы Авионика + космос (NASA) ( ) Часть ядра ОС (1998) Управляющая система АЭС (1999) Процессоры AAMP5 (1995) VAMP FPU (2005)