- •Часть 1. Введение в процесс моделирования 13
 - •Глава 1. Зачем мы моделируем 13
 - •Глава 2. Введение в язык uml 21
 - •Часть 1. Введение в процесс моделирования Глава 1. Зачем мы моделируем
 - •Значение моделирования
 - •Принципы моделирования
 - •Объектное моделирование
 - •Глава 2. Введение в язык uml
 - •Обзор uml
 - •Где используется uml
 - •Концептуальная модель uml
 - •Строительные блоки uml
 - •Правила языка uml
 - •Общие механизмы языка uml
 - •Архитектура
 - •Жизненный цикл разработки по
 - •Глава 3. Здравствуй, мир !
 - •Ключевые абстракции
 - •Механизмы
 - •Компоненты
 - •Часть II. Основы структурного моделирования Глава 4. Классы
 - •Введение
 - •Термины и понятия
 - •Атрибуты
 - •Операции
 - •Организация атрибутов и операций
 - •Обязанности
 - •Другие свойства
 - •Типичные приемы моделирования Словарь системы
 - •Распределение обязанностей в системе
 - •Непрограммные сущности
 - •Примитивные типы
 - •Глава 5. Отношения
 - •Введение
 - •Термины и понятия
 - •Зависимости
 - •Обобщения
 - •Ассоциации
 - •Другие свойства
 - •Типичные приемы моделирования Простые зависимости
 - •Одиночное наследование
 - •Структурные отношения
 - •Глава 6. Общие механизмы
 - •Введение
 - •Термины и понятия
 - •Примечания
 - •Другие дополнения
 - •Стереотипы
 - •Помеченные значения
 - •Ограничения
 - •Стандартные элементы
 - •Типичные приемы моделирования Комментарии
 - •Новые строительные блоки
 - •Новые свойства
 - •Новая семантика
 - •Глава 7. Диаграммы
 - •Введение
 - •Термины и понятия
 - •Структурные диаграммы
 - •Диаграммы поведения
 - •Типичные приемы моделирования
 - •Различные уровни абстракции
 - •Сложные представления
 - •Глава 8. Диаграммы классов
 - •Введение
 - •Термины и понятия
 - •Общие свойства
 - •Содержание
 - •Типичные примеры применения
 - •Типичные приемы моделирования Простые кооперации
 - •Логическая схема базы данных
 - •Прямое и обратное проектирование
 - •Часть III. Изучение структурного моделирования Глава 9. Углубленное изучение классов
 - •Введение
 - •Термины и понятия
 - •Классификаторы
 - •Видимость
 - •Область действия
 - •Абстрактные, корневые, листовые и полиморфные элементы
 - •Кратность
 - •Атрибуты
 - •Операции
 - •Шаблоны классов
 - •Стандартные элементы
 - •Типичные приемы моделирования Семантика класса
 - •Глава 10. Углубленное изучение отношений
 - •Введение
 - •Термины и понятия
 - •Зависимости
 - •Обобщения
 - •Ассоциации
 - •Реализация
 - •Типичные приемы моделирования Сети отношений
 - •Глава 11. Интерфейсы, типы и роли
 - •Введение
 - •Термины и понятия
 - •Операции
 - •Отношения
 - •Как разобраться в интерфейсе
 - •Типы и роли
 - •Типичные приемы моделирования Стыковочные узлы системы
 - •Статические и динамические типы
 - •Глава 12. Пакеты
 - •Введение
 - •Термины и понятия
 - •Элементы, принадлежащие пакету
 - •Видимость
 - •Импорт и экспорт
 - •Обобщения
 - •Стандартные элементы
 - •Типичные приемы моделирования Группы элементов
 - •Архитектурные виды
 - •Глава 13. Экземпляры
 - •Введение
 - •Термины и понятия
 - •Абстракции и экземпляры
 - •Операции
 - •Состояние
 - •Другие особенности
 - •Стандартные элементы
 - •Типичные приемы моделирования Конкретные экземпляры
 - •Экземпляры-прототипы
 - •Глава 14. Диаграммы объектов
 - •Введение
 - •Термины и понятия
 - •Общие свойства
 - •Содержание
 - •Типичные примеры применения
 - •Типичные приемы моделирования Объектные структуры
 - •Прямое и обратное проектирование
 - •Часть IV. Основы моделирования поведения Глава 15. Взаимодействия
 - •Введение
 - •Термины и понятия
 - •Контекст
 - •Объекты и роли
 - •Сообщения
 - •Последовательности
 - •Представление
 - •Типичные приемы моделирования Поток управления
 - •Глава 16. Прецеденты
 - •Введение
 - •Термины и понятия
 - •Прецеденты и актеры
 - •Прецеденты и поток событий
 - •Прецеденты и сценарии
 - •Прецеденты и кооперации
 - •Организация прецедентов
 - •Другие возможности
 - •Типичные приемы моделирования Поведение элемента
 - •Глава 17. Диаграммы прецедентов
 - •Введение
 - •Термины и понятия
 - •Общие свойства
 - •Содержание
 - •Типичные примеры применения
 - •Типичные приемы моделирования Контекст системы
 - •Требования к системе
 - •Прямое и обратное проектирование
 - •Глава 18. Диаграммы взаимодействий
 - •Введение
 - •Термины и понятия
 - •Общие свойства
 - •Содержание
 - •Диаграммы последовательностей
 - •Диаграммы кооперации
 - •Семантическая эквивалентность
 - •Типичные примеры применения
 - •Типичные приемы моделирования Потоки управления во времени
 - •Структура потоков управления
 - •Прямое и обратное проектирование
 - •Глава 19. Диаграммы деятельности
 - •Введение
 - •Термины и понятия
 - •Общие свойства
 - •Наполнение
 - •Состояния действия и состояния деятельности
 - •Переходы
 - •Ветвление
 - •Разделение и слияние
 - •Дорожки
 - •Траектория объекта
 - •Типичные примеры применения
 - •Типичные приемы моделирования Рабочий процесс
 - •Операция
 - •Прямое и обратное проектирование
 - •Часть V. Более сложные аспекты поведения Глава 20. События и сигналы
 - •Введение
 - •Термины и понятия
 - •Виды событий
 - •Сигналы
 - •События вызова
 - •События времени и изменения
 - •Посылка и получение событий
 - •Типичные приемы моделирования Семейства сигналов
 - •Исключения
 - •Глава 21. Автоматы
 - •Введение
 - •Термины и понятия
 - •Контекст
 - •Состояния
 - •Переходы
 - •Более сложные аспекты состояний и переходов
 - •Подсостояния
 - •Типичные приемы моделирования Жизненный цикл объекта
 - •Глава 22. Процессы и нити
 - •Введение
 - •Термины и понятия
 - •Поток управления
 - •Классы и события
 - •Стандартные элементы
 - •Коммуникация
 - •Синхронизация
 - •Представления с точки зрения процессов
 - •Типичные приемы моделирования Несколько потоков управления
 - •Межпроцессная коммуникация
 - •Глава 23. Время и пространство
 - •Введение
 - •Термины и понятия
 - •Местоположение
 - •Типичные приемы моделирования Временные ограничения
 - •Распределение объектов
 - •Мигрирующие объекты
 - •Глава 24. Диаграммы состояний
 - •Введение
 - •Термины и понятия
 - •Общие свойства
 - •Содержание
 - •Типичные примеры использования
 - •Типичные приемы моделирования Реактивные объекты
 - •Прямое и обратное проектирование
 - •Часть VI. Архитектурное моделирование Глава 25. Компоненты
 - •Введение
 - •Термины и понятия
 - •Компоненты и классы
 - •Компоненты и интерфейсы
 - •Заменяемость двоичного кода
 - •Виды компонентов
 - •Организация компонентов
 - •Стандартные элементы
 - •Типичные приемы моделирования Исполняемые программы и библиотеки
 - •Интерфейс прикладного программирования
 - •Исходный код
 - •Глава 26. Развертывание
 - •Введение
 - •Термины и понятия
 - •Узлы и компоненты
 - •Организация узлов
 - •Соединения
 - •Типичные приемы моделирования Процессоры и устройства
 - •Распределение компонентов
 - •Глава 27. Кооперации
 - •Введение
 - •Термины и понятия
 - •Структуры
 - •Поведение
 - •Организация коопераций
 - •Типичные приемы моделирования Реализация прецедента
 - •Реализация операции
 - •Механизм
 - •Глава 28. Образцы и каркасы
 - •Введение
 - •Термины и понятия
 - •Образцы и архитектура
 - •Механизмы
 - •Каркасы
 - •Типичные приемы моделирования Образцы проектирования
 - •Архитектурные образцы
 - •Глава 29. Диаграммы компонентов
 - •Введение
 - •Термины и понятия
 - •Общие свойства
 - •Содержание
 - •Типичные примеры применения
 - •Типичные приемы моделирования Исходный код
 - •Исполняемая версия
 - •Физическая база данных
 - •Адаптивные системы
 - •Прямое и обратное проектирование
 - •Глава 30. Диаграммы развертывания
 - •Введение
 - •Термины и понятия
 - •Общие свойства
 - •Содержание
 - •Типичное применение
 - •Типичные приемы моделирования Встроенная система
 - •Клиент-серверная система
 - •Полностью распределенная система
 - •Прямое и обратное проектирование
 - •Глава 31. Системы и модели
 - •Введение
 - •Термины и понятия
 - •Системы и подсистемы
 - •Модели и представления
 - •Трассировка
 - •Типичные приемы моделирования Архитектура системы
 - •Системы систем
 - •Часть VII. Подведем итоги Глава 32. Применение uml
 - •Переход к uml
 - •Рекомендуемая литература
 - •Диаграммы
 - •Приложение в Стандартные элементы uivil
 - •Стереотипы
 - •Помеченные значения
 - •Ограничения
 - •Приложение с. Рациональный Унифицированный Процесс
 - •Характеристики процесса
 - •Фазы и итерации
 - •Итерации
 - •Циклы разработки
 - •Рабочие процессы
 - •Артефакты
 - •Другие артефакты
 - •Глоссарий
 
