Основы объектно-ориентированного программирования
0e1cc9b4

Базисные механизмы надежности

Базисные механизмы надежности
О корректности ПО
Выражение спецификаций
Формула корректности
Сильные и слабые условия
Введение утверждений в программные тексты
Предусловия и постусловия

Класс стек
Предусловия
Постусловия
Педагогическое замечание


Контракты и надежность ПО
Права и обязательства
Интуиция (Дзен) и искусство программной надежности: больше гарантий и меньше проверок
Утверждения не являются механизмом проверки вводимых данных

Утверждения это не управляющие структуры
Ошибки, дефекты и другие насекомые
Работа с утверждениями
Императив и аппликатив (применимость)
Замечание о пустоте структур
Проектирование предусловий: толерантное или требовательное?

Предусловия и статус экспорта
Толерантные модули
Инварианты класса
Определение и пример
Форма и свойства инвариантов класса
Инвариант в момент изменения

Кто должен обеспечить сохранность инвариантов
Роль инвариантов класса в программной инженерии
Инварианты и контракты
Когда класс корректен?
Корректность класса
Роль процедур создания
Ревизия массивов
Связывание с АТД
Не просто коллекция функций

Компоненты класса и АТД функции
Выражение аксиом
Функция абстракции
Инварианты реализации
Инструкция утверждения
Инварианты и варианты цикла
Трудности циклов

Сделаем циклы корректными
Ингредиенты доказательства корректности цикла
Синтаксис цикла
Использование утверждений
Утверждения как средство для написания корректного ПО
Использование утверждений для документирования: краткая форма класса

Мониторинг утверждений в период выполнения
Мониторинг утверждений в период выполнения - 2
Каков оптимальный уровень мониторинга?
Нужен ли мониторинг в период выполнения?

Выразительная сила утверждений
Включение функций в утверждения
Инварианты класса и семантика ссылок
Что дальше
Ключевые концепции

Библиографические замечания
Библиографические замечания - 2
У11.1 Комплексные числа
У11.2 Класс и его АТД
У11.3 Полные утверждения для стеков
У11.4 Экспортирование размера
У11.6 Утверждения и экспорт
У11.7 Поиск жучков (bugs)
У11.8 Нарушение инварианта
У11.9 Генерация случайных чисел

У11.10 Модуль "очередь"
У11.11 Модуль "множество"
Постскриптум: Катастрофа Ариан 5
Содержание раздела