Оглавление
Отзывы о книге
Благодарности
Предисловие
Часть I. Введение в UML и UP
Глава 1. Что такое UML?
1.1. План главы
1.2. Что такое UML?
1.3. Рождение UML
1.4. MDA - будущее UML
1.5. Почему "унифицированный"?
1.6. Объекты и UML
1.7. Структура UML
1.8. Строительные блоки UML
1.9. Общие механизмы UML
1.10. Архитектура
1.11. Что мы узнали
Глава 2. Что такое Унифицированный процесс?
2.1. План главы
2.2. Что такое UP?
2.3. Рождение UP
2.4. UP и Унифицированный процесс компании Rational
2.5. Настройка UP для вашего проекта
2.6. Аксиомы UP
2.7. UP - итеративный и инкрементный процесс
2.8. Структура UP
2.9. Фазы UP
2.10. Что мы узнали
Часть II. Определение требований
Глава 3. Рабочий поток определения требований
3.1. План главы
3.2. Рабочий поток определения требований 71
3.3. Метамодель требований, предъявляемых к программному обеспечению
3.4. Детализация рабочего потока определения требований
3.5. Важное значение определения требований
3.6. Определение понятия требования
3.7. Поиск требований
3.8. Что мы узнали
Глава 4. Моделирование прецедентов
4.1. План главы
4.2. Моделирование прецедентов
4.3. Деятельность UP: Выявление актеров и прецедентов
4.4. Деятельность UP: Детализация прецедента
4.5. Спецификация прецедентов
4.6. Отображение требований
4.7. Когда применять моделирование прецедентов
4.8. Что мы узнали
Глава 5. Дополнительные аспекты моделирования прецедентов
5.1. План главы
5.2. Обобщение актеров
5.3. Обобщение прецедентов
5.4. Отношение "include"
5.5. Отношение "extend"
5.6. Когда применять дополнительные возможности
5.7. Советы и рекомендации по написанию прецедентов
5.8. Что мы узнали
Часть III. Анализ
Глава 6. Рабочий поток анализа
6.1. План главы
6.2. Рабочий поток анализа
6.3. Артефакты анализа - метамодель
6.4. Детализация рабочего потока анализа
6.5. Аналитическая модель - практические правила
6.6. Что мы узнали
Глава 7. Объекты и классы
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
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
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
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
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
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