На этом шаге рассмотрим варианты контекста взаимодействия объектов в UML.
Взаимодействие имеет место всякий раз, когда объекты соединены друг с другом. Вы найдете взаимодействия в кооперациях объектов, существующих в контексте системы или подсистемы, а также в контексте операций и, наконец, классов.
Чаще всего взаимодействия встречаются в кооперациях объектов, представленных в контексте системы или подсистемы в целом. Например, в системе Web-коммерции вы обнаружите такие клиентские объекты, как экземпляры классов BookOrder (ЗаказКниги) и OrderForm (БланкЗаказа), которые взаимодействуют друг с другом. Там же присутствуют клиенты (экземпляры BookOrder), взаимодействующие с объектами на сервере, например экземплярами BookOrderManager (МенеджерЗаказов). Таким образом, взаимодействия не только включают локализованную кооперацию объектов (как, например, вокруг OrderForm), но и распространяются через многие концептуальные уровни системы (в частности, взаимодействия с BookOrderManager).
Помимо прочего, вы найдете взаимодействия между объектами в реализации операций. Параметры операций, их локальные переменные, глобальные по отношению к операции (но видимые в ней) объекты могут взаимодействовать друг с другом для обеспечения работы алгоритма, реализующего операцию. Например, операция moveToPosition(p : Position) (перейтиНаПозицию (p : Позиция), определенная в классе движущегося робота, включает взаимодействие с параметром p, глобальными по отношению к операции объектами, такими как CurrentPosition (ТекущаяПозиция), и, возможно, несколькими локальными объектами: локальными переменными, используемыми операцией для вычисления промежуточных точек на пути к новой позиции.
Взаимодействия в контексте класса можно применять для визуализации, специфицирования, конструирования и документирования его семантики. Чтобы понять смысл класса, можно описать взаимодействие, которое покажет, как его атрибуты кооперируются друг с другом (и с глобальными по отношению к экземплярам класса объектами, и с параметрами, определенными для его операций).
Взаимодействие можно обнаружить и в представлении компонента, узла или варианта использования, которые по своей сути являются разновидностями классификаторов UML. В контексте варианта использования взаимодействие описывает сценарий, представляющий, в свою очередь, отдельный поток варианта использования.
На следующем шаге рассмотрим объекты и роли во взаимодействии.