INOMARKALK ru
» » На диаграмме кооперации указывают

На диаграмме кооперации указывают

Рубрика : Семья



диаграмме кооперации указывают на


Бинарная связь на диаграмме кооперации изображается отрезком прямой линии, соединяющей два прямоугольника объектов см. На каждом из концов этой линии могут быть явно указаны имена ролей данной ассоциации.



указывают кооперации на диаграмме


Рядом с линией в ее средней части может записываться имя соответствующей ассоциации. Связи не имеют собственных имен, поскольку полностью идентичны как экземпляры ассоциации. Другими словами, все связи на диаграмме кооперации могут быть только анонимными и записываются без двоеточия перед-именем ассоциации. Для связей не указывается также и кратность.

Однако другие обозначения специальных случаев ассоциации агрегация, композиция могут присутствовать на отдельных концах связей. Связь может иметь некоторые стереотипы, которые записываются рядом с одним из ее концов и указывают на особенность реализации данной связи.


Диаграмма кооперации (сотрудничества) (collaboration diagram) - UML

В языке UML для этой цели могут использоваться следующие стереотипы: Соответствующий объект может бытьч только параметром некоторого метода. Ее область видимости ограничена только соседним объектом. Ее область видимости распространяется на всю диаграмму кооперации. На диаграмме кооперации рефлексивная связь изображается петлей в верхней части прямоугольника объекта.

Некоторые примеры связей с различными стереотипами изображены на рис. Рефлексивная связь указывает на тот факт, что менеджер отдела является в то же время и его сотрудником. Графическое изображение связей с различными стереотипами 9. Сообщения Сообщения, как элементы языка LJML, уже рассматривались ранее при изучении диаграммы последовательности см. При построении диаграммы кооперации они имеют некоторые дополнительные семантические особенности. Сообщение на диаграмме кооперации специфицирует коммуникацию между двумя объектами, один из которых передает другому некоторую информацию.

При этом первый объект ожидает, что после получения сообщения вторым объектом последует выполнение некоторого действия. Таким образом, именно сообщение является причиной или стимулом для начала выполнения операций, отправки сигналов, создания и уничтожения отдельных объектов.

Связь обеспечивает канал для направленной передачи сообщений между объектами от объекта-источника к объекту-получателю. Графическое изображение различных типов сообщений на диаграмме кооперации Сообщения в языке UML также специфицируют роли, которые играют объекты — отправитель и получатель сообщения.



кооперации указывают диаграмме на


Сообщения на диаграмме кооперации изображаются помеченными стрелками рядом выше или ниже с соответствующей связью или ролью ассоциации. Направление стрелки указывает на получателя сообщения.

Внешний вид стрелки сообщения имеет определенный смысл. На диаграммах кооперации может использоваться один из четырех типов стрелок для обозначения сообщений рис.

Может быть также использована совместно с параллельно активными объектами, когда один из них передает сигнал и ожидает, пока не закончится некоторая вложенная последовательность действий.

Обычно все такие сообщения являются синхронными, т. Каждая такая стрелка изображает один этап в последовательности потока управления. Обычно все такие сообщения являются асинхронными. Соответствующие сообщения формируются в произвольные, заранее не известные моменты времени, как правило, активными объектами.

Обычно сообщения этого типа являются начальными в последовательности потока управления и чаще всего инициируются актерами.



кооперации на указывают диаграмме


Стрелки этого типа зачастую отсутствуют на диаграммах кооперации, поскольку неявно предполагается их существование после окончания процесса активизации некоторой деятельности. Каждое сообщение может быть помечено строкой текста, которая имеет следующий формат: Каждый номер сообщения может быть выражением последовательности без рекурсивных символов.



указывают на диаграмме кооперации


Выражение должно определять номер другого сообщения в этой же последовательности. Смысл указания предшествующих сообщений заключается в том, что данное сообщение не может быть передано, пока не будут переданы своим адресатам все сообщения, номера которых записаны в данном списке. Пример записи предшествующих сообщений: Записывается в квадратных скобках и может быть опущено, если оно отсутствует у данного сообщения.

Пример записи сторожевых условий без номеров предшествующих сообщений: Наиболее верхний уровень соответствует самому левому терму последовательности. Если все потоки управления параллельные, то вложенность отсутствует. Каждый из термов последовательности имеет следующий синтаксис: Целое число указывает на порядковый номер сообщения в процедурной последовательности верхнего уровня.

Сообщения, номера которых отличаются на единицу, следуют подряд один за другим. Имя используется для спецификации параллельных нитей управления. Сообщения, которые отличаются только именем, являются параллельными на этом уровне вложенности.

На одном уровне вложенности все нити управления эквивалентны в смысле приоритета передачи сообщений. Символ рекуррентности используется для указания условного или итеративного выполнения.

Семантика рекуррентности представляет ноль или больше сообщений, которые должны быть выполнены в зависимости от записанного условия. Возможны два случая записи рекуррентности: Итерация представляет последовательность сообщений одного уровня вложенности. Предложение-итерация может быть опущено, если условия итерации никак не специфицируются. Наиболее часто предложение-итерация записывается на некотором псевдокоде или языке программирования. В языке UML формат записи этого предложения не определен.

Это условие представляет такое сообщение, передача которого по данной ветви возможна только при истинности этого условия. Чаще всего предложение-условие записывают на некотором псевдокоде или языке программирования, поскольку в языке UML формат записи этого предложения не определен. Эти идентификаторы могут выступать в качестве аргументов в последующих сообщениях.

Если сообщение не возвращает никакого значения, то ни значение, ни оператор присваивания на диаграмме кооперации не указываются. Наиболее часто таким событием является вызов операции объекта. Это может быть реализовано различными способами, один из которых — вызов операции.

Тогда соответствующая операция должна быть определена в том классе, которому принадлежит объект-получатель. Список аргументов может быть пустым, однако скобки все равно записываются. Для записи аргументов также может быть использован некоторый псевдокод или язык программирования. Так, в приведенном выше примере сообщения 1.

Пример построения диаграммы кооперации В качестве примера рассмотрим построение диаграммы кооперации для моделирования процесса телефонного разговора с использованием обычной телефонной сети см. При этом как коммутатор, так и разговор являются анонимными объектами. На начальном этапе изобразим все объекты и связи между ними на диаграмме кооперации при помощи соответствующих обозначений рис. Заметим, что первый телефонный аппарат изображен как активный объект, а второй — как пассивный.

Начальный фрагмент диаграммы кооперации для примера моделирования обычного телефонного разговора В последующем необходимо специфицировать все связи на этой диаграмме, указав на их концах необходимую информацию в форме ролей связей.

Дополненный таким образом вариант диаграммы кооперации изображен ниже рис.


Dev & Type: Сообщения и их графическое изображение на диаграмме кооперации

Напомним, что помеченные значения tagged values являются стандартными элементами языка UML. Окончательный вариант диаграммы кооперации для моделирования телефонного разговора Наконец, на диаграмму кооперации необходимо нанести все сообщения, указав их порядок и семантические особенности.

Окончательный фрагмент диаграммы кооперации изображен на рис. Эта диаграмма может быть дополнена сообщениями, необходимыми для окончания разговора, что читателям предлагается выполнить самостоятельно в качестве упражнения. Как нетрудно заметить, диаграмма кооперации для примера с телефонным разговором не содержит ни временных особенностей передачи сообщений, ни особенностей жизненного цикла участвующих в данной кооперации объектов.

Поэтому может быть принято решение о том, что она является избыточной при наличии построенной диаграммы последовательности. Этот факт не вызывает сомнений в тех случаях, когда структура взаимодействующих объектов является достаточно тривиальной.

Если же взаимодействующие объекты образуют между собой различные типы отношений-ассоциаций композиция, агрегация , то диаграмма кооперации оказывается необходимым представлением модели на всех ее уровнях. Заключительные рекомендации по построению диаграмм кооперации Построение диаграммы кооперации можно начинать сразу после построения диаграммы вариантов использования.

