Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Пример совместного использования диаграмм кооперации и последовательности

Рис. 6.46.

 

Рис. 6.47.

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 2325; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.