Объектно-ориентированный анализ и проектирование с примерами приложений

Гради Буч, Роберт А. Максимчук, Майкл У. Энгл, Бобби Дж. Янг, Джим Коналлен, Келли А. Хьюстон

Авторы описывают объектные методы решения сложных проблем, связанные с разработкой систем и программного обеспечения. Используя многочисленные примеры, они иллюстрируют основные концепции объектно-ориентированного подхода на примере разработки систем управления, сбора данных и искусственного интеллекта. Читатели найдут в книге практичные советы, касающиеся важных вопросов анализа, проектирования, реализации и оптимального управления проектами.

Книга будет полезна системным аналитикам и архитекторам, программистам, преподавателям и студентам высших учебных заведений, а также всем специалистам по информационным технологиям.

Издательство: Вильямс, 2010 г.

ISBN 978-5-8459-1401-9, 0-201-89551-X

Количество страниц: 720.

Содержание книги «Объектно-ориентированный анализ и проектирование с примерами приложений»:

  • 17 Предисловие
  • 17 Изменения, внесенные в третье издание
  • 31 Часть I. Концепции
  • 33 Глава 1. Сложность
    • 34 1.1 Структура сложных систем
      • 34 Структура персонального компьютера
      • 35 Структура растений и животных
      • 36 Структура материи
      • 37 Структура общественных институтов
    • 37 1.2 Сложность, присущая программному обеспечению
      • 37 Определение сложности программного обеспечения
      • 38 Почему программному обеспечению присуща сложность?
      • 38 Сложность предметной области
      • 40 Трудности управления проектированием
      • 41 Необходимость обеспечить гибкость программ
      • 41 Сложность описания дискретных систем
    • 42 1.3 Пять признаков сложной системы
      • 42 Иерархическая структура
      • 43 Относительность выбора элементарных компонентов
      • 43 Разделение функций
      • 44 Общая структура
      • 44 Устойчивые промежуточные формы
    • 45 1.4 Организованная и неорганизованная сложность
      • 45 Каноническая форма сложной системы
      • 48 Пределы человеческих возможностей
    • 48 1.5 Упорядочение хаоса
      • 49 Роль декомпозиции
      • 49 Алгоритмическая декомпозиция
      • 50 Объектно-ориентированная декомпозиция
      • 51 Сравнение алгоритмической и объектно-ориентированной композиции
      • 51 Роль абстракции
      • 54 Роль иерархии
    • 55 1.6 О проектировании сложных систем
      • 55 Инженерное дело как наука и искусство
      • 55 Смысл проектирования
      • 56 Важность моделирования
      • 57 Элементы методологии проектирования программного обеспечения
      • 57 Объектно-ориентированные модели
      • 58 Резюме
  • 59 Глава 2. Объектная модель
    • 59 2.1 Эволюция объектной модели
      • 60 Поколения языков программирования
      • 62 Топология языков первого поколения и ранних языков второго поколения
      • 63 Топология языков программирования позднего второго и раннего третьего поколения
      • 64 Топология поздних языков третьего поколения
      • 65 Топология объектных и объектно-ориентированных языков
    • 67 2.2 Основные положения объектной модели
      • 69 Объектно-ориентированное программирование
      • 72 Объектно-ориентированное проектирование
      • 73 Объектно-ориентированный анализ
    • 73 2.3 Составные части объектного подхода
      • 75 Абстрагирование
      • 81 Инкапсуляция
      • 85 Модульность
      • 89 Иерархия
      • 94 Контроль типов
      • 97 Параллелизм
      • 100 Персистентность
    • 102 2.4 Применение объектной модели
      • 103 Преимущества объектной модели
      • 104 Нерешенные вопросы
      • 104 Резюме
  • 106 Глава 3. Классы и объекты
    • 106 3.1 Природа объектов
      • 107 Что является и что не является объектом?
      • 109 Состояние
      • 112 Поведение
      • 113 Операции
      • 114 Роли и обязанности
      • 116 Объекты как автоматы
      • 116 Индивидуальность
    • 119 3.2 Отношения между объектами
      • 119 Связи
      • 122 Видимость
      • 122 Синхронизация
      • 122 Агрегация
    • 123 3.3 Природа класса
      • 123 Что такое класс
      • 124 Интерфейс и реализация
      • 126 Жизненный цикл класса
    • 127 3.4 Отношения между классами
      • 127 Ассоциация
      • 129 Наследование
      • 139 Агрегация
      • 140 Зависимости
    • 141 3.5 Взаимосвязь классов и объектов
      • 141 Отношения между классами и объектами
      • 141 Роль классов и объектов в анализе и проектировании
    • 142 3.6 Качество классов и объектов
      • 142 Измерение качества абстракции
      • 144 Выбор операций
      • 145 Временная и пространственная семантика
      • 146 Выбор отношений
      • 147 Выбор реализации
      • 148 Упаковка
      • 148 Резюме
  • 150 Глава 4. Классификация
    • 150 4.1 Важность правильной классификации
      • 151 Трудности классификации
      • 153 Итеративная суть классификации
    • 154 4.2 Идентификация классов и объектов
      • 155 Классический и современный подходы
      • 159 Применение классических и современных теорий
      • 160 Объектно-ориентированный анализ
      • 161 Анализ характеристик
    • 167 4.3 Основные абстракции и механизмы
      • 168 Идентификация основных абстракций
      • 170 Идентификация механизмов
      • 173 Резюме
  • 175 Часть II. Метод
  • 177 Глава 5. Обозначения
    • 177 5.1 Элементы обозначений
      • 178 Краткий исторический очерк
      • 178 Модели и представления
      • 179 Таксономия диаграмм
      • 181 Практическое использование диаграмм
      • 182 Концептуальные, логические и физические модели
      • 183 Роль инструментов проектирования
      • 184 Продукты объектно-ориентированного конструирования
      • 184 Пропорциональное увеличение или уменьшение
      • 185 Синтаксис и семантика языка UML
      • 185 Источники информации о языке UML 2.0
    • 186 5.2 Диаграммы пакетов
      • 186 Основы: обозначения пакетов
      • 187 Основы: области видимости элементов
      • 189 Основы: отношение зависимости
      • 189 Основы: диаграммы пакетов
      • 191 Уточненная концепция: импорт и доступ
    • 195 5.3 Диаграммы компонентов
      • 195 Основы: обозначение компонентов
      • 197 Основы: диаграмма компонентов
      • 199 Основы: интерфейсы компонентов
      • 200 Основы: реализация компонентов
      • 202 Уточненная концепция: внутренняя структура компонентов
    • 203 5.4 Диаграммы развертывания
      • 204 Основы: обозначение артефактов
      • 205 Основы: обозначение узла
      • 206 Основы: диаграмма развертывания
    • 208 5.5 Диаграммы прецедентов использования
      • 208 Основы: действующие лица
      • 209 Основы: прецеденты использования
      • 209 Основы: диаграмма прецедентов использования
      • 212 Уточненная концепция: отношения <<include>> и <<extend>>
      • 217 Уточненная концепция: обобщение
    • 218 5.6 Диаграммы деятельности
      • 218 Основы: действия
      • 219 Основы: начало и остановка
      • 219 Основы: узлы принятия решений и слияний
      • 220 Основы: разделы
      • 221 Уточненные концепции: разветвления, объединения и параллельность
      • 223 Уточненные концепции: потоки объектов
      • 223 Уточненные концепции: дополнительные элементы
    • 223 5.7 Диаграммы классов
      • 225 Основы: классы
      • 226 Основы: отношения между классами
      • 229 Уточненные концепции: шаблонные (параметризованные) классы
      • 231 Уточненные концепции: видимость
      • 233 Уточненные концепции: имена полюсов ассоциации и квалификаторы
      • 234 Уточненные концепции: ограничения
      • 237 Уточненные концепции: классы ассоциаций и примечания
    • 239 5.8 Диаграммы последовательностей
      • 239 Основы: объекты и взаимодействия
      • 240 Основы: “линия жизни” и сообщения
      • 242 Уточненные концепции: уничтожение
      • 242 Уточненные концепции: спецификация выполнения
      • 243 Уточненные концепции: механизм использования взаимодействий
      • 244 Уточненные концепции: управляющие конструкции
    • 245 5.9 Диаграммы обзора взаимодействий
      • 246 Основы: рамки
      • 247 Основы: элементы потока управления
      • 248 Основы: элементы диаграммы взаимодействий
    • 248 5.10 Диаграммы композитных структур
      • 249 Основы: части композитных структур
      • 249 Основы: порты и интерфейсы сложной структуры
      • 250 Основы: соединительные звенья композитной структуры
      • 250 Уточненные концепции: механизм сотрудничества
    • 252 5.11 Диаграммы конечных автоматов
      • 253 Основы: начальное, конечное и простое состояния
      • 254 Основы: переходы и состояния
      • 255 Уточненные концепции: вход, операция и выход из состояния
      • 256 Уточненные концепции: управляемые переходы
      • 258 Уточненные концепции: сложные и вложенные состояния
      • 259 Уточненные концепции: параллельность и управление
      • 265 Уточненные концепции: состояние конечного автомата
      • 265 Уточненные концепции: дополнительные элементы диаграмм конечных автоматов
    • 265 5.12 Диаграммы синхронизации
      • 267 Основы: элементы диаграмм синхронизации
      • 267 Основы: схема
      • 268 Основы: события
      • 268 Основы: ограничения
      • 269 Уточненные концепции: альтернативное представление
      • 270 Уточненные концепции: события и сообщения
    • 271 5.13 Диаграммы объектов
      • 271 Основы: объекты
      • 272 Основы: отношения между объектами
      • 273 Уточненные концепции: имена и квалификаторы
    • 274 5.14 Диаграммы коммуникации
      • 274 Основы: объекты, связи и сообщения
      • 275 Основы: нумерация сообщений
      • 277 Уточненные концепции: сообщения и синхронизация
      • 278 Уточненные концепции: итерационные выражения и дополнительные условия
      • 279 Резюме
  • 281 Глава 6. Процесс
    • 281 6.1 Основные принципы
      • 281 Характерные черты удачных проектов
      • 285 Рациональный процесс проектирования
    • 290 6.2 Макропроцесс: жизненный цикл разработки программного обеспечения
      • 291 Обзор
      • 291 Содержание макропроцесса — стадии
      • 295 Временные координаты макропроцесса — контрольные точки и этапы
      • 301 Временной аспект макропроцесса — итерации
      • 304 Планирование выпусков
    • 307 6.3 Микропроцесс: анализ и проектирование
      • 307 Обзор
      • 308 Уровни абстракции
      • 315 Микропроцесс и уровни абстракции
      • 318 Идентификация элементов
      • 324 Определение взаимодействия между элементами
      • 328 Определение отношений между элементами
      • 331 Детализация семантики элементов
      • 336 Резюме
  • 338 Глава 7. Практические вопросы
    • 339 7.1 Управление и планирование
      • 339 Управление риском
      • 340 Планирование заданий
      • 342 Инспектирование проекта
    • 343 7.2 Подбор кадров
      • 343 Распределение ресурсов
      • 344 Роли разработчиков
    • 348 7.3 Управление выпусками
      • 348 Управление конфигурацией и контроль версий
      • 349 Интеграция
      • 349 Тестирование
    • 350 7.4 Повторное использование
      • 350 Элементы повторного использования
      • 351 Как осуществить повторное использование?
    • 351 7.5 Гарантия качества и его показатели
      • 352 Качество программного продукта
      • 353 Объектно-ориентированные показатели
    • 356 7.6 Документация
      • 356 Наследие разработки
      • 357 Содержание документации
    • 358 7.7 Инструменты
      • 358 Виды инструментов
      • 359 Организационные выводы
    • 360 7.8 Специальные вопросы
      • 360 Специализированные проблемы
      • 361 Адаптация объектных технологий
    • 363 7.9 Преимущества и риски объектно-ориентированной разработки
      • 363 Преимущества
      • 363 Риски, связанные с объектно-ориентированным проектированием
      • 365 Резюме
  • 367 Часть III. Приложения
  • 370 Глава 8. Системная архитектура: спутниковая система навигации
    • 371 8.1 Начало
      • 371 Требования, предъявляемые к спутниковой системе навигации
      • 374 Определение границ задачи
      • 377 Формулировка прецедентов выполнения заданий
      • 380 Определение сценариев использования системы
    • 383 8.2 Разработка
      • 385 Разработка хорошей архитектуры
      • 386 Определение действий, связанных с разработкой архитектуры
      • 387 Обоснование предложенной системной архитектуры
      • 397 Распределение нефункциональных требований и определение интерфейсов
      • 400 Согласование системной архитектуры и ее разворачивание
      • 403 Декомпозиция системной архитектуры
    • 410 8.3 Конструирование
    • 410 8.4 Сопровождение
      • 410 Добавление новых функциональных возможностей
      • 411 Изменение аппаратного оборудования
  • 413 Глава 9. Система управления трафиком
    • 414 9.1 Начало
      • 415 Требования к системе управления движением
      • 417 Определение прецедентов использования системы
    • 423 9.2 Разработка
      • 423 Анализ функциональных возможностей системы
      • 426 Определение архитектуры системы TTMS
      • 430 От проектирования системы к разработке аппаратного оборудования и программного обеспечения
      • 434 Ключевые абстракции и механизмы
    • 435 9.3 Конструирование
      • 436 Механизм передачи сообщений
      • 440 Планирование расписания движения поездов
      • 443 Отображение информации
      • 445 Сбор показаний датчиков
      • 445 Управление версиями
      • 446 Архитектура системы
      • 447 Спецификация подсистем
    • 450 9.4 Эксплуатация
  • 452 Глава 10. Искусственный интеллект: криптоанализ
    • 453 10.1 Начало
      • 453 Требования криптоанализа
      • 454 Определение границ задачи
      • 456 Архитектура информационной доски
      • 459 Анализ источников знаний
    • 460 10.2 Разработка
      • 460 Объекты информационной доски
      • 462 Зависимости и утверждения
    • 464 10.3 Конструирование
      • 465 Проектирование объектов класса Blackboard
      • 470 Проектирование источников знаний
      • 470 Проектирование специализированных источников знаний
      • 472 Обобщение источников знаний
      • 477 Проектирование модуля управления
      • 478 Интеграция модели
      • 478 Интеграция объектов верхнего уровня
      • 482 Реализация механизма оценки предположений
      • 483 Добавление новых источников знаний
    • 484 10.4 Сопровождение
      • 484 Расширение функциональных возможностей
      • 486 Изменение технических требований
  • 487 Глава 11. Сбор данных: метеорологическая станция
    • 487 11.1 Начало
      • 488 Требования к метеорологической станции
      • 488 Определение границ рассматриваемой задачи
      • 499 Сценарии
    • 500 11.2 Проектирование
      • 501 Прецеденты использования системы мониторинга погодных условий
      • 511 Архитектурная основа
    • 513 11.3 Конструирование
      • 513 Механизм временных рамок
      • 516 Планирование выпусков
      • 517 Механизм датчиков
      • 520 Механизм работы дисплея
      • 521 Механизм пользовательского интерфейса
    • 524 11.4 Эксплуатация
  • 526 Глава 12. Web-приложение: система планирования отпусков
    • 527 12.1 Начало
      • 527 Требования
      • 529 Модель использования
    • 531 12.2 Разработка
      • 532 Представление развертывания
      • 533 Логическое представление
      • 535 Представление процессов
      • 538 Представление реализации
      • 538 Представление сценариев использования
    • 543 12.3 Конструирование
      • 544 Модель действий пользователя
      • 546 Модели анализа и проектирования
      • 557 Сущности
      • 561 Сервисные объекты данных
      • 563 Генерация первичного ключа
      • 565 Методы поиска
      • 567 Контроллеры
      • 567 Web-страницы и пользовательский интерфейс
      • 569 Заполнение динамического содержания
      • 572 Вызов бизнес-функций
    • 573 12.4 Внедрение и эксплуатация
  • 575 Приложение А. Объектно-ориентированные языки программирования
    • 575 Эволюция языков программирования
    • 578 Язык программирования Smalltalk
    • 584 Язык программирования C++
    • 589 Язык программирования Java
  • 595 Приложение Б. Рекомендации по дальнейшему чтению
  • 605 Примечания
  • 629 Глоссарий
  • 641 Библиография
  • 715 Предметный указатель

Инструкция как скачать книгу Гради Буч, Роберт А. Максимчук, Майкл У. Энгл, Бобби Дж. Янг, Джим Коналлен, Келли А. Хьюстон: Объектно-ориентированный анализ и проектирование с примерами приложений в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Объектно-ориентированный анализ и проектирование с примерами приложений
Рейтинг книги:
0 голосов
1540

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: