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










Авиация как оружие
1791 г. M. Фарадей сформулировал основные законы электролиза. Он ввел такие понятия, как анод и катод 1897 г. Ф. Кольрауш дал первое теор
Чума, оспа
Импрессионизм 60-90 г.г. XIX в
ГОУ СПО Технологический колледж №21
Процветающий город
ЗАО «ГАЗЭНЕРГОПРОМБАНК», для Предприятий отрасли
Зелёные страницы Россоши
Факторы, влияющие на выбор площадки строительства
Кто родной язык потеряет, тот без Родины останется!
Жанр натюрморт
Виды соединения деталей
Презентация на тему Звёзды на небе (5 класс)
Естественный монополии
Презентация на тему Планета Меркурий
Мартынов Слайд
Пособие по составлению презентации
Презентация на тему ЛУЧ
Коренные жители Южной Америки
Сканирующая ближнепольная оптическая микроскопия
ПРИМЕНЕНИЕ ПРОГРАММ СЕРИИ LINE… ФИРМЫ «ПРОЭНЕРГОСОФТ» ПРИ ПРОЕКТИРОВАНИИ ЛИНИЙ СВЯЗИ И ЭЛЕКТРОПЕРЕДАЧИ
Презентация на тему Критические точки функции. Точки экстремумов
Мой Мир и Одноклассники в КазахстанеАлександр Изряднов Директор по маркетингу и стратегическим коммуникациям проектов Однокла
Победители районной предметной олимпиады в 2007 году
Собери пазл. Игра
Коррупциогенные факторы положения нормативных правовых актов (проектов нормативных правовых актов)
Разнообразие растений на Земле
Развитие методов и создание оборудования для синтеза и диагностики полупроводниковых наногетероструктурПчеляков О.П.Новосиб