Объектно-ориентированное проектирование с примерами

         

Объектно-ориентированное проектирование с примерами

Предисловие
Концепции
Метод

Примеры приложений
Дополнительный материал
Сложность
Простые и сложные программные системы
Почему программному обеспечению присуща сложность?

Последствия неограниченной сложности
Примеры сложных систем
Пять признаков сложной системы

Организованная и неорганизованная сложность
Роль декомпозиции
Роль абстракции
Роль иерархии
Инженерное дело как наука и искусство

Смысл проектирования
Объектная модель
Тенденции в проектировании

Основные положения объектной модели
OOP, OOD и ООА
Парадигмы программирования
Абстрагирование

Инкапсуляция
Модульность
Иерархия
Типизация

Параллелизм
Сохраняемость
Преимущества объектной модели
Использование объектного подхода
Открытые вопросы

Классы и объекты
Что является и что не является объектом?
Состояние
Поведение

Идентичность
Типы отношений
Связи
Агрегация
Что такое класс?
Интерфейс и реализация

Жизненный цикл класса
Ассоциация
Наследование
Использование
Инстанцирование
Метаклассы
Отношения между классами и объектами
Роль классов и объектов в анализе и проектировании
Измерение качества абстракции

Как выбрать операции?

Объектно-ориентированное проектирование с примерами


Как выбирать отношения
Выбор реализации
Классификация
Классификация и объектно-ориентированное проектирование
Трудности классификации

Классический и современный подходы
Объектно-ориентированный анализ
Ключевые абстракции
Обозначения
Необходимость разных точек зрения
Модели и ракурсы
Логическая и физическая модели
Инструменты проектирования

Существенное: категории классов
Дополнительные обозначения
Спецификации
Существенное: состояния и переходы
Дополнительные понятия

Спецификации
Существенное: объекты и их отношения
Существенное: объекты и их взаимодействия
Существенное: модули и их зависимость

Процесс
Характерные черты удачных проектов

Рациональный процесс проектирования
Обзор
Выявление классов и объектов
Выяснение семантики классов и объектов

Выявление связей между классами и объектами
Реализация классов и объектов
Концептуализация
Анализ
Проектирование

Эволюция
Сопровождение

Практические вопросы
Управление риском
Планирование задач
Просмотр
Роли разработчиков

Объектно-ориентированное проектирование с примерами

Система сбора данных: метеорологическая станция
Определение границ рассматриваемой задачи
Архитектурный каркас
Механизм покадровой обработки
Планирование релизов
Механизм датчиков

Механизм вывода информации на экран
Механизм пользовательского интерфейса
Среда разработки: библиотека базовых классов
Определение границ проблемной области
Требования к библиотеке базовых классов

Модели взаимодействий
Тактические вопросы
Макроорганизация
Семейства классов

Семантика времени и памяти
Управление памятью
Итерация
Синхронизация

Проектирование интерфейса классов
Классы поддержки
Инструменты
Дополнительная литература
Архитектура клиент-сервер: складской учет
Определение границ задачи

Архитектура клиент-сервер
Сценарии работы
Модели баз данных

SQL
Анализ схем данных

Механизм транзакций
Создание клиентской части приложения
Управление релизами
Генераторы приложений

Искусственный интеллект: криптоанализ
Определение границ предметной области
Архитектура метафоры информационной доски
Архитектура информационной доски

Интеграция
Добавление источников знаний
Расширение функциональных возможностей
Изменение технических требований

Объектно-ориентированное проектирование с примерами

Управление: контроль за движением поездов

Системные и программные требования: хрупкий компромисс
Ключевые абстракции и механизмы
Механизм передачи сообщений

Планирование расписания поездов
Отображение информации
Механизм опроса датчиков
Модульная архитектура

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

Ссылки