|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Диаграмма последовательностейДиаграмма последовательностей (sequence diagram) отражает поток событий, происходящих при реализации некоторого прецедента, на этой диаграмме изображаются актеры, объекты, а также принимаемые и посылаемые ими сообщения (рис. 14).
Рис. 14. Элементы диаграммы последовательностей При построении диаграммы последовательностей в первую очередь отражается временная последовательность происходящих событий. На рис. 15 представлен пример диаграммы последовательностей, которая имеет два измерения: вертикальное направление представляет время, горизонтальное – различные объекты. Рис. 15. Пример диаграммы последовательностей Объект (Object) – это экземпляр класса, конкретная сущность или образец, он может инициировать некоторые события, которые могут влиять на систему. На диаграмме последовательностей все объекты расположены последовательно в верхней ее части, за исключением объектов, создаваемых в результате тех или иных сообщений (примерами последних являются объекты Order и Invoice на рис. 15). От каждого объекта вниз отходит штриховая линия, называемая линией жизни (Lifeline) объекта. На ней показывают все, что происходит с объектом с момента его создания и до разрушения. Частным случаем объекта может быть актер, он используется в том случае, когда необходимо показать связь участников и прецедентов. Сообщения, передающиеся от одного объекта к другому, представляются стрелками между линиями жизни этих объектов. Порядок следования сообщений устанавливается сверху вниз. Каждое сообщение имеет как минимум имя сообщения, а также может иметь аргументы и некоторую управляющую информацию. Для того чтобы показать момент времени, в который объект является активным, используются прямоугольники активности, их изображают поверх линии жизни. Управляющая информация может быть представлена в виде условия, которое указывает, когда сообщение может быть передано, либо при помощи маркера итерации, показывающего, что сообщение посылается множество раз. Такая итерация дается в следующем виде: *[условие итерации]. В зависимости от типа сообщение изображается при помощи различных линий: – вызов процедуры или другого потока управления; – поток управления, показывает направление потока управления и последовательности шагов; – асинхронное стимулирующее воздействие; – возврат из процедуры, используется для того, чтобы показать, что каждая процедура возвращает управление после своего завершения. Обычно стрелка возврата указывается только в том случае, если это вносит в диаграмму дополнительную ясность. В качестве элементов диаграммы последовательностей могут применяться так называемые фрагменты взаимодействия (InteractionFragment), которые по своим свойствам не отличаются от полного взаимодействия объектов и позволяют наглядным образом группировать последовательности сообщений. Включение (InteractionUse) представляет собой ссылку на имеющееся в модели взаимодействие вместо копирования последнего на диаграмму, что поддерживает декомпозицию и повторное использование отдельных взаимодействий. Включение обозначается как фрагмент взаимодействия с оператором «ref», содержимое которого состоит из названия соответствующего взаимодействия. Комбинированный фрагмент (CombinedFragment) представляет собой выражение над фрагментами взаимодействия, состоящее из оператора и операндов – фрагментов взаимодействия. С каждым операндом может быть связано сторожевое условие. В языке UML над фрагментами взаимодействий определены следующие основные операторы: • alt – выполняется не более одного операнда, для которого сторожевое условие истинно; • opt – необходимость выполнения единственного операнда определяется его сторожевым условием; • break – единственный операнд выполняется вместо всех остальных сообщений в объемлющем фрагменте взаимодействия в случае, если его сторожевое условие истинно; • loop – циклическое выполнение единственного операнда, минимальное и максимальное количество итераций указывается в операнде; • par – параллельное выполнение операндов при сохранении последовательности сообщений в каждом из них; • strict – строго последовательное выполнение операндов; • seq – условно последовательное выполнение операндов, при котором упорядочиваются только сообщения, относящиеся к одной и той же линии жизни; в последнем случае сообщение из первого операнда выполняется прежде сообщения из второго операнда и т.д.; • critical – критический участок, операнды выполняются без перекрытия во времени с любыми другими сообщениями, относящимися к тем же линиям жизни, которые задействованы в операндах. На рис. 13 приведен пример условного комбинированного фрагмента opt, включающего единственный операнд, для которого определено необходимое сторожевое условие. Инвариант состояния (StateInvariant) представляет собой ограничение на состояние объекта в процессе выполнения взаимодействия. Если данное ограничение не выполняется, то вся предыдущая последовательность сообщений считается неверной. Пример инварианта состояния приведен на рис. 16, где с его помощью показано, что возможна отмена только тех заказов, которые еще не доставлены. Диаграммы последовательностей являются наглядным и легко читаемым средством описания функционирования системы. Они помогают быстрее разобраться в процессах поведения системы.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |