Автор:Давиденко Сергей

Диаграмма коммуникаций UML

Для чего используется техника креативности

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

План действий

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

После ознакомления с другими разделами («Пример», «Применение») вы можете попробовать свои силы в самостоятельном составлении диаграмм коммуникаций.

Как применять технику креативности

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

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

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

Пример использования

Диаграмма коммуникаций (communication diagrams) – это особый вид диаграмм взаимодействия, акцентированных на обмене данными между различными участниками взаимодействия. Вместо того чтобы рисовать каждого участника в виде линии жизни и показывать последовательность сообщений, располагая их по вертикали, как это делается в диаграммах последовательности, коммуникационные диаграммы допускают произвольное размещение участников, позволяя рисовать связи, показывающие отношения участников, и использовать нумерацию для представления последовательности сообщений.

В UML 1.x эти диаграммы назывались диаграммами кооперации (collaboration diagrams). Между этим понятием и кооперацией есть различие; отсюда изменение названия.

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

Кроме отображения связей, которые представляют собой экземпляры ассоциаций, можно также показать временные связи, возникающие только в контексте взаимодействия. В данном случае связь «local» (локальная) от объекта Order (Заказ) к объекту Product (Продукт) – это локальная переменная, а другими временными связями являются «para meter» (параметр) и «global» (глобальная). Эти ключевые слова употреблялись в UML 1, но пропали из UML 2. Они полезны, поэтому я надеюсь, что разработчики от них не откажутся.

Стиль нумерации на рис. 12.1 простой и общеупотребительный, но в языке UML он не разрешен. В соответствии с правилами UML необходимо придерживаться вложенной десятичной нумерации, как показано на рис. 12.2.

Диаграммы коммуникации UML 2
Диаграммы коммуникации UML 2

Вложенная десятичная нумерация нужна, потому что требуется исключить неопределенность при самовызовах. На рис. 4.2 четко показано, что метод getDiscountInfo вызывается из метода calculateDiscount.

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

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

Кроме чисел в сообщениях можно увидеть и буквы. Эти символы обозначают различные потоки управления. Так, A5 и B2 могут быть различными потоками; сообщения 1a1 и 1b1 могут быть различными потоками, параллельно вложенными в сообщение 1. Буквы, обозначающие потоки, можно увидеть также и на диаграммах последовательности, хотя это и не дает визуального представления о параллельности.

Диаграмма коммуникаций не имеет точно определенных нотаций для управляющей логики. Она допускает применение маркеров итерации и защиты, но не позволяет полностью определить алгоритм управления. Не существует также специальных обозначений для создания и удаления объектов, но ключевые слова «create» и «delete» соответствуют общепринятым соглашениям.

 

Подписывайтесь на новости сайта, форму подписки вы можете найти в правой колонке сайта.

Если вы хотите научиться работать на фрилансе профессионально, приглашаем на курс «Как зарабатывать на фрилансе».


Перейти на страницу курса

Если вам понравилась статья - поделитесь ссылкой с друзьями!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Об авторе

Давиденко Сергей administrator

Оставить ответ