7055c6b9e86badab56522a0c229d05a1.ppt
- Количество слайдов: 27
Формальная верификация: методы и приложения В. Кулямин Е. Корныхин
План Общие вопросы n Модели n Методы n Инструменты и приложения n 2
Определение n Верификация – проверка корректности результатов некоторого этапа разработки по отношению к требованиям, сформулированным на предыдущих этапах Потребности Требования Проектные решения (Проектные решения)' n Валидация Система 3
Формальная верификация Формальная проверка n Должны быть представлены в виде формальных моделей n = реализация ¨ Требования = спецификация ¨ Результаты n I S Соответствие между ними должно быть определено формально 4
Формальное и неформальное n n n Формально можно проверить только что-то формальное Реальные потребности и реальная система – неформальны Проверять адекватность самих формальных моделей нужно другими способами Потребности Спецификация Реализация Система 5
Объект верификации n n Программное и аппаратное обеспечение Формальная верификация ¨ Предистория Взлом шифраторов: E. F. Moore – 1956 ¨ Начало ПО: Floyd – 1967, Hoare – 1969 ¨ Развитие В основном АО: 1979– 1995 n Почему АО? ¨ ¨ Более простые примитивы + более однородная структура Стоимость ошибок значительно выше Повторно используется больше проектной информации Инженеры привычны к строгим ограничениям и точным описаниям 6
Общие требования n n Полезные системы достаточно сложны Есть несколько уровней детализации Верификация должна быть иерархической Верификация должна быть модульной 7
Абстракция и уточнение n n n Абстракция упрощает модель Но уточнение должно обеспечить перенос результатов Виды абстракций ¨ Структурная абстракция ¨ Функциональная абстракция ¨ Абстракция данных ¨ Абстракция взаимодействий ¨ Временная абстракция 8
План Общие вопросы n Модели n Методы n Инструменты и приложения n 9
Основные виды моделей n Виды формализмов ¨ Логико-алгебраические ¨ Операционные n (исполнимые) L E Виды соответствий I ⊢ S (I S) ¨ Моделирование I ⊨ S ¨ Симуляция I↝S ¨ Выводимость L-L E-E 10
Логико-алгебраические 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 (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, 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 С полным моделированием – Спецификация и реализация известны S n ? I С неполным моделированием – Известна только спецификация S ? I Система 15
Полное моделирование 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. Nicola – 1984 Верификационный мониторинг (runtime verification, passive testing) С 1970 -х было много работ, в которых этот термин не употреблялся ~1999 – термин (Havelund, Rosu ? ) 17
Распределение работ 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 Неавтоматизированный анализ ¨ 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 (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. Rover (1995) ¨ ESC/Java 2 (2002) ¨ Java Path. Finder (2004) n Abstract interpretation ¨ ASTREE (2001) 22
Спасибо за внимание! 23
Дедуктивный анализ 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 -го порядка + 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) + 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 + язык, похожий на VDM Тоже несколько десятков приложений n Протоколы n Авионика + космос (NASA) (1996 -1998) n Часть ядра ОС (1998) n Управляющая система АЭС (1999) n Процессоры ¨ ¨ AAMP 5 (1995) VAMP FPU (2005) 27