Термины и понятия
Диаграммой объектов (Object diagram) называется диаграмма, на которой показаны объекты и их отношения в некоторый момент времени. Графически диаграмму объектов представляют в виде графа, состоящего из вершин и ребер.
Общие свойства
Диаграмма объектов - это частный случай диаграммы, она имеет те же общие свойства, что и прочие диаграммы (см. главу 7), а именно название и графическое Удержание, являющееся проекцией модели. От остальных диаграмму объектов отличает ее конкретное содержание.
Содержание
Диаграммы объектов, как правило, содержат:
объекты (см. главу 13);
связи (см. главу 15).
Диаграммы объектов, как и все прочие диаграммы, могут включать в себя примечания и ограничения,
Они могут содержать также пакеты (см. главу 12) и подсистемы (см. главу 31), используемые для группирования элементов модели в более крупные блоки. Иногда в них помещают и классы, особенно если надо визуализировать классы, стоящие за каждым экземпляром.
Примечание Диаграмма объектов - это, по существу, экземпляр диаграммы классов (см. главу 8) или статическая часть диаграммы взаимодействия (см. главу 18). В любом случае она содержит прежде всего объекты и связи и акцентирует внимание на конкретных экземплярах или экземплярах-прототипах. Диаграммы компонентов и развертывания также могут содержать экземпляры, причем если они не содержат ничего другого (в частности, сообщений), то могут рассматриваться как частные случаи диаграммы объектов.
Типичные примеры применения
С помощью диаграмм объектов, как и с помощью диаграмм классов, моделируют статический вид системы с точки зрения проектирования (см. главу 2) или процессов, но принимая во внимание реальные экземпляры или прототипы. Этот вид описывает главным образом функциональные требования к системе, то есть услуги, которые она должна предоставлять конечным пользователям. Диаграммы объектов позволяют моделировать статические структуры данных.
При моделировании статического вида системы с точки зрения проектирования или процессов объектные диаграммы применяют для того, чтобы моделировать структуру объектов.
Моделирование структуры объектов предполагает получение «снимка» объектов системы в некоторый момент времени. Диаграммы объектов предоставляют статическую основу динамического сценария, описываемого диаграммой взаимодействия (см. главу 18). Они применяются для визуализации, специфицирования, конструирования и документирования определенных экземпляров в системе, а также отношений между этими экземплярами.
Типичные приемы моделирования Объектные структуры
Конструируя диаграмму классов, компонентов или развертывания, вы описываете группу интересующих вас абстракций и раскрываете в данном контексте их семантику и отношения с другими абстракциями в группе. Эти диаграммы отражают
только потенциальные возможности. Например, если класс А связан с классом В ассоциацией типа «один-ко-многим», то с одним экземпляром класса А может быть связано пять экземпляров класса В, а с другим - только один. Кроме того, в любой конкретный момент времени экземпляр класса А и связанные с ним экземпляры класса В будут иметь вполне определенные значения своих атрибутов и состояния автоматов.
Заморозив работающую систему или просто представив себе некий миг в жизни моделируемой системы, вы обнаружите совокупность объектов, каждый из которых находится в определенном состоянии и связан конкретными отношениями с другими объектами. Диаграммы объектов позволяют визуализировать, специфицировать, конструировать и документировать структуру, образуемую этими объектами. Особенно полезны они бывают при моделировании сложных структур данных.
При моделировании вида системы с точки зрения проектирования с помощью набора диаграмм классов можно полностью определить семантику абстракций и их отношений. Однако диаграммы объектов не позволяют полностью описать объектную структуру системы. У класса может быть большое количество различных экземпляров, а при наличии нескольких классов, связанных друг с другом отношениями, число возможных конфигураций объектов многократно возрастает. Поэтому при использовании диаграмм объектов нужно сосредоточиться только на изображении интересующих вас наборов конкретных объектов или объектов-прототипов. Именно это и понимается под моделированием объектной структуры - отображение на диаграмме объектов множества объектов и отношений между ними в некоторый момент времени.
Моделирование объектной структуры осуществляется так:
Идентифицируйте механизм, который собираетесь моделировать. Механизм представляет собой некоторую функцию или поведение части моделируемой системы, являющееся результатом взаимодействия сообщества классов, интерфейсов и других сущностей (о том, как механизмы связаны с прецедентами, см. главы 26 и 28).
Для каждого обнаруженного механизма идентифицируйте классы, интерфейсы и другие элементы, участвующие в кооперации, а также отношения между ними.
3. Рассмотрите один из сценариев использования работы механизма. Заморозьте этот сценарий в некоторый момент времени и изобразите все объекты, участвующие в механизме.
4. Покажите состояние и значения атрибутов каждого такого объекта, если это необходимо для понимания сценария.
5. Покажите также связи между этими объектами, которые представляют экземпляры существующих ассоциаций.
В качестве примера на рис. 14.2 показана совокупность объектов, взятая из реализации автономного робота. Внимание здесь акцентировано на нескольких объектах, составляющих часть механизма робота, предназначенного для расчета модели мира, в котором тот перемещается. Разумеется, в работе системы принимает участие гораздо больше объектов, но в этой диаграмме рассматриваются только абстракции, непосредственно вовлеченные в процесс формирования взгляда на мир.
Как видно из рисунка, один из объектов соответствует самому роботу (г, экземпляр класса Robot); в настоящий момент он находится в состоянии moving (движется). Этот объект связан с экземпляром w класса World (Мир), являющегося абстракцией модели мира робота. В свою очередь объект w связан с мультиобъектом который состоит из экземпляров класса Element, описывающего сущности, опознанные роботом, но еще не включенные в его модель мира. Эти элементы помечены как части глобального состояния робота.
В текущий момент времени экземпляр w связан с двумя экземплярами класса Area. У одного из них (а2) показаны его собственные связи с тремя объектами класса Wall (Стена) и одним - класса Door (Дверь). Указана ширина каждой из трех стен и обозначено, что каждая связана с соседними. Как видно из диаграммы, робот распознал, что замкнутое помещение, в котором он находится, имеет с трех сторон стены, а с четвертой – дверь.
