отображаются внутри эллипса сотрудничества. Пример структурной части системы составления расписания показан нарис. 10.6. Структурная часть сотрудничества представляет собой сочетание классов и интерфейсов, ко
Отображение параллельного поведения
При отражении поведенческой характеристики системы акцент ставится на ее динамических аспектах. С этой точки зрения нас интересует, как ведут себя элементы системы при взаимодействии с другими элементами той же системы. Именно во взаимодействии одних элементов с другими и проявляются особенности параллелизма. Диаграммы, используемые в этом разделе, позволяют смоделировать:
• поведение объекта в течение его периода существования;
• поведение объектов, которые совместно работают ради достижения конкретной цели;
• поток управления с акцентом на определенном действии или последовательности действий;
• синхронизацию действий элементов и взаимодействие между ними.
В этом разделе также описаны диаграммы, используемые для моделирования распределенных объектов.
Сотрудничество объектов
Сотрудничество объектов заключается в привлечении друг друга к работе с целью выполнения некоторой конкретной задачи. Они не вступают в постоянные отношения. Одни и те же объекты могут привлекаться разными объектами для выполнения различных задач. Сотрудничество объектов можно представить в виде диаграммы сотрудничества. Диаграммы сотрудничества имеют структурную и интерактивную части. Структурную часть мы рассмотрели выше. Интерактивнал часть отображается в виде графа, вершинами которого являются объекты — участники рассматриваемого сотрудничества. Связи между объектами представляются ребрами. Ребра могут сопровождаться сообщениями, передаваемыми между объектами, вызовами методов и индикаторами стереотипов, которые позволяют подробнее отобразить характер связи.
Связь между объектами имеет тип ассоциации. С двумя связанными объектами мотут выполняться действия. В результате действия может измениться состояние одного или двух объектов. Приведем примеры различных типов действий, связанных с объектами.
• create Объект может быть создан
• destroy Объект может быть разрушен
• call Операция, определенная в одном объекте, может быть вызвана другим объектом или им самим
• return Объекту возвращается значение
• send Объекту может быть послан сигнал
При вызове и выполнении любо
Эти действия могут иметь место, если принимающий объект видим для вызывающего. Для объяснения причины видимости объекта можно использовать следующие стереотипы.
• association Объект видим по причине существования ассоциации (самый общий случай)
• parameter Объект видим, поскольку он является параметром для вызывающего объекта
• local Объект видим, поскольку он имеет локальную область видимости для вызывающего объекта
• global Объект видим, поскольку он имеет глобальную область видимости для вызывающего объекта
• self Объект вызывает собственный метод
Помимо перечисленных, возможно применение и других стереотипов.
При вызове некоторого метода возможен вызов других методов иными объектами. Последовательность выполнения операций можно отобразить с помо
![]() |
Как показано на рис. 10.7, объект MainObject выполняет две операции в слелующей последовательности:
1: << create >>
2: Value := performAction(ObjectF)
При выполнении операции 1 объект MainObject создает объект Obj ectA. Объект ObjectA локален по отношению к объекту MainObject (поскольку имеет место включение объектов). Это инициирует первую последовательность операций во вложенном потоке управлени
Объект ObjectA вызывает собственный метод. Выполнение объектом собственно
1.1.1 : initializeB()
1.1.2: initializeC()
В этой последовательности два других объекта (которые локальны по отношению кобъекту ObjectA) инициализируются посредством вызова соответствую
является началом еще одной вложенной последовательности действий. Объекту ObjectA

