Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Сравнение диаграммы последовательности и диаграммы кооперации



Диаграммы последовательностей и кооперативные диаграммы (и те, и другие называются диаграммами взаимодействий) относятся к числу пяти видов диаграмм, применяемых в UML для моделирования динамических аспектов системы.

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

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

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

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

У кооперативной диаграммы есть два свойства, которые отличают их от диаграмм последовательностей.

Первое – это путь. Для описания связи одного объекта с другим к дальней концевой точке этой связи можно присоединить стереотип пути (например, local, показывающий, что помеченный объект является локальным по отношению к отправителю сообщения). Имеет смысл явным образом изображать путь связи только в отношении путей типа local, parameter, global и self (но не associations).

Второе свойство – это порядковый номер сообщения. Для обозначения временной последовательности перед сообщением можно поставить номер (нумерация начинается с единицы), который должен постепенно возрастать для каждого нового сообщения (2, 3 и. т.д.). Для обозначения вложенности используется десятичная нотация Дьюи (1 – первое сообщение; 1.1– первое сообщение, вложенное в сообщение 1; 1.2 – второе сообщение, вложенное в сообщение 1 и т.д.). Уровень вложенности не ограничен. Для каждой связи можно показать несколько сообщений (вероятно, посылаемых разными отправителями), и каждое из них должно иметь уникальный порядковый номер.

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

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

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

При моделировании динамических аспектов системы диаграммы взаимодействий обычно используются двояко:

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

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

Моделирование временной упорядоченности потока управления осуществляется следующим образом:

– установите контекст взаимодействия, будь то система, подсистема, операция, класс или один из сценариев варианта использования либо кооперативные диаграммы.

– определите сцену для взаимодействия, выяснив, какие объекты принимают в нем участие.

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

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

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

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

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

– для более строгого и формального описания потока управления присоедините к каждому сообщению пред– и постусловия.

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

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

Моделирование структурной организации потоков управления состоит из следующих шагов:

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

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

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

– детально опишите связи между объектами, вдоль которых передаются сообщения. Для этого:

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

– после этого нарисуйте остальные связи, дополнив их соответствующими стереотипами пути (такими, как global или local), чтобы явным образом показать, как объекты связаны друг с другом.

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

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

– если требуется описать поток управления более формально, присоедините к каждому сообщению пред– и постусловия.

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

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

Хорошо структурированная диаграмма взаимодействий обладает следующими свойствами:

акцентирует внимание только на одном аспекте динамики системы;

содержит только такие варианты использования и актеры, которые важны для понимания этого аспекта;

содержит только такие детали, которые соответствуют данному уровню абстракции, и только те дополнения, которые необходимы для понимания системы;

не настолько лаконична, чтобы ввести читателя в заблуждение относительно важных аспектов семантики.





Дата публикования: 2014-10-25; Прочитано: 777 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...