В этом случае каждый из вариантов использования может быть специфицирован в виде отдельной диаграммы кооперации уровня спецификации. Эта диаграмма способствует более. В дальнейшем, после построения диаграммы классов, каждая из диаграмм кооперации может уточняться в виде соответствующей диаграммы уровня примеров. Важно понимать, что диаграмма кооперации этого уровня может содержать те и только те объекты и связи, которые уже определены на построенной ранее диаграмме классов.

В противном случае, если возникает необходимость включения в диаграмму кооперации объектов, которые создаются на основе отсутствующих классов, соответствующие диаграммы классов должны быть модифицированы явным описанием этих классов. Следует помнить, что на диаграмме кооперации изображаются только те объекты, которые непосредственно в ней участвуют. При этом объекты могут выступать в различных ролях, которые должны быть явно указаны на соответствующих концах связей диаграммы.

Применение стереотипов унифицирует кооперацию, обеспечивая ее адекватную интерпретацию как со стороны заказчиков, так и со стороны разработчиков. Тем не менее, целесообразно различать терминологию, используемую на диаграммах кооперации уровня спецификации и уровня примеров. Так, при построении диаграмм кооперации уровня спецификации желательно применять наиболее понятную заказчику терминологию, избегая технических фраз и словосочетаний.

На уровне спецификации нужно стремиться достичь по возможности полного взаимопонимания между заказчиком и командой разработчиков всех вариантов использования проектируемой системы в контексте их кооперации.

При построении диаграмм кооперации уровня примеров терминология должна наиболее точно отражать все аспекты реализации соответствующих объектов и связей. Поскольку диаграмма этого уровня является документацией для разработчиков системы, здесь допустимо использовать весь арсенал стереотипов, ограничений и помеченных значений, который имеется в языке UML.

Если типовых обозначений недостаточно, разработчики могут дополнить диаграмму собственными элементами, используя механизм расширений языка UML. Процесс построения диаграммы кооперации уровня примеров должен быть согласован с процессами построения диаграммы классов и диаграммы последовательности.

В первом случае, как уже отмечалось, необходимо следить за использованием только тех объектов, для которых определены порождающие их классы. Во втором случае нужно согласовывать последовательности передаваемых сообщений. Речь идет о том, что не допускается различный порядок следования сообщений для моделирования одного и того же взаимодействия на диаграмме кооперации и диаграмме последовательности.

Таким образом, диаграмма кооперации, с одной стороны, обеспечивает концептуально согласованный переход от статической модели диаграммы классов к динамическим моделям поведения, представляемым диаграммами последовательности, состояний и деятельности. С другой стороны, диаграмма этого типа предопределяет особенности реализации модели на диаграммах компонентов и развертывания, которые являются предметом рассмотрения в двух последующих главах книги. Примечание 6 Степень затемнения фона на приведенном выше рисунке имеет более глубокий смысл, чем может показаться на первый взгляд.

Если ассоциировать реализацию программного модуля с. В ООП существуют различные варианты доступа к свойствам и методам классов, которые получили название видимости свойств и методов.



На диаграмме кооперации указывают видеоматериалы




В этом случае использование различных форм видимости для компонентов классов удобно ассоциировать с прозрачностью фона рисунка или видимостью в воде аквариума. Более детальное рассмотрение различных форм видимости приводится в части II книги. Примечание 7 В рассмотренном выше примере использовалась одна из принятых нотаций в некоторых языках программирования например, в Object Pascal для обозначения принадлежности метода тому или иному классу.

В соответствии с этой нотацией, вначале указывается имя класса, в котором определен метод, а затем через точку имя самого метода. Если метод определен в некотором подклассе, то должна быть указана вся цепочка классов, начиная с наиболее общего из них. При этом характерным признаком метода является пара скобок, которые используются для указания списка аргументов или формальных параметров данного метода.

Примечание 66 В прямоугольнике объекта имя объекта, имя роли с символом Т или имя класса могут отсутствовать. Однако двоеточие всегда должно стоять перед именем класса, а косая черточка — перед именем роли. Следует еще раз акцентировать внимание на том обстоятельстве, что применительно к объектам вся запись должна быть подчеркнута, а имя объекта должно быть записано со строчной буквы.

