Оглавление Предисловие 1 
 Структура книги 3 
 Рекомендации по изучению языка UML 4 
 Благодарности 5 
 Постскриптум 6 
 ЧАСТЬ I. ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО АНАЛИЗА И ПРОЕКТИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ 7 
 Глава 1. Базовые принципы и понятия технологии разработки объектно-ориентированных информационных систем 9 
 1.1. Основные понятия моделирования систем и программных приложений 10 
 1.2. Методология объектно-ориентированного анализа и проектирования 15 
 1.3. Концепция разработки архитектур, управляемых моделями 22 
 1.4. Основные этапы развития UML 2.0 25 
 Глава 2. Основные элементы нотации языка UML 2.0 34 
 2.1. Назначение языка UML 2.0 34 
 2.2. Общая структура языка UML 2.0 38 
 2.3. Пакеты в языке UML 2.0 42 
 2.4. Основные пакеты метамодели языка UML 2.0 44 
 2.4.1. Пакет Абстракции 45 
 2.4.2. Пакет Основы 45 
 2.4.3. Пакет Конструкции 46 
 2.4.4. Пакет Простейшие Типы 47 
 Boolean (Логический) 47 
 Integer (Целочисленный) 48 
 String (Строка) 48 
 UnlimitedNatural (Неограниченное натуральное число) 49 
 2.4.5. Пакет Модели 50 
 2.5. Особенности спецификации метамодели языка UML 2.0 51 
 2.6. Особенности изображения диаграмм в нотации UML 2.0 60 
 2.7. Механизмы расширения в языке UML 2.0 65 
 2.7.1. Стереотип 66 
 2.7.2. Ограничение 67 
 2.7.3. Помеченное значение 69 
 ЧАСТЬ II. ДИАГРАММЫ ВИЗУАЛЬНОГО МОДЕЛИРОВАНИЯ ЯЗЫКА UML 2.0 71 
 Глава 3. Диаграмма вариантов использования (use case diagram) 73 
 3.1. Диаграмма вариантов использования — исходная концептуальная модель проектируемой системы 73 
 3.1.1. Назначение диаграммы вариантов использования 74 
 3.1.2. Субъект вариантов использования 75 
 3.2. Основные графические элементы диаграммы вариантов использования 76 
 3.2.1. Вариант использования 77 
 3.2.2. Актер 79 
 3.2.3. Комментарий 82 
 3.3. Отношения на диаграмме вариантов использования 83 
 3.3.1. Отношение ассоциации 84 
 3.3.2. Отношение включения 86 
 3.3.3. Отношение расширения 88 
 3.3.4. Отношение обобщения 92 
 3.3.5. Пример диаграммы вариантов использования для системы продажи товаров в интернет-магазине 94 
 3.4. Формализация функциональных требований к системе с помощью диаграммы вариантов использования 97 
 3.4.1. Классификация требований в модели FURPS+ 97 
 3.4.2. Спецификация функциональных требований с помощью текстовых сценариев 98 
 3.4.3. Пример сценария для системы продажи товаров в интернет-магазине 100 
 Глава 4. Диаграмма классов (class diagram) 104 
 4.1. Диаграмма классов — основная логическая модель проектируемой системы 104 
 4.2. Класс 107 
 4.2.1. Имя класса 110 
 4.2.2. Атрибуты класса 112 
 Вид видимости 114 
 Кратность 116 
 4.2.3. Операции класса 117 
 4.2.4. Параметр 120 
 4.3. Отношения между классами 123 
 4.3.1. Ассоциация 124 
 4.3.2. N-арная ассоциация 130 
 4.3.3. Ассоциация-класс 131 
 4.3.4. Квалификатор 133 
 4.3.5. Обобщение 134 
 4.3.6. Множество обобщения 137 
 4.3.7. Агрегация 140 
 4.3.8. Композиция 142 
 4.3.9. Зависимость 144 
 4.3.10. Реализация 145 
 4.4. Интерфейс 145 
 4.5. Шаблон 148 
 4.6. Диаграмма классов для системы продажи товаров в интернет-магазине 150 
 Глава 5. Диаграмма композитной структуры (composite structure diagram) 154 
 5.1. Композитная структура 154 
 5.2. Композитный класс 156 
 5.2.1. Часть 156 
 5.2.2. Соединитель 158 
 5.2.3. Роль в спецификации экземпляра класса 160 
 5.3. Порт класса 161 
 5.4. Кооперация 165 
 5.5. Применение кооперации 167 
 5.6. Шаблон кооперации 170 
 Глава 6. Дополнительные диаграммы структуры 175 
 6.1. Диаграмма пакетов 175 
 6.1.1. Пакет 176 
 6.1.2. Зависимость пакетов 178 
 6.1.3. Импорт пакета 179 
 6.1.4. Импорт элемента 180 
 6.1.5. Слияние пакетов 183 
 Общие правила слияния пакетов 187 
 Правила для пакетов 188 
 Правила для классов и типов данных 189 
 Правила для свойств 189 
 Правила для ассоциаций 190 
 Правила для операций 191 
 Правила для перечислений 191 
 Правила для ограничений 192 
 6.2. Диаграмма объектов 194 
 6.2.1. Объект 194 
 6.2.2. Спецификация экземпляра 195 
 6.2.3. Слот 197 
 6.2.4. Значение экземпляра 199 
 Глава 7. Диаграмма последовательности (sequence diagram) 201 
 7.1. Диаграмма последовательности — основная модель взаимодействия элементов проектируемой системы 202 
 7.2. Линия жизни 205 
 7.3. Сообщения и сигналы 207 
 7.3.1. Сообщение 208 
 7.3.2. Сигнал 211 
 7.4. Комбинированный фрагмент 213 
 7.4.1. Альтернативы (alt) 216 
 7.4.2. Утверждение (assert) 217 
 7.4.3. Завершение (break) 218 
 7.4.4. Критический регион (critical) 219 
 7.4.5. Рассмотрение (consider) 220 
 7.4.6. Игнорирование (ignore) 220 
 7.4.7. Цикл (loop) 222 
 7.4.8. Отрицание (neg) 223 
 7.4.9. Необязательный (opt) 224 
 7.4.10. Параллельный (par) 225 
 7.4.11. Слабое следование (seq) 225 
 7.4.12. Строгое следование (strict) 226 
 7.5. Специальные фрагменты и элементы взаимодействия 226 
 7.5.1. Использование взаимодействия 226 
 7.5.2. Декомпозиция части 228 
 7.5.3. Инвариант состояния 230 
 7.5.4. Продолжение 232 
 7.5.5. Шлюз 234 
 7.6. Специальные ограничения на диаграммах последовательности 235 
 7.6.1. Временное выражение 236 
 7.6.2. Временное событие 236 
 7.6.3. Действие наблюдения времени 237 
 7.6.4. Интервал 238 
 7.6.5. Временное ограничение 239 
 7.6.6. Продолжительность 239 
 7.6.7. Действие наблюдения продолжительности 240 
 7.6.8. Ограничение на продолжительность 241 
 Глава 8. Диаграмма деятельности (activity diagram) 245 
 8.1. Концептуальные основы моделирования деятельности 245 
 8.1.1. Деятельность и действие 246 
 8.1.2. Узлы и дуги деятельности 247 
 8.1.3. Семантика деятельности 251 
 8.1.4. Семантика действия 252 
 8.2. Узлы управления 254 
 8.2.1. Начальный узел 254 
 8.2.2. Узел финала деятельности и потока 255 
 8.2.3. Узел решения 256 
 8.2.4. Узел слияния 258 
 8.2.5. Узел разделения 259 
 8.2.6. Узел соединения 260 
 8.3. Специальные действия 262 
 8.3.1. Действие передачи сигнала 262 
 8.3.2. Действие приема события 263 
 8.4. Узлы потока объектов 265 
 8.4.1. Узел объекта 265 
 8.4.2. Центральный буфер и хранилище данных 267 
 8.4.3. Входные и выходные контакты объектов 269 
 8.4.4. Узел параметра деятельности 271 
 8.4.5. Множество параметров 273 
 8.5. Специальные регионы 275 
 8.5.1. Разбиение деятельности 275 
 8.5.2. Регион прерываемой деятельности 278 
 8.5.3. Обработчик исключения 280 
 Глава 9. Вспомогательные диаграммы взаимодействия 285 
 9.1. Диаграмма коммуникации (communication diagram) 286 
 9.1.1. Линия жизни 288 
 9.1.2. Связь 289 
 9.1.3. Сообщение 290 
 9.1.4. Формат записи сообщений 292 
 9.1.5. Модель коммуникации 295 
 9.2. Диаграмма обзора взаимодействия (interaction overview diagram) 298 
 9.3. Временная диаграмма (timing diagram) 301 
 9.3.1. Основные элементы временной диаграммы 302 
 9.3.2. Первая форма временной диаграммы 304 
 9.3.3. Вторая форма временной диаграммы 305 
 9.3.4. Третья форма временной диаграммы 306 
 Глава 10. Диаграмма конечного автомата (state machine diagram) 308 
 10.1. Концептуальные основы моделирования конечных автоматов в языке UML 2.0 309 
 10.2. Простое состояние 314 
 10.2.1. Секция имени 315 
 10.2.2. Секция внутренней деятельности 315 
 10.2.3. Секция внутренних переходов 316 
 10.2.4. Отложенные события 317 
 10.3. Псевдосостояния 317 
 10.3.1. Начальное псевдосостояние 318 
 10.3.2. Узел завершения 319 
 10.3.3. Выбор 319 
 10.3.4. Соединение 321 
 10.3.5. Разделение 322 
 10.3.6. Слияние 323 
 10.3.7. Точка входа 324 
 10.3.8. Точка выхода 324 
 10.3.9. Неглубокая история 325 
 10.3.10. Глубокая история 327 
 10.3.11. Финальное состояние 329 
 10.4. Переход 329 
 10.4.1. Сторожевое условие 330 
 10.4.2. Переходы завершения и события завершения 331 
 10.4.3. Составные переходы 332 
 10.4.4. Передача сигнала 333 
 10.4.5. Прием сигнала 333 
 10.4.6. Действия на переходе 334 
 10.4.7. Правила разрешения и срабатывания переходов 335 
 10.4.8. Конфликтующие переходы 337 
 10.5. Композитные состояния и регионы 339 
 10.5.1. Основные определения 339 
 10.5.2. Вход и выход в простом композитном состоянии 341 
 10.5.3. Вход и выход в ортогональном композитном состоянии 344 
 10.5.4. Скрытая секция декомпозиции 345 
 10.6. Состояние подавтомата 347 
 10.7. Протокольный конечный автомат 350 
 10.7.1. Протокольное состояние 351 
 10.7.2. Протокольный переход 352 
 Глава 11. Диаграмма компонентов (component diagram) 356 
 11.1. Особенности физического моделирования в языке UML 2.0 356 
 11.2. Компонент 360 
 11.3. Интерфейс 364 
 11.4. Порт 366 
 11.5. Соединитель 368 
 11.5.1. Собирающий соединитель 368 
 11.5.2. Делегирующий соединитель 370 
 11.6. Зависимость 373 
 11.7. Реализация 375 
 11.8. Стереотипы компонентов 376 
 Глава 12. Диаграмма развертывания (deployment diagram) 382 
 12.1. Узел 384 
 12.1.1. Среда выполнения 385 
 12.1.2. Устройство 387 
 12.2. Артефакт 388 
 12.3. Спецификация развертывания 390 
 12.4. Отношения на диаграмме развертывания 392 
 12.4.1. Развертывание 393 
 12.4.2. Манифестация 395 
 12.4.3. Путь коммуникации 396 
 12.5. Стереотипы узлов 397 
 ЧАСТЬ III. АНАЛИЗ И ПРОЕКТИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ НОТАЦИИ UML 2.0 И CASE-СРЕДСТВА BORLAND® TOGETHER® DESIGNER 2005  401 
 Глава 13. Особенности реализации графической нотации языка UML 2.0 в среде Borland® Together® Designer 2005 403 
 13.1. Общая характеристика CASE-средства Borland® Together® Designer 2005 404 
 13.2. Особенности рабочего интерфейса Borland Together Designer 2005 406 
 13.2.1. Главное меню 407 
 13.2.2. Стандартная панель инструментов 408 
 13.2.3. Окно проекта 410 
 13.2.4. Окно навигатора модели 411 
 13.2.5. Окно навигатора диаграмм 412 
 13.2.6. Окно инспектора 413 
 13.2.7. Окно диаграммы 414 
 13.2.8. Стандартная панель инструментов окна диаграммы модели 415 
 13.2.9. Специальная панель инструментов диаграммы модели 417 
 13.2.10. Окно истории 418 
 13.3. Назначение операций главного меню 419 
 13.3.1. Пункт меню File (Файл) 419 
 13.3.2. Пункт меню Edit (Редактирование) 421 
 13.3.3. Пункт меню Search (Поиск) 422 
 13.3.4. Пункт меню View (Вид) 422 
 13.3.5. Пункт меню Project (Проект) 423 
 13.3.6. Пункт меню Diagram (Диаграмма) 424 
 13.3.7. Пункт меню Team (Команда) 425 
 13.3.8. Пункт меню Tools (Инструменты) 428 
 13.3.9. Пункт меню Window (Окно) 429 
 13.3.10. Пункт меню Help (Справка) 429 
 Глава 14. Организация работы над проектом в среде Borland Together Designer 430 
 14.1. Разработка диаграммы вариантов использования в среде Together Designer 431 
 14.1.1. Создание нового проекта и новой диаграммы вариантов использования 431 
 14.1.2. Добавление актеров 436 
 14.1.3. Добавление границы системы 437 
 14.1.4. Добавление вариантов использования 438 
 14.1.5. Добавление ассоциаций 439 
 14.1.6. Добавление зависимостей 441 
 14.1.7. Добавление текстового файла со сценарием варианта использования 443 
 14.2. Разработка диаграммы классов в среде Together Designer 444 
 14.2.1. Добавление классов 446 
 14.2.2. Добавление атрибутов классов 447 
 14.2.3. Добавление операций классов 448 
 14.2.4. Добавление отношений на диаграмму классов 453 
 14.3. Разработка диаграммы композитной структуры в среде Together Designer 455 
 14.3.1. Добавление классов и частей 457 
 14.3.2. Добавление портов и интерфейсов 458 
 14.3.3. Добавление отношений на диаграмму композитной структуры 460 
 14.4. Разработка диаграммы последовательности в среде Together Designer 460 
 14.4.1. Добавление линий жизни 461 
 14.4.2. Добавление сообщений 462 
 14.4.3. Добавление комбинированных фрагментов 464 
 14.5. Разработка диаграммы коммуникации в среде Together Designer 468 
 14.5.1. Добавление линий жизни 470 
 14.5.2. Добавление сообщений 471 
 Глава 15. Завершение разработки проекта в среде Borland Together Designer 474 
 15.1. Разработка диаграммы деятельности в среде Together Designer 474 
 15.1.1. Добавление действий и деятельностей 476 
 15.1.2. Добавление потока управления 477 
 15.2. Разработка диаграммы конечного автомата в среде Together Designer 479 
 15.2.1. Добавление состояний 481 
 15.2.2. Добавление переходов 482 
 15.3. Разработка диаграммы компонентов в среде Together Designer 484 
 15.3.1. Добавление компонентов 485 
 15.3.2. Добавление отношений на диаграмму компонентов 488 
 15.4. Разработка диаграммы развертывания в среде Together Designer 488 
 15.4.1. Добавление узлов, сред выполнения и компонентов 490 
 15.4.2. Добавление отношений на диаграмму развертывания 491 
 15.5. Генерация документации и программного кода в среде Together Designer 493 
 Заключение 497 
 ПРИЛОЖЕНИЯ 499 
 Приложение 1. Язык объектных ограничений OCL 501 
 П1.1. Выражения языка OCL 503 
 П1.2. Основные типы значений и операций в языке OCL 505 
 П1.3. Операции над отдельными типами значений 507 
 П1.3.1. Операции с действительными числами 507 
 П1.3.2. Операции с целыми числами 509 
 П1.3.3. Операции со строками 511 
 П1.3.4. Операции с булевыми выражениями 512 
 П1.3.5. Операция @pre для указания предшествующих элементов 514 
 П1.4. Допустимые выражения в языке OCL 514 
 П1.5. Неопределенное выражение 515 
 П1.6. Коллекции значений в языке OCL 515 
 П1.7. Операции над коллекциями значений 516 
 П1.7.1. Операция выбора select 516 
 П1.7.2. Операция исключения reject 517 
 П1.7.3. Операция формирования коллекции collect 517 
 П1.7.4. Операция "для всех" forAll 518 
 П1.7.5. Операция "существует" exists 518 
 П1.7.6. Другие операции над коллекциями значений 519 
 П1.8. Некоторые операции с множествами, последовательностями и комплектами 520 
 П1.9. Операции преобразования типов 521 
 П1.10. Примеры записи выражений языка OCL 522 
 П1.10.1. Определение значения переменной 522 
 П1.10.2. Определение возраста сотрудника 522 
 П1.10.3. Определение кратности значений 522 
 П1.10.4. Определение коллекции инвариантов 522 
 Приложение 2. Глоссарий 524 
 Литература 547 
 Предметный указатель 551 
 XII Оглавление XI Оглавление