Главная » 2014»Май»30 » Применение UML 2.0 и шаблонов проектирования. 3-е издание
20:20
Применение UML 2.0 и шаблонов проектирования. 3-е издание
Применение UML 2.0 и шаблонов проектирования. 3-е издание - В книге рассматриваются основные принципы и приемы объектно-ориентированного анализа и проектирования (ООА/П). В ней вы найдете сведения об итеративном и гибком моделировании, шаблонах проектирования, архитектурном анализе и многих других вопросах. Весь материал рассматривается в контексте гибкого подхода к разработке с совместным применением процесса UP и других итеративных методов. В книге рассматривается два реальных примера, позволяющих на практике освоить принципы ООА/П, а также изучить новейшую систему обозначений языка UML 2. Книга будет хорошим руководством для всех, кто интересуется вопросами ООА/П, языком моделирования UML 2 и современными эволюционными подходами к разработке программного обеспечения.
Название: Применение UML 2.0 и шаблонов проектирования. 3-е издание Автор: Крэг Ларман Издательство: Вильямс Год: 2013 Страниц: 736 Формат: DJVU Размер: 26,8 МБ ISBN: 978-5-8459-1185-8 Качество: Отличное Язык: Русский
Содержание:
Предисловие Введение Образовательные и Web-ресурсы Для кого предназначена эта книга Что необходимо знать Примеры на языке Java Структура книги Об авторе Контакты Дополнения к предыдущему изданию Благодарности Соглашения, принятые в книге От издательства Часть I. Введение Глава 1. Объектно-ориентированный анализ и проектирование 1.1. Что вы узнаете из этой книги? 1.2. Основная цель обучения 1.3. Что такое анализ и проектирование 1.4. Объектно-ориентированный анализ и проектирование 1.5. Краткий пример 1.6. Что такое UML 1.7. Визуальное моделирование - хороший стиль 1.8. История 1.9. Дополнительные ресурсы Глава 2. Итеративный, эволюционный и гибкий процесс 2.1. Унифицированный процесс и другие методы 2.2. Что такое итеративная и эволюционная разработка 2.3. Последовательный жизненный цикл 2.4. Как выполнять итеративный и эволюционный анализ и проектирование 2.5. Итеративное планирование на основе рисков и с учетом потребностей пользователей 2.6. Что такое гибкие методы 2.7. Что такое гибкое моделирование 2.8. Что такое гибкий унифицированный процесс 2.9. Другие важные принципы унифицированного процесса 2.10. Фазы унифицированного процесса 2.11. Дисциплины унифицированного процесса 2.12. Настройка процесса и выбор инструментов UP 2.13. Вы не поняли, что такое итеративная разработка или унифицированный процесс, если 2.14. История 2.15. Дополнительные ресурсы Глава 3. Конкретные примеры 3.1. Какие вопросы рассматриваются и рассматриваются при изучении конкретных примеров 3.2. Стратегия описания конкретных примеров: итеративная разработка + итеративное изучение 3.3. Пример 1: POS-система NextGen 3.4. Пример 2: игра Monopoly® Часть II. Начальная фаза Глава 4. Начальная фаза - это не стадия анализа требований 4.1. Что такое начальная фаза 4.2. Какова длительность начальной фазы 4.3. Какие артефакты относятся к начальной фазе 4.4. Вы не поняли, что такое начальная фаза, если 4.5. Как использовать UML на начальной стадии Глава 5. Эволюционное осмысление требований 5.1. Определение требований 5.2. Определение требований для эволюционного и каскадного процессов разработки 5.3. Грамотное определение требований 5.4. Типы и категории требований 5.5. Как требования связаны с артефактами UP 5.6. Имеются ли примеры этих артефактов в данной книге 5.7. Дополнительные ресурсы Глава 6. Описание прецедентов 6.1. Пример 6.2. Некоторые определения 6.3. Прецеденты и модель прецедентов 6.4. Зачем нужны описания прецедентов 6.5. Прецеденты и функциональные требования 6.6. Три типа исполнителей 6.7. Основные форматы прецедентов 6.8. Пример развернутого описания прецедента Оформление продажи 6.9. Пояснения 6.10. Другие форматы описания прецедентов 6.11. Описание прецедентов, относящихся к интерфейсу пользователя, в свободном стиле 6.12. Описания прецедентов должны быть лаконичными 6.13. Описание прецедентов в формате «черный ящик» 6.14. Примите точку зрения исполнителя 6.15. Как выделять прецеденты 6.16. Как выделить полезные прецеденты 6.17. Диаграммы прецедентов 6.18. Диаграммы видов деятельности 6.19. Дополнительные преимущества описания прецедентов 6.20. Пример: игра «Монополия» 6.21. Прецеденты в рамках итеративной разработки 6.22. История 6.23. Дополнительные ресурсы Глава 7. Другие требования 7.1. Насколько полны приводимые примеры? 7.2. Нужно ли детально анализировать требования на начальной стадии разработки? 7.3. Нужно ли помещать документацию на Web-узле проекта? 7.4. Пример NextGen: фрагмент дополнительной спецификации 7.5. Дополнительная спецификация (комментарии) 7.6. Пример для системы NextGen: видение (фрагмент) 7.7. Видение (комментарий) 7.8. Пример системы NextGen: словарь терминов (фрагмент) 7.9. Комментарии: словарь терминов 7.10. Пример для системы NextGen: бизнес-правила (правила предметной области) 7.11. Бизнес-правила (комментарии) 7.12. Эволюция требований в итеративном процессе разработки 7.13. Дополнительные ресурсы Часть III. Первая итерация фазы развития - основы Глава 8. Итерация 1 - основы 8.1. Требования и акценты первой итерации: основные вопросы ООА/П 8.2. Начальная фаза и стадия развития 8.3. Планирование следующей итерации Глава 9. Модели предметной области 9.1. Пример 9.2. Что такое модель предметной области 9.3. Зачем создавать модель предметной области 9.4. Как создать модель предметной области 9.5. Как выделить концептуальные классы 9.6. Пример выделения концептуальных классов 9.7. Построение диаграммы классов в рамках гибкого процесса разработки 9.8. Автоматизированное построение модели в рамках гибкого подхода к разработке 9.9. Элементы отчета: включать ли понятие «товарный чек» в модель 9.10. Имена и модели: стратегия построения карт 9.11. Как моделировать «нереальный» мир 9.12. Типичная ошибка при выделении концептуальных классов 9.13. Когда использовать классы описаний 9.14. Ассоциации 9.15. Примеры: ассоциации в моделях предметных областей 9.16. Атрибуты 9.17. Атрибуты в моделях предметных областей 9.18. Насколько корректна модель предметной области 9.19. Итеративное и эволюционное моделирование предметной области 9.20. Дополнительные ресурсы Глава 10. Системные диаграммы последовательностей 10.1. Пример СДП для приложения NextGen 10.2. Системные диаграммы последовательностей 10.3. Зачем строить СДП 10.4. Применение UML для построения диаграммы последовательности 10.5. Системные диаграммы последовательностей и прецеденты 10.6. Имена системных событий и операций 10.7. Как моделировать взаимодействие с внешними системами 10.8. Диаграммы последовательностей и словарь терминов 10.9. Пример диаграммы последовательности для игры «Монополия» 10.10. Итеративное и эволюционное построение СДП 10.11. История и дополнительные ресурсы Глава 11. Описание операций 11.1. Пример 11.2. Разделы описания 11.3. Что такое системная операция 11.4. Постусловия 11.5. Постусловия описания операции enterltem 11.6. Описание операций приводит к изменению предметной области 11.7. Когда нужны описания операций? 11.8. Составление описания 11.9. Пример описания операции для POS-системы NextGen 11.10. Описание операций для игры «Монополия» 11.11. Описания операций на UML и OCL 11.12. Описания операций в рамках UP 11.13. Немного истории 11.14. Дополнительные ресурсы Глава 12. Итеративный переход от анализа требований к проектированию 12.1. Занимаясь итеративной разработкой, делайте это правильно 12.2. Раннее начало всех видов деятельности 12.3. Возможно, на это потребуются недели? Глава 13. Логическая архитектура и диаграммы пакетов UML 13.1. Пример 13.2. Что такое логическая архитектура 13.3. На каких уровнях сосредоточено описание примеров? 13.4. Программная архитектура системы 13.5. Диаграммы пакетов UML 13.6. Проектирование на основе шаблона Layers 13.7. Принцип Model-View Separation 13.8. Взаимосвязь между СДП, системными операциями и уровнями 13.9. Логическая архитектура и диаграмма пакетов для приложения NextGen 13.10. Пример логической архитектуры игры «Монополия» 13.11. Дополнительные ресурсы Глава 14. Переход к объектному проектированию 14.1. Гибкое моделирование и облегченный процесс построения диаграмм UML 14.2. CASE-средства UML 14.3. Сколько времени занимает рисование до начала кодирования 14.4. Статические и динамические модели объектов 14.5. Важнее иметь навыки объектного проектирования, чем знать систему обозначений UML 14.6. Другие методы проектирования объектов: карты CRC Глава 15. Диаграммы взаимодействия на UML 15.1. Диаграммы последовательностей и коммуникации 15.2. Проблема для новичков 15.3. Основные обозначения UML для диаграмм взаимодействия 15.4. Основные обозначения диаграммы последовательностей 15.5. Основные обозначения диаграммы коммуникации Глава 16. Диаграммы классов UML 16.1. Применение UML: система обозначений для диаграммы классов 16.2. Определение: диаграмма классов проектирования 16.3. Определение: классификатор 16.4. Способы представления атрибутов UML: имя атрибута и линии ассоциаций 16.5. Блоки примечаний: примечания, комментарии, ограничения и тела методов 16.6. Операции и методы 16.7. Ключевые слова 16.8. Стереотипы, профили и метки 16.9. Свойства и строки свойств 16.10. Обобщение, абстрактные классы, абстрактные операции 16.11. Зависимость 16.12. Интерфейсы 16.13. Композиция или агрегация 16.14. Ограничения 16.15. Уточненная ассоциация 16.16. Класс ассоциации 16.17. Классы-синглетоны 16.18. Параметризованные классы и интерфейсы 16.19. Поля, определяемые пользователем 16.20. Активный класс 16.21. Связь между диаграммами классов и взаимодействия Глава 17. GRASP: проектирование объектов на основе распределения обязанностей 17.1. UML и принципы проектирования 17.2. Объектное проектирование - примеры входов, видов деятельности и выходов 17.3. Обязанности и проектирование на основе обязанностей 17.4. GRASP - это методический подход к объектному проектированию 17.5. Обязанности, GRASP и диаграммы UML 17.6. Шаблоны 17.7. Где мы находимся? 17.8. Небольшой пример объектного проектирования на основе шаблонов GRASP 17.9. Применение шаблонов GRASP для объектного проектирования 17.10. Шаблон Creator 17.11. Шаблон Information Expert (или Expert) 17.12. Шаблон Low Coupling 17.13. Шаблон Controller 17.14. Шаблон High Cohesion 17.15. Дополнительные ресурсы Глава 18. Примеры объектного проектирования на основе шаблонов GRASP 18.1. Реализация прецедентов 18.2. Комментарии к артефактам 18.3. Что дальше? 18.4. Реализация прецедентов для данной итерации разработки системы NextGen 18.5. Реализация прецедентов для игры «Монополия» 18.6. Итеративное и эволюционное объектное проектирование 18.7. Резюме Глава 19. Области видимости 19.1. Видимость объектов 19.2. Области видимости Глава 20. Преобразование проектного решения в программный код 20.1. Программирование и итеративный, эволюционный процесс разработки 20.2. Преобразование результатов проектирования в программный код 20.3. Создание определений классов на основе диаграмм классов 20.4. Создание методов на основе диаграмм взаимодействия 20.5. Классы коллекций в программном коде 20.6. Исключения и обработка ошибок 20.7. Определение метода Sale.makeLineItem 20.8. Порядок реализации 20.9. Программирование на основе тестирования 20.10. Еще несколько слов о преобразовании проектного решения в код 20.11. Основное программное решение для POS-системы NextGen 20.12. Основные программные решения для игры «Монополия» Глава 21. Разработка на основе тестирования и рефакторинг 21.1. Разработка на основе тестирования 21.2. Рефакторинг 21.3. Дополнительные ресурсы Часть IV. Вторая итерация фазы развития - дополнительные шаблоны Глава 22. Средства построения диаграмм UML 22.1. Прямое, обратное и циклическое проектирование 22.2. Важнейшие свойства UML-средств 22.3. Как выбрать систему проектирования 22.4. Как обновлять диаграммы на основе кода, если они изначально были построены вручную 22.5. Дополнительные ресурсы Глава 23. Быстрый дополнительный анализ 23.1. POS-система NextGen 23.2. Игра «Монополия» Глава 24. Вторая итерация и дополнительные шаблоны 24.1. От первой ко второй итерации 24.2. Требования для второй итерации Глава 25. Дополнительные шаблоны GRASP для распределения обязанностей 25.1. Шаблон Polymorphism 25.2. Шаблон Pure Fabrication 25.3. Шаблон Indirection 25.4. Шаблон Protected Variations Глава 26. Применение шаблонов проектирования GoF 26.1. Шаблон Adapter (GoF) 26.2. Некоторые принципы GRASP как обобщение других шаблонов 26.3. Анализ на этапе проектирования: модель предметной области 26.4. Шаблон Factory (GoF) 26.5. Шаблон Singleton (GoF) 26.6. Еще несколько слов о внешних службах с разными интерфейсами 26.7. Шаблон Strategy (GoF) 26.8. Шаблон Composite (GoF) и другие принципы проектирования 26.9. Шаблон Facade (GoF) 26.10. Шаблон Observer/Publish-Subscribe/Delegation Event Model (GoF) 26.11. Выводы 26.12. Дополнительная литература Часть V. Третья итерация фазы развития Глава 27. Третья итерация - вспомогательные вопросы 27.1. Требования третьей итерации для POS-системы NextGen 27.2. Требования третьей итерации для игры «Монополия» Глава 28. Диаграммы видов деятельности UML 28.1. Пример 28.2. Как применять диаграммы видов деятельности 28.3. Дополнительные обозначения диаграмм видов деятельности UML 28.4. Рекомендации 28.5. Пример: диаграмма видов деятельности для приложения NextGen 28.6. Диаграммы видов деятельности в UP 28.7. Другие подходы Глава 29. Диаграммы состояний UML и моделирование 29.1. Пример 29.2. События, состояния и переходы 29.3. Как применять диаграммы состояний 29.4. Дополнительные обозначения для диаграмм состояний 29.5. Моделирование навигации с помощью диаграммы состояний 29.6. Пример: диаграмма состояний для прецедента системы NextGen 29.7. Диаграммы состояний и UP 29.8. Дополнительная литература Глава 30. Взаимосвязь прецедентов 30.1. Отношение включает 30.2. Новые термины: конкретный, абстрактный, основной и дополнительный прецеденты 30.3. Отношение расширяет 30.4. Отношение обобщает 30.5. Диаграммы прецедентов Глава 31. Дополнительные диаграммы последовательностей и описание операций 31.1. Приложение NextGen Глава 32. Уточнение модели предметной области 32.1. Новые понятия модели предметной области системы NextGen 32.2. Обобщение 32.3. Определение концептуальных суперклассов и подклассов 32.4. Когда нужно определять концептуальный подкласс 32.5. Когда нужно определять концептуальный суперкласс 32.6. Иерархия концептуальных классов POS-системы NextGen 32.7. Абстрактные концептуальные классы 32.8. Моделирование изменения состояний 32.9. Иерархия классов и наследование 32.10. Классы ассоциаций 32.11. Агрегация и композиция 32.12. Временные интервалы и цены товаров: устранение ошибки первой итерации 32.13. Имена ролей ассоциаций 32.14. Роли в форме понятий и роли, представленные в ассоциации 32.15. Производные элементы 32.16. Составные ассоциации 32.17. Рефлексивные ассоциации 32.18. Использование пакетов для организации элементов модели предметной области 32.19. Уточненная модель предметной области для игры «Монополия» Глава 33. Архитектурный анализ 33.1. Когда нужно приступать к архитектурному анализу 33.2. Точки вариации и эволюции 33.3. Архитектурный анализ 33.4. Общие методы архитектурного анализа 33.5. Определение и анализ архитектурных факторов 33.6. Пример: фрагмент таблицы архитектурных факторов POS-системы NextGen 33.7. Определение архитектурных факторов 33.8. Выводы по архитектурному анализу 33.9. Итеративный архитектурный анализ в UP 33.10. Дополнительная литература Глава 34. Уточнение логической архитектуры 34.1. Пример: логическая архитектура приложения NextGen 34.2. Взаимодействия на основе шаблона Layers 34.3. Другие вопросы использования шаблона Layers 34.4. Принцип Model-View Separation 34.5. Дополнительная литература Глава 35. Новые проектные решения на основе шаблонов GoF 35.1. Пример: POS-система NextGen 35.2. Переход к локальным службам и обеспечение локальной буферизации 35.3. Обработка отказов 35.4. Взаимодействие с локальными службами на основе шаблона Proxy (GoF) 35.5. Реализация нефункциональных или качественных требований 35.6. Доступ к внешним физическим устройствам с помощью шаблона Adapter 35.7. Шаблон Abstract Factory (GoF) для семейства взаимосвязанных объектов 35.8. Обработка платежей на основе шаблонов Polymorphism и Do It Myself 35.9. Пример: игра «Монополия» 35.10. Заключение Глава 36. Проектирование на основе пакетов 36.1. Рекомендации по организации пакетов 36.2. Дополнительная литература Глава 37. Диаграммы развертывания и компонентов UML 37.1. Диаграммы развертывания 37.2. Диаграммы компонентов Глава 38. Проектирование каркаса взаимодействия с базой данных на основе шаблонов 38.1. Проблема: объекты, подлежащие постоянному хранению 38.2. Решение: каркас интерфейса с базой данных 38.3. Каркасы 38.4. Требования к каркасу интерфейса с базой данных 38.5. Основные принципы 38.6. Шаблон представления объектов в виде таблиц 38.7. Профиль моделирования данных UML 38.8. Шаблон Object Identifier 38.9. Доступ к службе взаимодействия с базой данных на основе шаблона Façade 38.10. Объекты-преобразователи: шаблон Database Mapper или Database Broker 38.11. Разработка каркаса на основе шаблона Template Method 38.12. Материализация на основе шаблона Template Method 38.13. Настройка преобразователей с помощью объекта MapperFactory 38.14. Шаблон Cache Management 38.15. Объединение и сокрытие операторов SQL в одном классе 38.16. Состояние транзакции и шаблон State 38.17. Обработка транзакций на основе шаблона Command 38.18. Пассивная материализация на основе шаблона Virtual Proxy 38.19. Представление отношений в таблицах 38.20. Суперкласс PersistentObject 38.21. Нерешенные вопросы Глава 39. Документирование архитектуры с помощью АН-1 представления 39.1. Документ SAD и архитектурные представления 39.2. Структура документа SAD 39.3. Пример: описание архитектуры POS-системы Next Gen 39.4. Пример: документ SAD для каркаса Struts 39.5. Итеративное документирование архитектуры 39.6. Дополнительная литература Часть VI. Специальные вопросы Глава 40. Еще раз об итеративной разработке и гибком управлении проектом 40.1. Как спланировать итерацию 40.2. Адаптивное и предиктивное планирование 40.3. Планы для фазы и итерации 40.4. Как составить план итерации с учетом прецедентов и сценариев 40.5. Приблизительность начальных оценок 40.6. Организация артефактов проекта 40.7. Вы не поняли принципов итеративного планирования, если 40.8. Дополнительная литература Приложение А. Артефакты унифицированного процесса, шаблоны GRASP и условные обозначения языка UML Приложение Б. Словарь терминов Литература Предметный указатель