Скачать презентацию Формальная верификация методы и приложения В Кулямин Е Скачать презентацию Формальная верификация методы и приложения В Кулямин Е

7055c6b9e86badab56522a0c229d05a1.ppt

  • Количество слайдов: 27

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что осталось? n Тестирование ¨ TGV (1997) ¨ Gotcha (1999) n Мониторинг ¨ Temporal. Что осталось? n Тестирование ¨ TGV (1997) ¨ Gotcha (1999) n Мониторинг ¨ Temporal. Rover (1995) ¨ ESC/Java 2 (2002) ¨ Java Path. Finder (2004) n Abstract interpretation ¨ ASTREE (2001) 22

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

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

Дедуктивный анализ II R. S. Boyer, J. S. Moore Ограниченная логика 1 -го порядка Дедуктивный анализ II R. S. Boyer, J. S. Moore Ограниченная логика 1 -го порядка + Applicative Common Lisp ¨ ¨ ¨ n n 1971 первый инструмент 1986 Nqthm 2001 ACL 2 Ранние приложения Процессоры ¨ ¨ ¨ n FM 8501, FM 8502 (1985); FM 9001 (1997) Motorola MC 68020 (1993), CAP DSP (100 страниц) AMD K 5 (1995), Athlon (1997) IBM 4758 security model Rockwell JVM (2001 -2004) (700 страниц) 25

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

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