Название: Объектно-ориентированное проектирование с примерами применения.
Автор: Буч Г.
Книга американского специалиста представляет собой первое полное изложение объектно-ориентированной методологии: анализ, проектирование, программирование. В книге рассмотрены фундаментальные вопросы объектного подхода, практические аспекты конструирования программных систем. Отдельный раздел книги посвящен примерам использования различных объектно-ориентированных языков программирования в реальных системах. В книге содержится обширная библиография по предметной области. Книга рассчитана на профессиональных программистов, руководителей больших программных проектов и студентов, будущая профессия которых связана с разработкой сложных программных систем.
Содержание
Предисловие
Изменения, внесенные в третье издание
Часть I. Концепции
Глава 1. Сложность
1.1 Структура сложных систем
Структура персонального компьютера
Структура растений и животных
Структура материи
Структура общественных институтов
1.2 Сложность, присущая программному обеспечению
Определение сложности программного обеспечения
Почему программному обеспечению присуща сложность?
Сложность предметной области
Трудности управления проектированием
Необходимость обеспечить гибкость программ
Сложность описания дискретных систем
1.3 Пять признаков сложной системы
Иерархическая структура
Относительность выбора элементарных компонентов
Разделение функций
Общая структура
Устойчивые промежуточные формы
1.4 Организованная и неорганизованная сложность
Каноническая форма сложной системы
Пределы человеческих возможностей
1.5 Упорядочение хаоса
Роль декомпозиции
Алгоритмическая декомпозиция
Объектно-ориентированная декомпозиция
Сравнение алгоритмической и объектно-ориентированной декомпозиции
Роль абстракции
Роль иерархии
1.6 О проектировании сложных систем
Инженерное дело как наука и искусство
Смысл проектирования
Важность моделирования
Элементы методологии проектирования программного обеспечения
Объектно-ориентированные модели
Резюме
Глава 2. Объектная модель
2.1 Эволюция объектной модели
Поколения языков программирования
Топология языков первого поколения и ранних языков второго поколения
Топология языков программирования позднего второго и раннего третьего поколения
Топология поздних языков третьего поколения
Топология объектных и объектно-ориентированных языков
2.2 Основные положения объектной модели
Объектно-ориентированное программирование
Объектно-ориентированное проектирование
Объектно-ориентированный анализ
2.3 Составные части объектного подхода
Абстрагирование
Инкапсуляция
Модульность
Иерархия
Контроль типов
Параллелизм
Персистентность
2.4 Применение объектной модели
Преимущества объектной модели
Нерешенные вопросы
Резюме
Глава 3. Классы и объекты
3.1 Природа объектов
Что является и что не является объектом?
Состояние
Поведение
Операции
Роли и обязанности
Объекты как автоматы
Индивидуальность
3.2 Отношения между объектами
Связи
Видимость
Синхронизация
Агрегация
3.3 Природа класса
Что такое класс
Интерфейс и реализация
Жизненный цикл класса
3.4 Отношения между классами
Ассоциация
Наследование
Агрегация
Зависимости
3.5 Взаимосвязь классов и объектов
Отношения между классами и объектами
Роль классов и объектов в анализе и проектировании
3.6 Качество классов и объектов
Измерение качества абстракции
Выбор операций
Временная и пространственная семантика
Выбор отношений
Выбор реализации
Упаковка
Резюме
Глава 4. Классификация
4.1 Важность правильной классификации
Трудности классификации
Итеративная суть классификации
4.2 Идентификация классов и объектов
Классический и современный подходы
Применение классических и современных теорий
Объектно-ориентированный анализ
Анализ характеристик
4.3 Основные абстракции и механизмы
Идентификация основных абстракций
Идентификация механизмов
Резюме
Часть II. Метод
Глава 5. Обозначения
5.1 Элементы обозначений
Краткий исторический очерк
Модели и представления
Таксономия диаграмм
Практическое использование диаграмм
Концептуальные, логические и физические модели
Роль инструментов проектирования
Продукты объектно-ориентированного конструирования
Пропорциональное увеличение или уменьшение
Синтаксис и семантика языка UML
Источники информации о языке UML 2.0
5.2 Диаграммы пакетов
Основы: обозначения пакетов
Основы: области видимости элементов
Основы: отношение зависимости
Основы: диаграммы пакетов
Уточненная концепция: импорт и доступ
5.3 Диаграммы компонентов
Основы: обозначение компонентов
Основы: диаграмма компонентов
Основы: интерфейсы компонентов
Основы: реализация компонентов
Уточненная концепция: внутренняя структура компонентов
5.4 Диаграммы развертывания
Основы: обозначение артефактов
Основы: обозначение узла
Основы: диаграмма развертывания
5.5 Диаграммы прецедентов использования
Основы: действующие лица
Основы: прецеденты использования
Основы: диаграмма прецедентов использования
Уточненная концепция: отношения <<include>> и <<extend>>
Уточненная концепция: обобщение
5.6 Диаграммы деятельности
Основы: действия
Основы: начало и остановка
Основы: узлы принятия решений и слияний
Основы: разделы
Уточненные концепции: разветвления, объединения и параллельность
Уточненные концепции: потоки объектов
Уточненные концепции: дополнительные элементы
5.7 Диаграммы классов
Основы: классы
Основы: отношения между классами
Уточненные концепции: шаблонные (параметризованные) классы
Уточненные концепции: видимость
Уточненные концепции: имена полюсов ассоциации и квалификаторы
Уточненные концепции: ограничения
Уточненные концепции: классы ассоциаций и примечания
5.8 Диаграммы последовательностей
Основы: объекты и взаимодействия
Основы: «линия жизни» и сообщения
Уточненные концепции: уничтожение
Уточненные концепции: спецификация выполнения
Уточненные концепции: механизм использования взаимодействий
Уточненные концепции: управляющие конструкции
5.9 Диаграмма обзора взаимодействий
Основы: рамки
Основы: элементы потока управления
Основы: элементы диаграммы взаимодействий
5.10 Диаграммы композитных структур
Основы: части композитных структур
Основы: порты и интерфейсы сложной структуры
Основы: соединительные звенья композитной структуры
Уточненные концепции: механизм сотрудничества
5.11 Диаграммы конечных автоматов
Основы: начальное, конечное и простое состояния
Основы: переходы и состояния
Уточненные концепции: вход, операция и выход из состояния
Уточненные концепции: управляемые переходы
Уточненные концепции: сложные и вложенные состояния
Уточненные концепции: параллельность и управление
Уточненные концепции: состояние конечного автомата
Уточненные концепции: дополнительные элементы диаграмм конечных автоматов
5.12 Диаграммы синхронизации
Основы: элементы диаграмм синхронизации
Основы: схема
Основы: события
Основы: ограничения
Уточненные концепции: альтернативное представление
Уточненные концепции: события и сообщения
5.13 Диаграммы объектов
Основы: объекты
Основы: отношения между объектами
Уточненные концепции: имена и квалификаторы
5.14 Диаграммы коммуникации
Основы: объекты, связи и сообщения
Основы: нумерация сообщений
Уточненные концепции: сообщения и синхронизация
Уточненные концепции: итерационные выражения и дополнительные условия
Резюме
Глава 6. Процесс
6.1 Основные принципы
Характерные черты удачных проектов
Рациональный процесс проектирования
6.2 Макропроцесс: жизненный цикл разработки программного обеспечения
Обзор
Содержание макропроцесса - стадии
Временные координаты макропроцесса - контрольные точки и этапы
Временной аспект макропроцесса - итерации
Планирование выпусков
6.3 Микропроцесс: анализ и проектирование
Обзор
Уровни абстракции
Микропроцесс и уровни абстракции
Идентификация элементов
Определение взаимодействия между элементами
Определение отношений между элементами
Детализация семантики элементов
Резюме
Глава 7. Практические вопросы
7.1 Управление и планирование
Управление риском
Планирование заданий
Инспектирование проекта
7.2 Подбор кадров
Распределение ресурсов
Роли разработчиков
7.3 Управление выпусками
Управление конфигурацией и контроль версий
Интеграция
Тестирование
7.4 Повторное использование
Элементы повторного использования
Как осуществить повторное использование?
7.5 Гарантия качества и его показатели
Качество программного продукта
Объектно-ориентированные показатели
7.6 Документация
Наследие разработки
Содержание документации
7.7 Инструменты
Виды инструментов
Организационные выводы
7.8 Специальные вопросы
Специализированные проблемы
Адаптация объектных технологий
7.9 Преимущества и риски объектно-ориентированной разработки
Преимущества
Риски, связанные с объектно-ориентированным проектированием
Резюме
Часть III. Приложения
Глава 8. Системная архитектура: спутниковая система навигации
8.1 Начало
Требования, предъявляемые к спутниковой системе навигации
Определение границ задачи
Формулировка прецедентов выполнения заданий
Определение сценариев использования системы
8.2 Разработка
Разработка хорошей архитектуры
Определение действий, связанных с разработкой архитектуры
Обоснование предложенной системной архитектуры
Распределение нефункциональных требований и определение интерфейсов
Согласование системной архитектуры и ее разворачивание
Декомпозиция системной архитектуры
8.3 Конструирование
8.4 Сопровождение
Добавление новых функциональных возможностей
Изменение аппаратного оборудования
Глава 9. Система управления трафиком
9.1 Начало
Требования к системе управления движением
Определение прецедентов использования системы
9.2 Разработка
Анализ функциональных возможностей системы
Определение архитектуры системы TTMS
От проектирования системы к разработке аппаратного оборудования и программного обеспечения
Ключевые абстракции и механизмы
9.3 Конструирование
Механизм передачи сообщений
Планирование расписания движения поездов
Отображение информации
Сбор показаний датчиков
Управление версиями
Архитектура системы
Спецификация подсистем
9.4 Эксплуатация
Глава 10. Искусственный интеллект: криптоанализ
10.1 Начало
Требования криптоанализа
Определение границ задачи
Архитектура информационной доски
Анализ источников знаний
10.2 Разработка
Объекты информационной доски
Зависимости и утверждения
10.3 Конструирование
Проектирование объектов класса Blackboard
Проектирование источников знаний
Проектирование специализированных источников знаний
Обобщение источников знаний
Проектирование модуля управления
Интеграция модели
Интеграция объектов верхнего уровня
Реализация механизма оценки предположений
Добавление новых источников знаний
10.4 Сопровождение
Расширение функциональных возможностей
Изменение технических требований
Глава 11. Сбор данных: метеорологическая станция
11.1 Начало
Требования к метеорологической станции
Определение границ рассматриваемой задачи
Сценарии
11.2 Проектирование
Прецеденты использования системы мониторинга погодных условий
Архитектурная основа
11.3 Конструирование
Механизм временных рамок
Планирование выпусков
Механизм датчиков
Механизм работы дисплея
Механизм пользовательского интерфейса
11.4 Эксплуатация
Глава 12. Web-приложение: система планирования отпусков
12.1 Начало
Требования
Модель использования
12.2 Разработка
Представление развертывания
Логическое представление
Представление процессов
Представление реализации
Представление сценариев использования
12.3 Конструирование
Модель действий пользователя
Модели анализа и проектирования
Сущности
Сервисные объекты данных
Генерация первичного ключа
Методы поиска
Контроллеры
Web-страницы и пользовательский интерфейс
Заполнение динамического содержания
Вызов бизнес-функций
12.4 Внедрение и эксплуатация
Приложение А. Объектно-ориентированные языки программирования
Эволюция языков программирования
Язык программирования Smalltalk
Язык программирования С++
Язык программирования Java
Приложение Б. Рекомендации по дальнейшему чтению
Примечания
Глоссарий
Библиография
Предметный указатель.
Декомпозиция.
«Способ управления сложными системами был известен еще в древности: divide et impera (разделяй и властвуй)» [141. При проектировании сложной программной системы необходимо составлять ее из небольших подсистем» каждую из которых можно отладить независимо от других. В этом случае мы не выходим за пределы возможностей человека, отпущенных ему природой: при разработке любого уровня системы нам необходимо будет одновременно держать в уме информацию лишь о немногих ее частях (отнюдь не о всех). В самом деле, правильная декомпозиция непосредственно определяет сложность, присущую программной системе, обеспечивая разделение пространства состояний системы [15].
Алгоритмическая декомпозиция. У большинства из нас понятие «проектирование» ассоциируется со структурным проектированием по методу «сверху вниз», и мы воспринимаем декомпозицию как обычное разделение алгоритмов, где каждый модуль системы выполняет один из важных этапов общего процесса. На рис. 1-2 приведен пример результата структурного проектирования: структурная схема, которая иллюстрирует связи между различными функциональными элементами системы.
Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Объектно-ориентированное проектирование с примерами применения - Буч Г. - fileskachat.com, быстрое и бесплатное скачивание.
Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России.Купить эту книгу
Скачать книгу - Объектно-ориентированное проектирование с примерами применения - Буч Г. - depositfiles
Скачать книгу - Объектно-ориентированное проектирование с примерами применения - Буч Г. - letitbit
Дата публикации:
Теги: книга по программированию :: объектно-ориентированное проектирование :: Буч
Смотрите также учебники, книги и учебные материалы:
Следующие учебники и книги:
- C# - Создание приложений для Windows - Лабор В.В.
- Искусство программирования на С++ - Герберт Шилдт
- Программирование в среде Borland C++ Builder с математическими библиотеками Matlab C/C++ - Подкур М.Л., Подкур П.Н., Смоленцев Н.К.
- Язык программирования C++ - Леции и упражнения, учебник, Стивен Прата
Предыдущие статьи:
- Современное проектирование на C++ - Александреску А.
- Delphi 7 для профессионалов - Кэнту М.
- Программирование - Математические основы, средства, теория - Лавров С.С.
- C++ Builder в задачах и примерах - Культин Н.