Примечание 67 Отличие между процессом и нитью заключается в степени использования ресурсов. Говоря о процессе, имеют в виду ресурсоемкий поток управления, т.

Нить может использовать лишь небольшую часть ресурсов системы. Примером может служить выполнение некоторой программы в своем адресном пространстве или в фоновом режиме. Сообщения могут инициировать выполнение операций объектом соответствующего класса, а параметры этих операций передаются вместе с сообщением.

В таком контексте каждое сообщение имеет направление от объекта, который инициирует и отправляет сообщение, к объекту, который его получает.


9.5. Пример построения диаграммы кооперации

Иногда отправителя сообщения называют клиентом, а получателя — сервером. При этом сообщение от клиента имеет форму запроса некоторого сервиса, а реакция сервера на запрос после получения сообщения может быть связана с выполнением определенных действий или передачи клиенту необходимой информации тоже в форме сообщения. Сообщения в языке UML также специфицируют роли, которые играют объекты — отправитель и получатель сообщения. Сообщения на диаграмме кооперации изображаются дополнительными стрелками рядом с соответствующей связью или ролью ассоциации.

Направление стрелки указывает на получателя сообщения. Внешний вид стрелки сообщения имеет определенный смысл. На диаграммах кооперации может использоваться один из трех типов стрелок для обозначения сообщений. Графическое изображение различных типов сообщений на диаграмме кооперации Сплошная линия с треугольной стрелкой а обозначает вызов процедуры операции или передачу потока управления.

Сообщения этого типа могут быть использованы параллельно активными объектами, когда один из них передает сообщение этого типа и ожидает, пока не закончится некоторая последовательность действий, выполняемая вторым объектом.

Обычно все такие сообщения синхронны, то есть инициируются по завершении деятельности или при выполнении определенного условия. Сплошная линия с V-образной стрелкой б обозначает асинхронное сообщение в простом потоке управления. В этом случае клиент передает асинхронное сообщение и продолжает выполнять свою деятельность, не ожидая ответа от сервера. Пунктирная линия с V-образной стрелкой в обозначает возврат из вызова процедуры.

Стрелки этого типа зачастую отсутствуют на диаграммах кооперации, поскольку неявно предполагается их существование после окончания процесса выполнения операции или деятельности. Каждое сообщение может быть помечено строкой текста, которая имеет следующий формат: Если список номеров сообщений пуст, то вся запись, включая наклонную черту, опускается. Если номера сообщений указываются, то они должны соответствовать номерам других сообщений на этой же диаграмме кооперации.

Смысл указания предшествующих сообщений заключается в том, что данное сообщение не может быть передано, пока не будут переданы своим адресатам все сообщения, номера которых записаны в данном списке. Выражение последовательности — это разделенный точками список отдельных термов последовательностей, после которого записывается двоеточие: Наиболее верхний уровень соответствует самому левому терму последовательности. Если все потоки управления параллельные, то вложенность отсутствует.

Каждый терм последовательности имеет следующий синтаксис: Целое число указывает на порядковый номер сообщения в процедурной последовательности верхнего уровня. Сообщения, номера которых отличаются на единицу, следуют подряд один за другим. Имя в форме буквы алфавита используется для спецификации параллельных потоков нитей управления. Сообщения, которые отличаются только именем, являются параллельными на этом уровне вложенности.

На одном уровне вложенности все нити управления эквивалентны в смысле приоритета передачи сообщений. Рекуррентность используется для указания итеративного или условного характера выполнения передачи сообщений. Семантика рекуррентности представляет ноль или больше сообщений, которые должны быть выполнены в зависимости от записанного условия.


Год выпуска: 2002
Поддерживаемые ОС: Win XP, 8, 8.1,10,
Локализация: RU
Вес : 4.76 Мегабайт




Блок комментариев

Ваше имя:


Электронная почта:




  • © 2010-2017
    inomarkalk.ru
    Напишите нам | RSS фид | Карта сайта