Содержание
- 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)










Здоровье – богатство на все времена
Навыки проведения интервью
Усиление железобетонных конструкций. Часть 2
Встречи на Методическом Олимпе. Формирование исследовательской культуры студентов
Имидж школьной библиотеки
Симметричное вырезание из бумаги (1 класс)
Новый Год и его особенности
Прежде, чем развивать бизнес, необходимо знать: есть ли рынки сбыта? Ювелирная промышленность: потенциал роста есть, и он заключае
Ділові папери як засіб писемної професійної комунікації
Современный рынок женской кожаной обуви
ДВНЗ Криворізький національний університет. Кафедра геодезії
Презентация на тему Кавказ
Презентация на тему Сокровища Земли под охраной человечества (4 класс)
Электрическая энергия, ее особенности и область применения
Таможенная процедура «Выпуск для внутреннего потребления» Подготовили: Студентки юридического факультета Учебной группы Ю-113б
Экономическая оценка инвестиций. Производство свечей
ИССЛЕДОВАНИЕ ЗАВИСИМОСТИ ГРУЗОПОДЪЕМНОСТИ МОДЕЛИ МОНГОЛЬФЬЕРА ОТ ТЕМПЕРАТУРЫ ВНУТРЕННЕГО ВОЗДУХА 2010 г.
Беседа об этикете поведения детей и взрослых
Основы алгоритмизации
Барабанная энциклопедия
Плетеные изделия из ивовой лозы
Экономическая теория
Я держу в ладошках солнце. Загадки о правах
Подготовка детей к школе в условиях внедрения ФГОС
Урок алгебры 10 класс Учитель математики Калита Н.А.
Риск - ориентированный надзор. Информационная открытость
Наша будущая специальность – Учет и аудит
Презентация на тему Психологическое воздействие на аудиторию