^
Начало
Установить закладку
+ Настройки
14 | 16 | 18 | 20 | 22 | 24
Ширина текста:
50% | 60% | 70% | 80% | 90% | 100%
Шрифт:
Цвет текста:
Установить
Цвет фона:
Установить
Сбросить настройки
Внешние и внутренние факторы
Обзор внешних факторов
О программном сопровождении
Ключевые концепции
О критериях
Метод и язык
Реализация и среда
Библиотеки
Продолжение просмотра
Библиографические ссылки и объектные ресурсы
Пять критериев
Пять правил
Пять принципов
Ключевые концепции
Библиографические замечания
Упражнения
Цели повторного использования
Что следует повторно использовать?
Повторяемость при разработке ПО
Нетехнические препятствия
Техническая проблема
Пять требований к модульным структурам
Традиционные модульные структуры
Перегрузка и универсальность
Ключевые концепции
Библиографические замечания
Критерии
Различные реализации
К абстрактному взгляду на объекты
Формализация спецификаций
От абстрактных типов данных к классам
За пределами программ
Дополнительные темы
Ключевые концепции
Библиографические замечания
Упражнения
Классы, а не объекты - предмет обсуждения
Устранение традиционной путаницы
Роль классов
Унифицированная система типов
Простой класс
Основные соглашения
Объектно-ориентированный стиль вычислений
Селективный экспорт и скрытие информации
Собираем все вместе
Обсуждение
Ключевые концепции
Библиографические замечания
Упражнения
Объекты
Объекты как средство моделирования
Работа с объектами и ссылками
Процедуры создания
Еще о ссылках
Операции над ссылками
Составные объекты и развернутые типы
Присоединение: две семантики - ссылок и значений
Работа со ссылками: преимущества и опасности
Обсуждение
Ключевые концепции
Библиографические замечания
Упражнения
Что происходит с объектами
Несерьезный подход (тривиальный)
Восстановление памяти: проблемы
Удаление объектов, управляемое программистом
Подход на уровне компонентов
Автоматическое управление памятью
Подсчет ссылок
Сборка мусора
Практические проблемы сборки мусора
Среда с управлением памятью
Ключевые концепции
Библиографические заметки
Упражнения
Горизонтальное и вертикальное обобщение типа
Необходимость параметризованных классов
Родовые классы
Массивы
Стоимость универсализации
Обсуждение: что все-таки не сделано
Ключевые концепции
Библиографические замечания
Упражнения
Базисные механизмы надежности
О корректности ПО
Выражение спецификаций
Введение утверждений в программные тексты
Предусловия и постусловия
Контракты и надежность ПО
Работа с утверждениями
Инварианты класса
Когда класс корректен?
Связывание с АТД
Инструкция утверждения
Инварианты и варианты цикла
Использование утверждений
Обсуждение
Ключевые концепции
Библиографические замечания
Упражнения
Постскриптум: Катастрофа Ариан 5
Базисные концепции обработки исключений
Обработка исключений
Механизм исключений
Примеры обработки исключений
Задача предложения rescue
Продвинутая обработка исключений
Обсуждение
Ключевые концепции
Библиографические замечания
Упражнения
Взаимодействие с не объектным ПО
Передача аргументов
Инструкции
Выражения
Строки
Ввод и вывод
Лексические соглашения
Ключевые концепции
Упражнения
Многоугольники и прямоугольники
Полиморфизм
Типизация при наследовании
Динамическое связывание
Отложенные компоненты и классы
Способы изменения объявлений
Смысл наследования
Роль отложенных классов
Обсуждение
Ключевые концепции
Библиографические замечания
Упражнения
Примеры множественного наследования
Переименование компонентов
Плоские структуры
Дублируемое наследование
Обсуждение
Ключевые концепции
Библиографические замечания
Упражнения
Наследование и утверждения
Глобальная структура наследования
Замороженные компоненты
Ограниченная универсальность
Попытка присваивания
Типизация и повторное объявление
Закрепленные объявления
Наследование и скрытие информации
Ключевые концепции
Библиографические замечания
Упражнения
Проблема типизации
Статическая типизация: как и почему
Ковариантность и скрытие потомком
Корректность систем: первое приближение
Глобальный анализ
Остерегайтесь полиморфных кэтколлов!
Оценка
Полное соответствие
Ключевые концепции
Библиографические замечания
Константы базовых типов
Использование констант
Константы пользовательских классов
Применение однократных подпрограмм
Константы строковых типов
Unique-значения
Обсуждение
Ключевые концепции
Библиографические замечания
Упражнения