Объектно-ориентированное проектирование с примерами
ПредисловиеКонцепции
Метод
Примеры приложений
Дополнительный материал
Сложность
Простые и сложные программные системы
Почему программному обеспечению присуща сложность?
Последствия неограниченной сложности
Примеры сложных систем
Пять признаков сложной системы
Организованная и неорганизованная сложность
Роль декомпозиции
Роль абстракции
Роль иерархии
Инженерное дело как наука и искусство
Смысл проектирования
Объектная модель
Тенденции в проектировании
Основные положения объектной модели
OOP, OOD и ООА
Парадигмы программирования
Абстрагирование
Инкапсуляция
Модульность
Иерархия
Типизация
Параллелизм
Сохраняемость
Преимущества объектной модели
Использование объектного подхода
Открытые вопросы
Классы и объекты
Что является и что не является объектом?
Состояние
Поведение
Идентичность
Типы отношений
Связи
Агрегация
Что такое класс?
Интерфейс и реализация
Жизненный цикл класса
Ассоциация
Наследование
Использование
Инстанцирование
Метаклассы
Отношения между классами и объектами
Роль классов и объектов в анализе и проектировании
Измерение качества абстракции
Как выбрать операции?
Объектно-ориентированное проектирование с примерами
Как выбирать отношения
Выбор реализации
Классификация
Классификация и объектно-ориентированное проектирование
Трудности классификации
Классический и современный подходы
Объектно-ориентированный анализ
Ключевые абстракции
Обозначения
Необходимость разных точек зрения
Модели и ракурсы
Логическая и физическая модели
Инструменты проектирования
Существенное: категории классов
Дополнительные обозначения
Спецификации
Существенное: состояния и переходы
Дополнительные понятия
Спецификации
Существенное: объекты и их отношения
Существенное: объекты и их взаимодействия
Существенное: модули и их зависимость
Процесс
Характерные черты удачных проектов
Рациональный процесс проектирования
Обзор
Выявление классов и объектов
Выяснение семантики классов и объектов
Выявление связей между классами и объектами
Реализация классов и объектов
Концептуализация
Анализ
Проектирование
Эволюция
Сопровождение
Практические вопросы
Управление риском
Планирование задач
Просмотр
Роли разработчиков
Объектно-ориентированное проектирование с примерами
Система сбора данных: метеорологическая станцияОпределение границ рассматриваемой задачи
Архитектурный каркас
Механизм покадровой обработки
Планирование релизов
Механизм датчиков
Механизм вывода информации на экран
Механизм пользовательского интерфейса
Среда разработки: библиотека базовых классов
Определение границ проблемной области
Требования к библиотеке базовых классов
Модели взаимодействий
Тактические вопросы
Макроорганизация
Семейства классов
Семантика времени и памяти
Управление памятью
Итерация
Синхронизация
Проектирование интерфейса классов
Классы поддержки
Инструменты
Дополнительная литература
Архитектура клиент-сервер: складской учет
Определение границ задачи
Архитектура клиент-сервер
Сценарии работы
Модели баз данных
SQL
Анализ схем данных
Механизм транзакций
Создание клиентской части приложения
Управление релизами
Генераторы приложений
Искусственный интеллект: криптоанализ
Определение границ предметной области
Архитектура метафоры информационной доски
Архитектура информационной доски
Интеграция
Добавление источников знаний
Расширение функциональных возможностей
Изменение технических требований
Объектно-ориентированное проектирование с примерами
Управление: контроль за движением поездовСистемные и программные требования: хрупкий компромисс
Ключевые абстракции и механизмы
Механизм передачи сообщений
Планирование расписания поездов
Отображение информации
Механизм опроса датчиков
Модульная архитектура
Спецификация подсистем
Добавление новых функций
Изменение аппаратных средств
Библиография
Словарь терминов
Литературные ссылки
Объектно-ориентированные языки программирования
Происхождение
Ссылки