В чем разница между диаграммой последовательности и диаграммой связи?
Может ли кто-нибудь объяснить мне, в чем разница между диаграммой последовательности и диаграммой связи?
5 ответов
Обе диаграммы дают одинаковую информацию, но диаграмма последовательности выделяет время в своей компоновке, а диаграмма связи выделяет объекты, которые взаимодействуют в своей компоновке.
Время неявно присутствует в диаграммах последовательности (оно определяется вертикальным положением), тогда как оно дается явно в диаграммах связи (через числа).
Цитировать Скотта Эмблера
Основное различие между коммуникационными диаграммами и диаграммами последовательности состоит в том, что диаграммы последовательности хороши для отображения последовательной логики, но не так хороши, чтобы дать вам "общий вид изображения", тогда как диаграммы связи - полная противоположность.
Подчеркивая временную последовательность сообщений (используя диаграммы последовательности)
подчеркивая структурные отношения между объектами, которые взаимодействуют (используя диаграммы связи).
ссылка: руководство пользователя UML
Диаграммы последовательности иллюстрируют взаимодействия в некотором формате ограждения, в котором каждый новый объект добавляется справа.
Что это может представлять в коде? Вероятно, у этого класса A есть метод с именем doOne и атрибут типа B. Кроме того, у этого класса B есть методы с именами doTwo и doThree. Возможно частичное определение класса А:
public class A
{
private B myB = new B();
public void doOne()
{
myB.doTwo();
myB.doThree();
}
// . .
}
Диаграммы связи иллюстрируют взаимодействия объектов в графическом или сетевом формате, в котором объекты могут быть размещены в любом месте на диаграмме (суть их преимущества в зарисовке стен).
Каковы сильные и слабые стороны последовательности и диаграммы связи?
У каждого типа диаграмм есть свои преимущества, а у разработчиков моделей есть своеобразное предпочтение - не существует абсолютно "правильного" выбора. Однако инструменты UML обычно подчеркивают диаграммы последовательности из-за их большей нотационной мощности.
Диаграммы последовательности имеют некоторые преимущества перед диаграммами связи. Возможно, прежде всего, спецификация UML больше ориентирована на диаграмму последовательности - больше внимания и усилий было уделено нотации и семантике. Таким образом, поддержка инструментов стала лучше и доступно больше вариантов обозначений. Кроме того, проще увидеть последовательность потока вызовов с помощью диаграмм последовательности - просто прочитайте сверху вниз. С диаграммами связи мы должны прочитать порядковые номера, такие как "1:" и "2:". Следовательно, диаграммы последовательности отлично подходят для документирования или для простого чтения обратной последовательности вызовов, сгенерированной из исходного кода с помощью инструмента UML.
Но с другой стороны, коммуникационные диаграммы имеют преимущества при применении "UML как эскиз" для рисования на стенах (практика Agile Modeling), потому что они намного более экономичны. Это потому, что ящики можно легко разместить или стереть в любом месте - горизонтальном или вертикальном. Следовательно, модифицировать эскизы стен проще с помощью диаграмм связи - просто (во время творческой работы по проектированию ОО с большими изменениями) стереть прямоугольник в одном месте, нарисовать новый в другом месте и нарисовать линию к нему. Напротив, новые объекты в диаграммах последовательности должны всегда добавляться к правому краю, что ограничивает, поскольку оно быстро потребляет и исчерпывает пространство правого края на странице (или стене); свободное пространство в вертикальном измерении используется неэффективно. Разработчики, делающие диаграммы последовательности на стенах, быстро чувствуют боль при рисовании по сравнению с коммуникационными диаграммами.
Основное правило в объектно-ориентированном проектировании заключается в использовании различных диаграмм, основанных на различных целях. В связи с этим диаграммы последовательности используются для моделирования последовательной логики, в то время как для демонстрации поведения нескольких объектов, взаимодействующих вместе для достижения общей цели, могут использоваться диаграммы связи, ранее известные как диаграммы сотрудничества в UML 1.x. - Подробнее >> здесь <<;; и >> здесь <<;;
Приведенная ниже ссылка является кратким ответом на различие между диаграммой последовательности и связью. Пожалуйста, отошлите это.