Содержание
- 2. ПЛАН Введение Сложность программных систем Ошибки в ПО и их последствия Формальные методы Что это такое
- 3. SOFTWARE CRISIS Конференция NATO 1968 Software сложнее hardware Программная инженерия
- 4. СЛОЖНОСТЬ – БОЛЬШИЕ РАЗМЕРЫ
- 5. СЛОЖНОСТЬ ИНТЕРФЕЙСА
- 6. СЛОЖНОСТЬ – МНОГО КОМПОНЕНТОВ
- 7. СЛОЖНОСТЬ ДАННЫХ
- 8. СЛОЖНОСТЬ ПОВЕДЕНИЯ
- 9. СЛОЖНОСТЬ – МНОГО ВАРИАНТОВ
- 10. СЛОЖНОСТЬ – МНОЖЕСТВО ТЕХНОЛОГИЙ
- 11. СТАТИСТИКА ОШИБОК Основная причина – сложность Среднее количество ошибок на 1000 строк кода
- 12. РИСКИ, СВЯЗАННЫЕ С ОШИБКАМИ Космические аппараты Mariner I (1962) Фобос-1 (1988) Ariane 5 (1996) Mars Climate
- 13. ЧТО ДЕЛАТЬ? Не делать ошибок Невозможно из-за сложности Предотвращение ошибок Тщательный анализ требований и возможных решений
- 14. ВОЗМОЖНОЕ РЕШЕНИЕ Программные системы – одни из самых сложных искусственных систем Нужны методы построения программного обеспечения
- 15. ИСТОКИ ФОРМАЛЬНЫХ МЕТОДОВ Формальные языки [N. Chomsky 1956] BNF и описание языков FORTRAN, ALGOL60 [J. Backus
- 16. «КЛАССИЧЕСКИЙ» ПРОЦЕСС РАЗРАБОТКИ Формализуем постановку задачи (требования к ПО) Строим проектные решения (возможно, в несколько шагов)
- 17. СПОСОБЫ ОПРЕДЕЛЕНИЯ СЕМАНТИКИ Денотационная семантика Программы – функции, задаваемые явно На основе множеств и отношений На
- 18. ИСПОЛЬЗУЕМЫЕ ФОРМАЛИЗМЫ Логико-алгебраические Различные логики Предикаты, теории типов, временные, модальные, … Различные алгебраические структуры Исполнимые Различные
- 19. ПРИМЕР I – МАШИННЫЕ ЦЕЛЫЕ ЧИСЛА Как реализовать целые числа в компьютере? Образец – обычные целые
- 20. ПРИМЕР I – ФОРМАЛЬНАЯ МОДЕЛЬ Z/232Z Кольцо вычетов по модулю 232 {[0], [1], [2], …, [232-3],
- 21. ПРИМЕР II – МЕХАНИЧЕСКИЙ ПРЕСС электродвигатель сцепление шатун ползун насадка деталь защитная дверца Действия рабочего Заменить
- 22. ПРИМЕР II – ПРАВИЛА БЕЗОПАСНОСТИ Дверца должна перекрывать доступ к работающему прессу При включении сцепления с
- 23. ПРИМЕР II – УПРОЩЕНИЕ Поскольку выключение двигателя выключает весь пресс (обычно), трудно контролировать включено ли сцепление
- 24. ПРИМЕР II – ДОПУСТИМЫЕ СЦЕНАРИИ Обработка одной детали Замена детали без выключения двигателя Неудачная попытка закрыть
- 25. ПРИМЕР II - ТРЕБОВАНИЯ [clutch engaged] ⇒ [door closed] [door closed] ⇒ [motor working] ¬[motor working]
- 26. ПРИМЕР II – КОНЕЧНЫЙ АВТОМАТ Состояние – текущее положение двигателя, дверки и сцепления 0 0 0
- 27. ПРИМЕР III – СПИСОК Абстрактный тип данных List – список объектов типа E Операции empty :
- 28. ПРИМЕР IV – ПОИСК ЭЛЕМЕНТА В СПИСКЕ В этом примере список – из Лисп List ≡
- 29. ПРИМЕР IV – СПЕЦИФИКАЦИЯ Результат поиска элемента, удовлетворяющего P : E → Bool res(l, P) ≡
- 30. СООТВЕТСТВИЕ КАРРИ-ХОВАРДА В конструктивной логике или конструктивных теориях типов Доказательство ~ Программа Логическое выражение ~ Тип
- 31. ПРИМЕР IV – ИЗВЛЕЧЕНИЕ ПРОГРАММЫ Строим доказательство res(l, P) ≡ {e : E | contains(l, e)
- 32. ОГРАНИЧЕНИЯ ФОРМАЛЬНЫХ МЕТОДОВ Трансформации спецификаций в программы (correctness by construction) работают только для ограниченного набора задач
- 33. ПЛЮСЫ ФОРМАЛЬНОСТИ Требования анализируются систематично и детально Возникает глубокое понимание задачи Получаемое решение доказуемо корректно (если
- 34. «ЛЕГКИЕ» ФОРМАЛЬНЫЕ МЕТОДЫ Формализация требований Сохраняем аккуратность анализа Сохраняем бонус глубокого понимания Формальную модель решения не
- 35. ТЕХНИКИ ВЕРИФИКАЦИИ Статический анализ + проверка моделей Тестирование на основе моделей Инструмент анализа do { ;
- 36. ПРИМЕР V – ALTERNATING BIT PROTOCOL Протокол канального уровня 7-уровневая модель OSI Физический уровень Канальный уровень
- 37. ПРИМЕР V – ОТПРАВИТЕЛЬ typedef enum { frame_arrival, cksum_err, timeout } event_type; #include "protocol.h" void sender()
- 38. ПРИМЕР V – ПОЛУЧАТЕЛЬ void receiver() { seq_nr frame_expected; /* номер ожидаемого кадра */ frame r,
- 39. ПРИМЕР V – АВТОМАТ Состояние: номер посылаемого кадра, номер ожидаемого кадра и содержимое канала (номер кадра,
- 40. Четные и нечетные посылаемые кадры чередуются Четность посылаемого кадра не меняется два раза без изменения четности
- 41. ОБЛАСТЬ ПРИМЕНИМОСТИ Где формализация требований оправдана? Стандарты Устоявшиеся протоколы, интерфейсы и языки Системное ПО Широко используемые
- 42. ИНТЕРФЕЙСНЫЕ СТАНДАРТЫ Программно-аппаратные интерфейсы x86, MIPS, ARM Телекоммуникационные и аппаратные протоколы Ethernet, Wi-Fi, IP, TCP, HTTP,
- 43. ИНТЕРФЕЙСНЫЙ СТАНДАРТ – ЭЛЕКТРОСЕТИ
- 44. ОДНОЗНАЧНОСТЬ И СОВМЕСТИМОСТЬ
- 45. ПРИМЕР VI – ЧИСЛА С ПЛАВАЮЩЕЙ ТОЧКОЙ Представляют вещественные числа Бесконечное (даже несчетное) множество представляется конечным
- 46. ПРИМЕР VI – ПРЕДСТАВЛЕНИЕ ЧИСЕЛ Нормализованные: E > 0 ∧ E Денормализованные: E = 0 X
- 47. ПРИМЕР VI – НЕКОТОРЫЕ ЗНАЧЕНИЯ
- 48. ПРИМЕР VI – ОПЕРАЦИИ +, –, *, / fma(x,y,z)=x*y+z [2008] remainder(x,y) = x–y*n : n=round(x/y) sqrt
- 49. ПРИМЕР VI – РЕЗУЛЬТАТЫ ВЫЧИСЛЕНИЙ Корректное округление– 4 режима к +∞ к –∞ к 0 к
- 50. ПРИМЕР VI – ТРЕБОВАНИЯ К SIN В POSIX NAME sin, sinf, sinl - sine function SYNOPSIS
- 51. ПРИМЕР VI – POSIX VERSUS IEEE 754 IEEE 1003.1 (POSIX) 63 действительных функций + 22 complex
- 52. ПРИМЕР VI – ДРУГИЕ ПРОТИВОРЕЧИЯ Ограничения значений POSIX : f(x) = x при денорм. x и
- 53. ПРИМЕР VI – КОРРЕКТНОЕ СВОЙСТВО tan(x), atan(x) – тангенс и арктангенс tan(atan(x)) ~ x при x
- 54. ПРИМЕР VI – ТЕСТИРОВАНИЕ БИБЛИОТЕК
- 55. ПРИМЕР VI – РЕЗУЛЬТАТЫ ТЕСТОВ rint(262144.25)↑ = 262144 Exact 1 ulp errors* 2-5 ulp errors 6-210
- 56. ПРИМЕР VI – ОДИНАКОВЫЕ РЕЗУЛЬТАТЫ Unsupported
- 57. БОНУСЫ ФОРМАЛИЗАЦИИ Представление требований в виде математической модели Возможности анализа Однозначности Непротиворечивости Полноты Возможности проверки (верификации)
- 58. ОБЕСПЕЧЕНИЕ АДЕКВАТНОСТИ Как проверить понимание? Переформулировка + оценка + правка Представить информацию в другой форме Текст
- 59. ПРИМЕР VII – STRTOD(), POSIX strtod – преобразование строки в число с плавающей точкой Интерфейс double
- 60. ПРИМЕР VII – РАЗМЕТКА ТРЕБОВАНИЙ The expected form of the subject sequence is an optional plus
- 61. ПРИМЕР VII – РАЗБОР СТРОКИ Radix character ( [whitespace] )* ( '+' | '-' )? (
- 62. ПРИМЕР VII – ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ не число ? result = 0, endptr = &nptr errno =may
- 63. ПРИМЕР VII – СПЕЦИФИКАЦИЯ STRTOD() specification Unifloat* strtod_spec(CString* st, CString** endptr, ErrorCode* errno) { pre {
- 64. ПРИМЕР VII – АНАЛОГ STRTOD() ИЗ QT double QString::toDouble ( bool * ok = 0 )
- 65. ПРИМЕР VIII – DOM http://www.w3.org/DOM/DOMTR Основные документы Core http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407 HTML http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109 Style (StyleSheets + CSS)http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113 Traversal
- 66. ПРИМЕР VIII – ОСНОВНЫЕ ЧАСТИ DOM
- 67. ПРИМЕР VIII – РАЗМЕТКА ТРЕБОВАНИЙ Node insertBefore (Node newChild, Node refChild) Inserts the node newChild before
- 68. ПРИМЕР VIII – НЕОДНОЗНАЧНОСТИ Что имеется в виду под «the node being inserted»? DocumentFragment или его
- 69. ПРИМЕР VIII – ПОДДЕРЖКА В БРАУЗЕРАХ
- 70. ЗАКЛЮЧЕНИЕ I «Классические» формальные методы слишком трудоемки для подавляющего большинства сложных задач Формализация требований одна уже
- 71. ЗАКЛЮЧЕНИЕ II Формализация – не панацея Не гарантирует адекватности модели, для этого нужны дополнительные усилия В
- 73. Скачать презентацию













![ИСТОКИ ФОРМАЛЬНЫХ МЕТОДОВ Формальные языки [N. Chomsky 1956] BNF и описание языков](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/401191/slide-14.jpg)




![ПРИМЕР I – ФОРМАЛЬНАЯ МОДЕЛЬ Z/232Z Кольцо вычетов по модулю 232 {[0],](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/401191/slide-19.jpg)




![ПРИМЕР II - ТРЕБОВАНИЯ [clutch engaged] ⇒ [door closed] [door closed] ⇒](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/401191/slide-24.jpg)






















![ПРИМЕР VI – ОПЕРАЦИИ +, –, *, / fma(x,y,z)=x*y+z [2008] remainder(x,y) =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/401191/slide-47.jpg)












![ПРИМЕР VII – РАЗБОР СТРОКИ Radix character ( [whitespace] )* ( '+'](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/401191/slide-60.jpg)










Преференции членов СНО
Презентация на тему Профессии бывают разные
Ответственность, предусмотренная за нарушение требований трудового права, охраны труда и промышленной безопасности
Проблема проекта: Ненадлежащий вид электричек в Москве
Я и мои права
Лекція 6
Математика вокруг нас
Афоризмы. Дружба
Договор мены
Форма государственного правления Российской Федерации
Битумы (от лат. bitumen горная смола), твердые или смолоподобные продукты. Свойства битумов зависят от способов производства, качества
Ata
Юрий Визбор
Презентация на тему Становление личностных характеристик ученика начальной школы
Дизайн проект помещений пилотного центра занятости ГКУ ЦЗН г. Волгограда
Still loving you
Особенности электроснабжения обогатительных фабрик. Категории качества электроэнергии. Лекция №1
Александр Анатольевич Емельянов Кафедра Математических и инструментальных методов экономики (МиИМЭ) Современные аспекты и раз
Реконструкция
Римское право
Город, улица, микрорайон
Презентация на тему Перспективы использования интерактивных технологий в учебном процессе
О пчелах, колоколах и вечном двигателе
Материнство глазами художников
Как пополнить электронный кошелек «RBK money» через Интернет-банк Банка Русский Стандарт
Особенности построения сибирской избы
Презентация на тему Демографические перспективы
Техническое задание: привязать два варианта дома (вариант 1 и вариант 2) к земельному участку