2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 51
Текст из файла (страница 51)
Отсюда следует, что нет необходимости в однойFединственной диаграмме, которая охватывала бы это представление целиком. Диаграммывариантов использования, взятые в совокупности, формируют статическое представление вариантов использования системы; каждая изних в отдельности выражает только какойFто один аспект.Хорошо структурированная диаграмма вариантов использования обладает следующими характеристиками: сконцентрирована на передаче одного аспекта представления системы с точки зрения вариантов использования; содержит только те варианты использования и действующиелица, которые важны для понимания данного аспекта; обеспечивает представление, соответствующее ее уровнюабстракции: вы указываете только те дополнения (в частности,точки расширения), которые важны для понимания диаграммы; не настолько лаконична, чтобы читатель упустил из видуважную семантику.Когда вы рисуете диаграмму вариантов использования: присваивайте ей имя, соответствующее ее назначению; расположите ее элементы так, чтобы пересекающихся линийбыло как можно меньше; организуйте элементы так, чтобы семантически близкие по поведению и ролям располагались рядом; используйте примечания и цветовое выделение для того,чтобы привлечь внимание читателя к важным особенностям; постарайтесь не показывать слишком много видов связей.Вообще, если вы задействуете сложные связи включенияи расширения, вынесите их в отдельную диаграмму.Введение263ВведениеГлава 19.
ДиаграммывзаимодействияВ этой главе:Диаграммыдеятельности,диаграммысостоянийи диаграммывариантовиспользования – этотри типадиаграмм,которыенаряду с рассматриваемым в даннойглаве используютсяв UML длямоделирования динамическихаспектовсистем. Ониобсуждаются соответственнов главе 20, 25и 18.Моделирование потоков управления по времениМоделирование потоков управления по организацииПрямое и обратное проектированиеДиаграммы взаимодействия, в том числе диаграммы последовательности и коммуникации, используются в UML для моделирования динамических аспектов систем. В общих чертах диаграммавзаимодействия показывает взаимодействие ряда объектов, а также их связи и сообщения, которые могут передаваться между ними.Диаграммы последовательности и коммуникации – это диаграммывзаимодействия, первая из которых отражает временной порядоксообщений, а вторая – структурную организацию объектов, отправляющих и принимающих сообщения.Большей частью под моделированием динамических аспектовсистемы применительно к диаграммам взаимодействия подразумевается моделирование конкретных или прототипных экземпляровклассов, интерфейсов, компонентов и узлов наряду с передаваемыми между ними сообщениями – и все это в контексте сценария,иллюстрирующего некоторое поведение.
Диаграммы взаимодействия могут существовать самостоятельно, чтобы визуализировать,специфицировать, конструировать и документировать динамикуопределенных сообществ объектов, или же использоваться для моделирования одного конкретного потока управления в пределахварианта использования.Диаграммы взаимодействия важны не только для моделирования динамических аспектов систем, но и для конструированияисполняемых систем методом прямого и обратного проектирования.Когда вы смотрите киноF или телефильм, то испытываете определенного рода иллюзию. Вам кажется, что на экране происходитнепрерывное движение, как в жизни, а на самом деле вы видитесерию статических картинок, воспроизводимую настолько быстро,что возникает подобный «обман зрения».Во время съемки режиссеры и мультипликаторы применяютту же технику последовательных срезов событий, создавая раскадровку основных сцен.
Иными словами, они строят модель каждойсцены, достаточно подробную, чтобы передать свой замысел коллегам по съемочной группе. Фактически создание раскадровки – этоосновное содержание производственного процесса съемок, позволяющее команде визуализировать, специфицировать, сконструировать и задокументировать модель кинофильма в ее развитии –от начальной точки к выпуску в прокат.МоделироваПри разработке программных систем встает та же проблема:ние струккак смоделировать динамическое поведение? Представьте на мгнотурныхвение, как можно визуализировать работающую систему.
Если в вааспектовшем распоряжении есть интерактивный отладчик, соединенныйсистемыс системой, то вы можете просмотреть участок памяти и увидеть,обсужкак его содержимое со временем изменяется. При необходимостидаетсяможно даже наблюдать за отдельными интересующими вас объекв частях IIтами. Немного понаблюдав, вы увидите создание некоторых объеки III.тов, изменения значений их атрибутов, а потом уничтожение некоторых из них.Возможности подобной визуализации динамических аспектов системы в достаточной мере ограничены, особенно если речьидет о распределенной системе с множеством параллельных потоков управления. С таким же успехом вы можете попытатьсяпонять систему кровообращения человека, сосредоточив внимание на порции крови, которая перекачивается через один участокоднойFединственной артерии в единицу времени. Более рациональный способ моделирования динамических аспектов системы заключается в том, чтобы строить «раскадровки сценариев» с включением взаимодействия определенных объектов и сообщений, которыемогут передаваться между ними.В UML такие «раскадровки» моделируются диаграммами взаимодействия.
Последние, как показано на рис. 19.1, можно строитьодним из двух способов: выделяя временной порядок сообщенийи выделяя структурные связи между взаимодействующими объектами. В любом случае эти диаграммы семантически эквивалентны:можно конвертировать одну в другую без потери информации.Диаграммы взаимодействия264Базовые понятия265Общие свойстваОбщиесвойствадиаграммобсуждаются в главе 7.create()диаграммаследовательностиdestroy()диаграмма коммуникацииcreate()ссылкаdestroy()transproxyРис. 19.1. Диаграммы взаимодействияБазовые понятияДиаграмма взаимодействия показывает взаимодействие, состоящее из набора объектов и их связей, включая передаваемые междуними сообщения.Диаграмма последовательности – это диаграмма взаимодействия,которая подчеркивает временной порядок сообщений.
Изображаетсякак таблица, в которой представлены объекты, расположенныевдоль оси X, и сообщения, упорядоченные по ходу времени – вдольоси Y.Диаграмма коммуникации – это диаграмма взаимодействия,которая выделяет структурную организацию объектов, отправляющих и принимающих сообщения. Графически представляет собойнабор дуг и вершин.Диаграмма взаимодействия, как и любая другая, характеризуется именем и содержимым, представляющим проекцию модели.От других типов диаграмм отличается конкретным наполнением.СодержимоеОбъектыДиаграммы взаимодействия обычно содержат роли или объекобсужты; коммуникации или ссылки; сообщения.даютсяв главе 13,На заметку.
Диаграммы взаимодействия, по существу, предссылки –ставляют проекцию элементов, участвующих во взаимодейств главах 14вии. Семантика контекста взаимодействия, объектов и ролей,и 16, сообщессылок и коннекторов, сообщений и последовательностей приния и взаимоменима к диаграммам взаимодействия.действия –в главе 16,Диаграммы взаимодействия, как и все прочие, могут содержатьвнутренняяпримечанияи ограничения.структуракласса –в главе 15,кооперации –Диаграммы последовательности выделяют временной порядокв главе 28.Диаграммы последовательностисообщений. Как показано на рис.
19.2, формирование диаграммыпоследовательности начинается с размещения объектов или ролей, участвующих во взаимодействии, в верхней части диаграммы, по горизонтальной оси. Обычно объект или роль, инициирующие взаимодействие, размещаются слева, а зависимые объектыили роли – справа. Далее по вертикальной оси расставляются сообщения, которые отправляют и принимают эти объекты, – сверхувниз, в хронологическом порядке. Это создает у читателя представление о потоке управления во времени.Диаграммы последовательности отличаются от диаграмм коммуникации двумя признаками.ВоFпервых, это линии жизни (lifelines).
Линия жизни объекта –вертикальная пунктирная линия, символизирующая существование объекта в течение некоторого периода времени. Большинствообъектов, представленных на диаграмме взаимодействия, существуют в течение всего взаимодействия, поэтому все они выровнены по верхней границе диаграммы, а линии их жизни проведеныот верха до низа.Диаграммы взаимодействия266create()времясинхронноесообщениепараметры(commited)destroy()спецификацияисполненияасинхронноесообщение уничтожениеобъектасообщениевозвратаРис.
19.2. Диаграмма последовательностиОбъекты могут быть созданы в процессе взаимодействия. Их время жизни начинается с получения сообщения create, направленного к прямоугольнику объекта в начале жизненного пути. Равнымобразом в процессе взаимодействия объекты могут уничтожаться.Их линия жизни заканчивается при получении сообщения destroy,что графически отмечено большим символом X.Если взаимодействие отражает историю конкретных объектов,то символ объекта с подчеркнутым именем размещается в началелинии жизни. Однако в основном вам придется показывать взаимодействия прототипов. При этом линии жизни не представляютконкретных объектов – они специфицируют прототипные роли,представляющие разные объекты в каждом экземпляре взаимодействия. В данном случае не нужно подчеркивать имена, поскольку они не символизируют конкретных объектов.На заметку.
Если объект изменяет значения своих атрибутов, свое состояние либо свои роли, то вы можете пометить такую модификацию, разместив пиктограмму состояния на линии жизни объекта в точке, где происходит изменение.ВоFвторых, это наличие фокуса управления. Фокус управления(focus of control) – высокий узкий прямоугольник, показывающийпериод времени, в течение которого объект выполняет действие – какнепосредственно, так и с помощью зависимой процедуры. ВерхняяБазовые понятия267грань прямоугольника выровнена по началу действия, а нижняя –по его завершению и может быть отмечена сообщением возврата.Вы можете показать вложенность фокуса управления, вызваннуюрекурсией, вызовом собственной операции либо возвратом вызоваиз другого объекта, наложив другой фокус управления чуть правееродительского (таким образом можно изобразить сколько угодноуровней вложения).