UML2 и унифицированный процесс. Джим арлоуайла нейштадтпрактический объектно ориентированныйанализ и проектированиеu
Скачать 6.08 Mb.
|
Издательство «Символ Плюс» (812) 324 5353, (495) 945 8100 Êàòåãîðèÿ: UML Óðîâåíü ïîäãîòîâêè ÷èòàòåëåé: cðåäíèé 9 785932 860946 ISBN 10: 5 93286 094 4 ISBN 13: 978 5 93286 094 6 www.symbol.ru ии УУннииф фиицциирроовваанннныыйй ппррооццеесссс ДЖИМ АРЛОУ АЙЛА НЕЙШТАДТ ПРАКТИЧЕСКИЙ ОБЪЕКТНО ОРИЕНТИРОВАННЫЙ АНАЛИЗ И ПРОЕКТИРОВАНИЕ U ML 2 UML 2 и Унифицированный процесс, 2е издание Арлоу , Нейштадт ADDISON WESLEY «Книга четко и понятно рассказывает о практическом применении UML 2, повест вование сопровождается множеством примеров и рекомендаций. Издание очень по лезно даже для тех, кто не работает с Унифицированным процессом. Эта книга обязательна для каждого новичка в UML 2, а для опытных профессионалов это по лезное руководство и справочник.» Роланд Лейбандгут , технический директор, Zuhlke Engineering Ltd. «UML 2 и Унифицированный процесс» – практическое руководство по сложному процессу объектно ориентированного анализа и проектирования с помощью UML 2. В нем показано место ОО анализа и проектирования в цикле разработки программ ного обеспечения, как его определяет Унифицированный процесс (UP). Второе издание тщательно переработано и дополнено в соответствии с синтакси сом UML 2, содержит массу практических, мощных и удобных методик ОО анализа и проектирования, готовых к непосредственному использованию. Вы изучите синтак сис и семантику UML 2 и соответствующие аспекты UP. Книга дает точный и лаконич ный обзор UML и UP с точки зрения ОО аналитика и проектировщика. Каждая глава начинается с плана в виде диаграммы и заканчивается кратким обзором, идеальным для контроля усвоения материала. Наиболее важная информация оформ лена в виде примечаний в рамке. Обновленное издание содержит больше реальных примеров и новый раздел, посвященный объектному языку ограничений (OCL). На веб сайте www.umlandtheunifiedprocess.com вы найдете пример простой системы электронной коммерции, инструментальные средства с открытым исходным кодом для выработки требований и моделирования прецедентов, а также материалы для профессионального курса UML на базе данной книги. Джим Арлоу (Jim Arlow) занимается программированием и проектированием объ ектно ориентированных программных систем с 1990 года. Создал объектные модели для таких солидных компаний, как British Airways и M&G. Как консультант по ОО раз работке пользуется уважением в Европе, написал и провел множество учебных курсов по объектной технологии и Java. Джим постоянно выступает на конференциях, таких как Object World, читал лекции в Университетском колледже Лондона, Городском уни верситете Лондона и Британском компьютерном обществе. Айла Нейштадт (Ila Neustadt) занимается ИТ более 20 лет и имеет опыт полного цик ла разработки ПО. В отделе стратегии компании British Airways занималась модели рованием процесса построения архитектуры и разработкой соответствующих тре нингов, руководила программой повышения квалификации дипломированных биз нес аналитиков. Сейчас Айла координатор курсов повышения квалификации ИТ спе циалистов компании British Airways. В ВТТО ОРРО ОЕЕ И ИЗЗД ДА АН НИ ИЕЕ UML-2.qxd 03.10.2007 19:15 Page 1 По договору между издательством «Символ Плюс» и Интернет мага зином «Books.Ru – Книги России» единственный легальный способ получения данного файла с книгой ISBN 5 93286 094 4, название «UML 2 и Унифицированный процесс» – покупка в Интернет магази не «Books.Ru – Книги России». Если Вы получили данный файл ка ким либо другим образом, Вы нарушили международное законода тельство и законодательство Российской Федерации об охране автор ского права. Вам необходимо удалить данный файл, а также сооб щить издательству «Символ Плюс» (piracy@symbol.ru), где именно Вы получили данный файл. UML 2 and the Unified Process Jim Arlow and Ila Neustadt Practical Object Oriented Analysis and Design Second Edition Джим Арлоу и Айла Нейштадт UML 2 и Унифицированный процесс Санкт Петербург–Москва 2008 Практический объектно ориентированный анализ и проектирование Второе издание Джим Арлоу и Айла Нейштадт UML 2 и Унифицированный процесс, 2 е издание Практический объектно ориентированный анализ и проектирование Перевод Н. Шатохиной Главный редактор А. Галунов Зав. редакцией Н. Макарова Научный редактор А. Пальваль Редактор А. Петухов Корректура О. Макарова Верстка Д. Орлова Арлоу Д., Нейштадт И. UML 2 и Унифицированный процесс. Практический объектно ориентирован ный анализ и проектирование, 2 е издание. – Пер. с англ. – СПб: Символ Плюс, 2007. – 624 с., ил. ISBN 13: 978 5 93286 094 6 ISBN 10: 5 93286 094 4 Сегодня многие книги посвящены или UML, или Унифицированному процессу (Unified Process, UP), но не им обоим. Арлоу и Нейштадт заполнили этот про бел книгой, являющей собою замечательный синтез UML и UP. Здесь вы изу чите методики объектно ориентированного анализа и проектирования, син таксис и семантику UML и соответствующие аспекты UP. Книга содержит точ ный и лаконичный обзор UML и UP с точки зрения ОО аналитика и проекти ровщика. В издании четко и понятно рассказано о практическом применении UML 2 на этапах анализа и проектирования Унифицированного процесса. Вы узнаете о роли моделирования в цикле разработки ПО, и эти знания помогут вам ответить на вопрос: как и когда использовать (или не использовать) UML, чтобы найти оптимальное решение для своего проекта. Авторы приводят мно жество примеров и дают рекомендации, бесценные для начинающих разработ чиков моделей. Опытные ОО аналитики и проектировщики найдут в книге по лезное руководство и справочник по UML 2. ISBN 13: 978 5 93286 094 6 ISBN 10: 5 93286 094 4 ISBN 0 321 32127 8 (англ) © Издательство Символ Плюс, 2007 Original English language title: UML 2 and the Unified Process: Practical Object Ori ented Analysis and Design, Second Edition by Jim Arlow and Ila Neustadt, Copyright © 2005 by Pearson Education, Inc. All Rights Reserved. Published by arrangement with the original publisher, Pearson Education, Inc., publishing as ADDISON WESLEY. Все права на данное издание защищены Законодательством РФ, включая право на полное или час тичное воспроизведение в любой форме. Все товарные знаки или зарегистрированные товарные зна ки, упоминаемые в настоящем издании, являются собственностью соответствующих фирм. Издательство «Символ Плюс». 199034, Санкт Петербург, 16 линия, 7, тел. (812) 324 5353, edit@symbol.ru. Лицензия ЛП N 000054 от 25.12.98. Налоговая льгота – общероссийский классификатор продукции ОК 005 93, том 2; 953000 – книги и брошюры. Подписано в печать 01.10.2007. Формат 70х100 1 /16 . Печать офсетная. Объем 39 печ. л. Тираж 2000 экз. Заказ N Отпечатано с готовых диапозитивов в ГУП «Типография «Наука» 199034, Санкт Петербург, 9 линия, 12. Оглавление Отзывы о книге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 I. Введение в UML и UP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1. Что такое UML? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.2. Что такое UML? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.3. Рождение UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.4. MDA – будущее UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 1.5. Почему «унифицированный»? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1.6. Объекты и UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.7. Структура UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.8. Строительные блоки UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.9. Общие механизмы UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 1.10. Архитектура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 1.11. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2. Что такое Унифицированный процесс? . . . . . . . . . . . . . . . . . . . . . . . 48 2.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.2. Что такое UP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.3. Рождение UP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.4. UP и Унифицированный процесс компании Rational . . . . . . . . . . . 53 2.5. Настройка UP для вашего проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.6. Аксиомы UP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.7. UP – итеративный и инкрементный процесс . . . . . . . . . . . . . . . . . . 57 2.8. Структура UP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 2.9. Фазы UP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2.10. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6 Оглавление II. Определение требований . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3. Рабочий поток определения требований . . . . . . . . . . . . . . . . . . . . . . 71 3.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.2. Рабочий поток определения требований . . . . . . . . . . . . . . . . . . . . . . 71 3.3. Метамодель требований, предъявляемых к программному обеспечению . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 3.4. Детализация рабочего потока определения требований . . . . . . . . . 75 3.5. Важное значение определения требований . . . . . . . . . . . . . . . . . . . . 77 3.6. Определение понятия требования . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 3.7. Поиск требований . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.8. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 4. Моделирование прецедентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.2. Моделирование прецедентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.3. Деятельность UP: Выявление актеров и прецедентов . . . . . . . . . . . 92 4.4. Деятельность UP: Детализация прецедента . . . . . . . . . . . . . . . . . .100 4.5. Спецификация прецедентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101 4.6. Отображение требований . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 4.7. Когда применять моделирование прецедентов . . . . . . . . . . . . . . . .115 4.8. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 5. Дополнительные аспекты моделирования прецедентов . . . . . . 119 5.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119 5.2. Обобщение актеров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119 5.3. Обобщение прецедентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 5.4. Отношение «include» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.5. Отношение «extend» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.6. Когда применять дополнительные возможности . . . . . . . . . . . . . . 133 5.7. Советы и рекомендации по написанию прецедентов . . . . . . . . . . . 133 5.8. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 III. Анализ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 6. Рабочий поток анализа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 6.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141 6.2. Рабочий поток анализа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142 6.3. Артефакты анализа – метамодель . . . . . . . . . . . . . . . . . . . . . . . . . . 143 6.4. Детализация рабочего потока анализа . . . . . . . . . . . . . . . . . . . . . .143 6.5. Аналитическая модель – практические правила . . . . . . . . . . . . . . 144 6.6. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Оглавление 7 7. Объекты и классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 7.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147 7.2. Что такое объекты? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 7.3. Нотация объектов в UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 7.4. Что такое классы? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 7.5. Нотация классов в UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 7.6. Область действия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 7.7. Создание и уничтожение объектов . . . . . . . . . . . . . . . . . . . . . . . . . .171 7.8. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 8. Выявление классов анализа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 8.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178 8.2. Деятельность UP: Анализ прецедента . . . . . . . . . . . . . . . . . . . . . . . 178 8.3. Что такое классы анализа? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 8.4. Выявление классов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186 8.5. Создание аналитической модели в первом приближении . . . . . . 195 8.6. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 9. Отношения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199 9.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199 9.2. Что такое отношение? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199 9.3. Что такое связь? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201 9.4. Что такое ассоциация? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204 9.5. Что такое зависимость? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 9.6. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 10. Наследование и полиморфизм . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 10.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 10.2. Обобщение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 10.3. Наследование классов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 10.4. Полиморфизм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 10.5. Дополнительные аспекты обобщения . . . . . . . . . . . . . . . . . . . . . .240 10.6. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 11. Пакеты анализа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 11.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248 11.2. Что такое пакет? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248 11.3. Пакеты и пространства имен . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 11.4. Вложенные пакеты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 11.5. Зависимости пакетов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 11.6. Обобщение пакетов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 8 Оглавление 11.7. Архитектурный анализ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 11.8. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 12. Реализация прецедентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 12.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264 12.2. Деятельность UP: Анализ прецедента . . . . . . . . . . . . . . . . . . . . . . 264 12.3. Что такое реализации прецедентов? . . . . . . . . . . . . . . . . . . . . . . . 266 12.4. Реализация прецедента – элементы . . . . . . . . . . . . . . . . . . . . . . . . 268 12.5. Взаимодействия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 12.6. Линии жизни . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 12.7. Сообщения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 12.8. Диаграммы взаимодействий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 12.9. Диаграммы последовательностей . . . . . . . . . . . . . . . . . . . . . . . . . .275 12.10. Комбинированные фрагменты и операторы . . . . . . . . . . . . . . . .282 12.11. Коммуникационные диаграммы . . . . . . . . . . . . . . . . . . . . . . . . . 290 12.12. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295 13. Дополнительные аспекты реализации прецедентов . . . . . . . . . 299 13.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299 13.2. Включения взаимодействий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 13.3. Продолжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 13.4. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 14. Диаграммы деятельности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 14.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309 14.2. Что такое диаграммы деятельности . . . . . . . . . . . . . . . . . . . . . . . . 309 14.3. Диаграммы деятельности и UP . . . . . . . . . . . . . . . . . . . . . . . . . . . .311 14.4. Деятельности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 14.5. Семантика деятельности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 14.6. Разделы деятельности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 14.7. Узлы действия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 14.8. Узлы управления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .323 14.9. Объектные узлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 14.10. Контакты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 14.11. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334 15. Дополнительные аспекты диаграмм деятельности . . . . . . . . . . . 337 15.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337 15.2. Разъемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 15.3. Области с прерываемым выполнением действий . . . . . . . . . . . . . 339 15.4. Обработка исключений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 Оглавление 9 15.5. Узлы расширения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341 15.6. Отправка сигналов и прием событий . . . . . . . . . . . . . . . . . . . . . . . 343 15.7. Потоковая передача . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 15.8. Дополнительные возможности потоков объектов . . . . . . . . . . . . 347 15.9. Групповая рассылка и групповой прием . . . . . . . . . . . . . . . . . . . . 349 15.10. Наборы параметров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350 15.11. Узел «centralBuffer» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 15.12. Диаграммы обзора взаимодействий . . . . . . . . . . . . . . . . . . . . . . . 353 15.13. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .354 IV. Проектирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 16. Рабочий поток проектирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 16.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359 16.2. Рабочий поток проектирования . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 16.3. Артефакты проектирования – метамодель . . . . . . . . . . . . . . . . . .361 16.4. Детализация рабочего потока проектирования . . . . . . . . . . . . . . 365 16.5. Деятельность UP: проектирование архитектуры . . . . . . . . . . . .366 16.6. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 17. Проектные классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 17.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369 17.2. Деятельность UP: Проектирование класса . . . . . . . . . . . . . . . . . .369 17.3. Что такое проектные классы? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 17.4. Анатомия проектного класса . . . . . . . . . . . . . . . . . . . . . . . . . . . . .374 17.5. Правильно сформированные проектные классы . . . . . . . . . . . . . 375 17.6. Наследование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 17.7. Шаблоны . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .383 17.8. Вложенные классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 17.9. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 18. Уточнение отношений, выявленных при анализе . . . . . . . . . . . .391 18.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .391 18.2. Отношения уровня проектирования . . . . . . . . . . . . . . . . . . . . . . . 391 18.3. Агрегация и композиция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 18.4. Семантика агрегации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 18.5. Семантика композиции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 18.6. Как уточнять отношения уровня анализа . . . . . . . . . . . . . . . . . . . 399 18.7. Ассоциации один к одному . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 18.8. Ассоциации многие к одному . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 18.9. Ассоциации один ко многим . . . . . . . . . . . . . . . . . . . . . . . . . . . . .401 10 Оглавление 18.10. Коллекции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 18.11. Конкретизированные отношения . . . . . . . . . . . . . . . . . . . . . . . . .406 18.12. Изучение композиции с использованием структурированных классов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .409 18.13. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .413 19. Интерфейсы и компоненты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 19.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .419 19.2. Деятельность UP: Проектирование подсистемы . . . . . . . . . . . . . 419 19.3. Что такое интерфейс? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .421 19.4. Предоставляемые и требуемые интерфейсы . . . . . . . . . . . . . . . . .423 19.5. Сравнение реализации интерфейса и наследования . . . . . . . . . . 426 19.6. Порты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .430 19.7. Интерфейсы и компонентно ориентированная разработка . . . . 431 19.8. Что такое компонент? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .432 19.9. Стереотипы компонентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 19.10. Подсистемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 19.11. Выявление интерфейсов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 19.12. Проектирование с использованием интерфейсов . . . . . . . . . . .437 19.13. Преимущества и недостатки интерфейсов . . . . . . . . . . . . . . . . . 441 19.14. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .442 20. Реализация прецедента на этапе проектирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .446 20.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .446 20.2. Деятельность UP: Проектирование прецедента . . . . . . . . . . . . . . 446 20.3. Проектная реализация прецедента . . . . . . . . . . . . . . . . . . . . . . . . 449 20.4. Диаграммы взаимодействий при проектировании . . . . . . . . . . .450 20.5. Моделирование параллелизма . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 20.6. Взаимодействия подсистем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .459 20.7. Временные диаграммы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .460 20.8. Пример реализации прецедента на этапе проектирования . . . . 464 20.9. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 21. Конечные автоматы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 21.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .471 21.2. Конечные автоматы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 21.3. Конечные автоматы и UP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 21.4. Диаграммы состояний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 21.5. Состояния . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .477 21.6. Переходы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 Оглавление 11 21.7. События . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 21.8. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 22. Дополнительные аспекты конечных автоматов . . . . . . . . . . . . . . 490 22.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .490 22.2. Составные состояния . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 22.3. Состояния подавтоматов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 22.4. Взаимодействие подавтоматов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 22.5. Предыстория . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 22.6. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 V. Реализация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 23. Рабочий поток реализации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 23.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .507 23.2. Рабочий поток реализации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .507 23.3. Артефакты реализации – метамодель . . . . . . . . . . . . . . . . . . . . . . 509 23.4. Детализация рабочего потока реализации . . . . . . . . . . . . . . . . . . 510 23.5. Артефакты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 23.6. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 24. Развертывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 24.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .512 24.2. Деятельность UP: Реализация архитектуры . . . . . . . . . . . . . . . . 513 24.3. Диаграмма развертывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .514 24.4. Узлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .515 24.5. Артефакты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 24.6. Развертывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 24.7. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 VI. Дополнительные материалы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .525 25. Введение в OCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 25.1. План главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .527 25.2. Что такое объектный язык ограничений (OCL)? . . . . . . . . . . . . . 527 25.3. Почему OCL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 25.4. Синтаксис выражений OCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 25.5. Контекст пакета и составные имена . . . . . . . . . . . . . . . . . . . . . . . . 532 25.6. Контекст выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 25.7. Типы OCL выражений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 25.8. Тело выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .536 25.9. Навигация в OCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 12 Оглавление 25.10. Подробно о типах OCL выражений . . . . . . . . . . . . . . . . . . . . . . . 558 25.11. OCL на диаграммах других типов . . . . . . . . . . . . . . . . . . . . . . . . .567 25.12. Дополнительные вопросы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .573 25.13. Что мы узнали . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .579 A. Пример модели прецедентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .584 A.1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 A.2. Модель прецедентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 A.3. Примеры прецедентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 B. XML и прецеденты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 B.1. Применение XML для шаблонов прецедентов . . . . . . . . . . . . . . . .590 B.2. SUMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .591 Библиография . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .598 Алфавитный указатель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 Отзывы о книге «Стандарт UML 2 группы OMG очень систематично и основательно определяет UML, но в нем не хватает описания того, как применять UML 2 в реальном проекте. Вот где пригодится «UML 2 и Унифициро ванный процесс», 2 е издание. В книге ясно и доходчиво рассказыва ется о практическом применении UML 2. Изложение сопровождается множеством примеров и рекомендаций. Книга очень полезна даже тем, кто не работает с Унифицированным процессом. «UML 2 и Уни фицированный процесс», 2 е издание – обязательная книга для нович ков в UML 2 и полезное руководство и справочник для опытных про фессионалов». – Роланд Лейбандгут (Roland Leibundgut), технический директор, Zu . . hlke Engineering Ltd. «Авторы очень подробно описывают конструктивные элементы UML и то, как они поддерживают Унифицированный процесс. Эта книга – хорошая отправная точка для организаций и специалистов, которые переходят к UP и нуждаются в понимании того, как обеспечить визу ализацию различных аспектов в соответствии с UP». – Эрик Найбург (Eric Naiburg) менеджер по маркетингу, Desktop Products IBM Rational Software «Сегодня многие книги посвящены или UML, или Унифицированному процессу (Unified Process, UP), но не им обоим. Арлоу и Нейштадт за полнили этот пробел книгой, являющей собой замечательный синтез UML и UP. Авторы предлагают богатый опыт, бесценный для начина ющих разработчиков моделей и опытных ОО аналитиков и проекти ровщиков. Логическая структура, основанная на рабочих потоках UP, и особый стиль изложения с использованием диаграмм деятельностей в начале каждой главы существенно упрощают работу с книгой. Это издание должно быть всегда под рукой и у профессионалов, и у студен тов». – Исхан Де Силва (Ishan De Silva) разработчик программного обеспечения Millennium Information Technologies, Шри Ланка 14 Отзывы о книге «Если вы ищете книгу с рецептами, почитайте что нибудь другое. Эта книга заставит вас думать! В ней описываются все синтаксические эле менты UML, но, что более важно, она дает практический совет, как и когда использовать (или не использовать) UML. Вы научитесь ду мать о роли моделирования в процессе разработки. Эти знания помо гут вам ответить на вопрос: как и когда использовать UML, чтобы най ти оптимальное решение для своего проекта. «UML 2 и Унифициро ванный процесс», 2 е издание подготовит вас к успешному примене нию UML». – Джос Уормер (Jos Warmer) Ordina System Integration & Development, Нидерланды «Авторы создали книгу, объединяющую два важных предмета, UML и Унифицированный процесс. «UML 2 и Унифицированный процесс» – превосходный справочник по UML 2. Издание рассказывает о возмож ностях UML и о том, как применять его в дисциплинах анализа и про ектирования Унифицированного процесса. Эта книга должна быть на столе у каждого профессионала». – Гэри Поллис (Gary Pollice) профессор, преподаватель вычислительной техники Вустерский политехнический институт Благодарности Хотелось бы поблагодарить Фабрицио Феррандина (Fabrizio Ferrandi na), Вольфганга Еммериха (Wolfgang Emmerich) и наших друзей из Z ь hlke Engineering за то, что они сподвигли нас на создание учебного курса, который стал основой этой книги. Особая благодарность Роланду Лейбандгуту (Roland Leibundgut) из Z ь hlke за его комментарии к гла вам, посвященным прецедентам, и Джосу Уормеру (Jos Warmer) и То му Ван Корту (Tom VanCourt) за их глубокий анализ главы по OCL. Огромное спасибо и остальным техническим редакторам: Глен Форд (Glen Ford), Бергеру Меллер Педерсену (Birger M ш ller Pedersen), Робу Петтиту (Rob Pettit), Гэри Поллису (Gary Pollice), Исхану Де Силва (Ishan De Silva) и Фреду Васкиевичу (Fred Waskiewicz). Спасибо Сью и Девиду Эпштейнам (Sue, David Epstein) за жизненно важную нетех ническую поддержку в течение всего проекта. Благодарим Энди Полса (Andy Pols), поделившегося с нами своими идеями по поводу преце дентов и процесса производства программного обеспечения. Наша бла годарность сотрудникам издательства Addison Wesley Ларе Вайсонг (Lara Wysong), Мэри Лу Нор (Mary Lou Nohr) и Ким Арни Малкахи (Kim Arney Mulcahy) за их замечательную работу над текстом и наше му редактору Мэри О’Брайан (Mary O’Brien). Спасибо семейству Ней штадт (Neustadt) за их терпение и Элу Томсу (Al Toms) за огромную поддержку. И конечно же, нашим котам, Гомеру, Падди и Мег, за многие часы сна на рукописях, которые наполнили их «неописуемым качеством». И наконец, мы должны выразить признательность «Трем амигос» – Гради Бучу (Grady Booch), Джиму Рамбо (Jim Rumbaugh) и Айвару Джекобсону (Ivar Jacobson) – за их высококлассную работу над UML и UP, которым посвящена эта книга. Предисловие Об этой книге Цель этой книги – показать процесс объектно ориентированного (ОО) анализа и проектирования с помощью Унифицированного языка мо делирования (Unified Modeling Language, UML) и Унифицированного процесса (Unified Process, UP). UML представляет собой язык визуального моделирования для ОО мо делирования. UP обеспечивает каркас процесса производства про граммного обеспечения, указывающий, как осуществлять ОО анализ и проектирование. О UP можно говорить много. В книге представлены только аспекты, имеющие непосредственное отношение к работе ОО аналитика/проекти ровщика. За подробной информацией по другим деталям UP обращай тесь к [Rumbaugh 1] и другим указанным в библиографии книгам по UP. Здесь приведено достаточное количество информации по UML и ассо циированным с ним методикам анализа и проектирования, что обеспе чивает возможность эффективно применять моделирование в реальном проекте. Согласно Стивену Меллору (Stephen Mellor) [Mellor 1], сущест вует три способа использования UML: • UML как эскиз – это неформальный подход к UML, при котором ис пользуется схематическое изображение диаграмм, помогающее ви зуализировать программную систему. Это несколько схоже с наброс ком идеи на обратной стороне салфетки. Эскизы не представляют практически никакой ценности кроме их исходного применения, не сохраняются и в конце концов выбрасываются. Для создания нефор мальных эскизов обычно используют доску или инструментальные средства рисования, такие как Visio и PowerPoint (www.micro soft.com ). • UML как модель – это более формальный и точный подход, при кото ром UML используется для подробного описания программной систе мы. Это как набор архитекторских планов или чертеж машины. UML модель активно поддерживается и становится важным поставляемым артефактом проекта. Этот подход требует использования настояще го инструментального средства моделирования, такого как Rational Rose (www.rational.com) или MagicDraw UML (www.magicdraw.com). • UML как исполняемый проект – с помощью MDA (Model Driven Ar chitecture – архитектура, управляемая моделью) UML модели мо Предисловие 17 гут использоваться как язык программирования. Создается доста точно подробная UML модель, и система может быть скомпилиро вана прямо из нее. Это самое формальное и точное применение UML и, по нашему мнению, это будущее разработки программного обес печения. При таком подходе необходим UML инструмент, поддер живающий MDA, такой как ArcStyler (www.arcstyler.com). Рас смотрение MDA выходит за рамки обсуждения этой книги, хотя мы касаемся его вкратце в разделе 1.4. Основное внимание в книге сосредоточено на UML как модели. Пред ставленные технические приемы также подойдут и для использования UML как исполняемого проекта. Изучив UML как модель, вы свободно сможете использовать UML как эскиз в случае необходимости. Мы попытались сделать наше представление UML и UP максимально простым и доступным. Условные обозначения Чтобы упростить ориентирование по книге, каждая глава снабжена планом в форме диаграммы деятельностей UML. Эти диаграммы пока зывают деятельности чтения и порядок прочтения всеx разделов. Диа граммы деятельности подробно рассматриваются в главе 14, а сейчас рис. 1 поможет разобраться с диаграммами планов глав. начинаем отсюда это деятельность – то, что вы делаете условие – направляемся по этому пути, если условие истинно ветвление – выбираем один из путей ветвление – поток разделяется на параллельное выполнение деятельностей объединение – назад к одному потоку эти деятельности могут осуществляться параллельно заканчиваем здесь изучаем типы составного состояния [изучаем состояния подавтоматов] [изучаем взаимодействие подавтоматов] [изучаем предысторию] else else 22.2. Составные состояния 22.2.1. Простые составные состояния 22.2.2. Ортогональные составные состояния 22.3. Состояния подавтоматов 22.4. Взаимодействие подавтоматов 22.5. Предыстория 22.5.1. Неглубокая предыстория 22.5.2. Глубокая предыстория 22.6. Что мы узнали Рис. 1. 18 Предисловие Большинство диаграмм в данной книге – это UML диаграммы. Пояс няющий текст на диаграммах не является частью синтаксиса UML. Важная информация оформлена в виде UML пиктограммы примечания, т. е. заключена в прямоугольник с загнутым уголком. В книге используются разные шрифты: Этот шрифт применяется для элементов моделирования UML. Этот шрифт – для кода. Для кого эта книга Мы видим следующих возможных читателей данной книги. • Вы аналитик или проектировщик, которому необходимо научиться проводить ОО анализ и проектирование. • Вы аналитик или проектировщик, которому необходимо научиться проводить ОО анализ и проектирование в рамках Унифицированно го процесса. • Вы студент, изучающий курс UML в университете. • Вы разработчик программного обеспечения, которому необходима справочная информация по UML. • Вы разработчик программного обеспечения, слушающий учебный курс по UML, и эта книга – ваш учебник. Компания Clear View Training предлагает 4 дневный учебный курс по UML, основанный на данной книге. Этот курс читается по всей Европе нашим партнером, компанией Zuhlke Engineering (www.zuhlke.com), и доступен для лицензирования. Образовательные учреждения, исполь зующие данную книгу как учебник, могут воспользоваться нашим учебным курсом бесплатно. Более подробно о коммерческом и учебном лицензировании см. по адресу www.clearviewtraining.com. Как читать эту книгу Так много книг и так мало времени, чтобы прочитать их все! Помня об этом, мы спланировали эту книгу так, что ее можно читать по разному (в том числе и от корки до корки) соответственно вашим нуждам. По ускоренной схеме Выберите ускоренную схему, если хотите просто просмотреть всю кни гу или отдельную главу. Кроме того, это способ получить сжатый смысл главы или книги. • Выберите главу. • Прочитайте план главы, чтобы знать, о чем пойдет речь. Предисловие 19 • Просмотрите главу, останавливаясь на рисунках и примечаниях в рамках. • Прочитайте раздел «Что мы узнали». • Вернитесь и прочитайте любой заинтересовавший вас раздел. Ускоренная схема – это быстрый и эффективный способ чтения этой книги. Возможно, вас приятно удивит, как много информации можно почерпнуть! Обратите внимание, что ускоренная схема эффективнее, если вы с самого начала можете четко сформулировать, какую инфор мацию хотите получить. Например: «Я хочу понять, как осуществ лять моделирование прецедентов». Для справки Если вам необходимо знать конкретную часть UML или изучить опреде ленный технический прием, мы предоставили подробный индекс и ог лавление, которые помогут найти необходимую информацию быстро и эффективно. Чтобы помочь в этом, в тексте используются точные пе рекрестные ссылки. Просмотреть Существует две стратегии просмотра данного текста. • Если необходимо максимально эффективно и быстро освежить зна ния по UML, прочитайте краткие обзоры, приведенные в разделе «Что мы узнали» каждой главы. Если что то непонятно, вернитесь и прочитайте соответствующий раздел. • Если вы располагаете большим количеством времени, можно про смотреть каждую главу, изучая диаграммы и прочитывая примеча ния в рамках. Пробежать глазами Если у вас есть пара свободных минут, можно взять книгу и открыть ее на любой странице. Мы попытались сделать так, чтобы на каждой странице было что то интересное. Если даже вы уже довольно хорошо знаете UML, все равно можно найти что то новое. План книги На рис. 2 представлен план книги. Мы показали, какие главы можно читать в любом порядке, а какие можно пропустить при первом чте нии, поскольку они обсуждают усовершенствованные технические приемы. 20 Предисловие Приложение 2: XML и прецеденты обзор UML обзор UP Часть 1 Введение в UML и UP |