На этом шаге рассмотрим базовые понятия взаимодействия объектов в UML.
В грамотно выстроенной системе объекты не обособленны – они взаимодействуют друг с другом, передавая сообщения. Взаимодействие – это такое поведение, которое предполагает обмен сообщениями между множеством объектов в пределах определенного контекста и предназначено для достижения определенных целей.
Сообщение – это спецификация взаимодействия объектов, которая передает информацию и ожидает последующих действий.
Взаимодействия используются для того, чтобы моделировать динамические аспекты коопераций, которые представляют собой сообщества объектов, играющих специфические роли и работающих совместно для обеспечения поведения, большего чем поведение простой суммы элементов. Эти роли представляют прототипные экземпляры классов, интерфейсов, компонентов, узлов и вариантов использования. Их динамические аспекты визуализируются, специфицируются, конструируются и документируются в виде потоков управления. Эти потоки управления могут быть представлены в системе простыми последовательными потоками либо включать ветвление, циклы, рекурсии и параллелизм. Вы можете моделировать взаимодействие двумя способами: выделяя временную последовательность сообщений или же подчеркивая эту последовательность в контексте некоторой структурной организации объектов.
В UML статические аспекты системы моделируются такими элементами, как диаграммы классов и диаграммы объектов. Эти диаграммы позволяют визуализировать, специфицировать, конструировать и документировать сущности, которые составляют систему, – в частности классы, интерфейсы, компоненты, узлы, варианты использования и их экземпляры вместе со связями, существующими между ними.
Динамические аспекты системы в UML моделируются взаимодействиями. Как и диаграммы объектов, взаимодействия статически определяют фазы поведения, представляя все объекты, ведущие совместную работу для достижения определенной цели. Однако, в отличие от диаграмм объектов, взаимодействия также представляют сообщения, передаваемые от объекта к объекту. Чаще всего сообщения вызывают операции или передачу сигнала; кроме того, могут сопровождаться созданием и уничтожением других объектов.
Взаимодействия используются для моделирования потока управления в пределах операции, класса, компонента, варианта использования или системы в целом. С помощью диаграмм взаимодействия вы можете составить представление об этих потоках двумя способами. Во-первых, можно сосредоточиться на том, как сообщения передаются во времени, а во-вторых – на структурных связях между объектами во взаимодействии, и затем рассмотреть, как сообщения передаются в контексте структуры.
Графическое представление сообщений в UML проиллюстрировано на рис. 1.
Рис.1. Сообщения, ссылки и последовательность
Эта нотация позволяет отразить наиболее важные свойства сообщения: имя, параметры (если таковые есть) и последовательность. Графически сообщение изображается линией со стрелкой и почти всегда включает имя его операции.
На следующем шаге рассмотрим варианты контекста взаимодействия объектов в UML.