Основные этапы создания схем активности
ЦЕЛЬ РАБОТЫ
Изучения архитектурных инструментов в MS Visual Studio 2010. Моделирование программного обеспечения.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Простые потоки управления
Последовательность действий можно показать с помощью ветвей и циклов.
Фигура | Элемент | Описание и основные свойства |
Действие | Шаг в действии, в котором пользователи программы выполняют какие-либо задачи. Действие может начинаться, когда токен был получен всеми его входящими потоками. Когда действие завершено, токены отправляются во все исходящие потоки. · Body — задает действие в подробностях. · Language — язык выражения в свойстве Body. · Local Postconditions — ограничения, которые должны быть удовлетворены по завершении выполнения. Цель, достигаемая действием. · Local Preconditions — ограничения, которые должны быть удовлетворены до начала выполнения. | |
Поток управления | Соединитель, который показывает поток управления между действиями. Чтобы интерпретировать схему, представьте, что токен переходит от одного действия к другому. Чтобы создать поток управления, используйте средство Соединитель. | |
Начальный узел | Указывает первый шаг или шаги в действии. В начале действия токен переходит из начального узла. | |
Конечный узел действия | Окончание действия. По прибытии токена действие завершается. | |
Узел решений | Условная ветвь в потоке .Имеет один вход и два или более выходов. Входящий токен появляется только на одном из выходов. | |
Условие | Условие, которое задает, может ли токен проходить вдоль соединителя. Чаще всего используются на исходящих потоках узла решений. Чтобы задать условие, щелкните поток правой кнопкой мыши, выберите Свойства и задайте свойство Условие. | |
Узел слияния | Требуется для слияния потоков, разделенных узлом решений. Имеет два или более входов и один выход. Токен на любом входе отображается на выходе. | |
Комментарий | Предоставляет дополнительные сведения об элементах, с которыми связан. | |
Действие вызова поведения | Действие, которое определяется более подробно на другой схеме активности. · IsSynchronous — если значение true, действие ожидает завершения активности. · Behavior — вызванное действие. | |
(не показана) | Действие вызова операции | Действие, которое вызывает операцию для экземпляра класса. |
Действия | Поток работ, описываемый схемой активности .Чтобы просмотреть свойства действия, необходимо выбрать его в Обозревателе моделей UML. · Is Read Only — если значение true, действие не должно изменять состояние ни одного объекта. · Is Single Execution — если значение true, одновременно возможно только одно выполнение этой схемы. | |
UML-схема активности | Эта схема отображает действие. Чтобы просмотреть ее свойства, щелкните пустую область схемы. |
Параллельные потоки
Можно описать последовательности действий, выполняемых одновременно. Дополнительные сведения:
Фигура | Элемент | Описание |
Вилочный узел | Разделяет единый поток на параллельные потоки. Каждый входящий токен создает токен на каждом исходящем соединителе. | |
Узел присоединения | Объединяет параллельные потоки в один поток. Если каждый входящий поток имеет ожидающий токен, создается токен на выходе. | |
Действие отправки сигнала | Действие, которое отправляет сообщение или сигнал другому действию или параллельному потоку того же действия. Тип и содержимое сообщения видны из названия действия или задаются в дополнительных комментариях. Действие может отправлять данные в сигнале, который можно передать действию в потоке объектов или закреплении ввода (16). | |
Действие события принятия | Действие, которое ожидает сообщения или сигнала, чтобы продолжиться. Тип сообщения, которое может быть получено действием, виден из названия или задается в дополнительных комментариях. Если действие не имеет входящего потока управления, оно создает токен всякий раз при получении сообщения. Действие может получать данные в сигнале, который можно передать в потоке объектов или закреплении вывода (17). · IsUnmarshall — если значение true, может существовать несколько типизированных закреплений вывода, и данные распаковываются в них. Если значение false, все данные отображаются в одном закреплении. |
Потоки данных
Можно описать поток данных из одного действия в другое.
Фигура | Элемент | Описание |
Узел объекта | Представляет данные, передаваемые в потоке. · Ordering — способ хранения нескольких токенов. · Selection — вызывает процесс фильтрации данных, который можно определить на другой схеме. · Upper Bound — 0 означает, что данные должны передаваться в потоке напрямую; * означает, что данные можно хранить в потоке. · Type — тип хранимых и передаваемых объектов. | |
Закрепление ввода | Представляет данные, которые действие может получать при выполнении. · Type — тип переданных объектов. | |
Закрепление вывода | Представляет данные, которые действие создает при выполнении. · Type — тип переданных объектов. | |
Узел параметра действия | Узел объекта, через который действие может получать или создавать данные. Используется, если представленное схемой действие вызывается из другого действия, либо если схема описывает операцию или функцию. · Type — тип переданных объектов. | |
(не показана) | Поток объектов | Соединитель, который показывает поток данных между действиями и узлами объекта. Чтобы создать поток объектов, нужно использовать средство Соединитель для связи закрепления ввода или вывода либо узла объекта с другим элементом. · Selection — вызывает процесс фильтрации данных, который можно определить на другой схеме. · Transformation — вызывает преобразующий данные процесс, который можно определить на другой схеме. · IsMulticast — указывает на возможность существования нескольких получающих объектов или компонентов. · IsMultiReceive — указывает на возможность получения входных данных из нескольких объектов или компонентов. |
Основные этапы создания схем активности
Схема активности описывает бизнес-процесс или программный алгоритм как последовательность действий. Стрелки-соединители показывают, как управление последовательно передается от одного действия к другому. Обычно действие может начаться только после завершения предыдущего действия.
На следующем рисунке приведен пример, как можно показывать последовательность действий с помощью действий, соединителей, ветвей и циклов.Более подробно элементы описаны в следующих разделах.
Схемы активности используют Действия и Соединители, чтобы описывать систему или приложение как последовательность действий, последовательно принимающих управление.
Создайте Действие (1) для каждой основной задачи, выполняемой пользователем, системой или ими обоими.
Примечание |
Попробуйте описать процесс или алгоритм всего несколькими действиями. С помощью Действий вызова поведения можно определять каждое действие подробнее на отдельных схемах, как описано в разделе Описание вложенных действий с помощью действий вызова поведения. |
Убедитесь, что заголовок каждого действия четко показывает, зачем оно нужно.
Свяжите действия в последовательность с помощью Соединителей (2).
Каждое действие заканчивается до начала следующего действия в потоке управления.Если нужно описать перекрывающиеся действия, воспользуйтесь Узлом ветвления, как описано в разделе Параллельные потоки.
Хотя схема описывает последовательность действий, она не описывает то, как действия выполняются и как управление передается от одного действия к следующему.Если с помощью схемы изображается бизнес-процесс, управление может передаваться, например, при отправке сообщения электронной почты одним человеком другому.Если с помощью схемы иллюстрируется система программного обеспечения, управление может передаваться при нормальном потоке выполнения от одного оператора к другому.
Описание решений и циклов
Узел решения (3) используется, чтобы указать точку, в которой результат решения определяет следующий шаг.Можно добавить любое количество исходящих путей.
Если с помощью схемы активности определяется часть приложения, следует определить условия (4), чтобы было понятно, когда следует использовать каждый из путей.Щелкните соединитель правой кнопкой мыши, выберите Свойства и в окне Свойства введите значение в поле Условие.
Не всегда необходимо определять условия.Например, если схема активности используется для описания бизнес-процесса или протокола взаимодействия, ветвь определяет диапазон параметров, доступных для пользователя или взаимодействующих компонентов.
Узел слияния (5) используется для объединения двух или нескольких альтернативных потоков, ветвящихся в Узле решения.
Примечание |
Для объединения альтернативных потоков следует использовать Узел слияния, а не соединять потоки в действии. В приведенном примере будет неправильно сделать соединитель прямо от узла решения к Выбор пункта меню. Это связано с тем, что действие не запускается, пока потоки управления не поступили во все входящие соединители. Поэтому объединять в действии следует только параллельные потоки. |
Циклы можно описывать с помощью ветвей, как показано в примере.
Примечание |
Попробуйте вкладывать циклы структурированно, как в коде программы. Если вы описываете существующий бизнес-процесс, это может показать некоторые возможности для его улучшения. |
Запуск действия
Точки входа в действие можно указывать двумя способами.
Начальный узел
Создайте один Начальный узел (6), чтобы указать первое действие действия.
Этот метод лучше всего подходит при описании вложенных действий или в случаях, когда не нужно явно указывать, что запускает действие. Например, действие "Заказ блюда" определенно начинается с того, что клиент проголодался.
Узел события получения
Создайте Узел события получения, как описано в разделе Параллельные потоки, чтобы указать начало потока, реагирующего на определенное событие, например ввод данных пользователем. Не предоставляйте входящий в узел поток. Пропуск входящего потока означает, что поток запускается при каждом возникновении события.
Этот метод особенно полезен, если нужно описать ответ на определенное внешнее событие.
Завершение действия
Используйте Конечный узел действия (7), чтобы обозначить конец действия.
При достижении потоком управления Конечного узла действия все параллельные и вложенные действия данного действия завершаются.
Можно использовать несколько конечных узлов действия, чтобы уменьшить число лишних соединителей.
Прерывание действия
Чтобы описать, как можно прерывать обычный потока действий, например, если пользователь решает отменить процесс, можно создать узел события получения, прослушивающий это событие. Дополнительные сведения. Создайте поток управления из этого узла к конечному узлу действия (7).
Дорожки
Иногда полезно разделить части действия на области, соответствующие различным объектам или бизнес-ролям, выполняющим действия. Эти области оформляются в виде столбцов и называются дорожками.
Используйте линии или прямоугольники в разделе панели элементов Простые фигуры, чтобы изображать дорожки или другие области.
Чтобы подписать дорожку, создайте примечание и присвойте его свойству Прозрачный значение True.
Простые фигуры не являются частью UML-модели и не отображаются в обозревателе моделей UML.
Описание потока данных
Данные, передающиеся в или из действия, можно описать одним из двух следующих способов.
С использованием Узла объекта. Это простейший способ описания информации, передаваемой между действиями. Узел объекта похож на переменную в программе. Он представляет элемент, хранящий одно или несколько значений, передаваемых из одного действия в другое.
С использованием Закрепления вывода и Закрепления ввода.Этот метод позволяет отдельно описывать выходные данные одного действия и входные данные другого. Закрепления похожи на параметры в программе. Закрепления представляют порты, в которых объекты могут входить и выходить из действия.
Примечание |
Общие сведения об элементах, используемых в этом разделе, см. в части "Потоки данных" раздела UML-схемы деятельности: справочные материалы. |
Описание потока данных с помощью узлов объектов
Большинство потоков управления передает данные. Например, выходной поток действия "Клиент предоставляет сведения" передает ссылку на адрес поставки.
Если нужно описать эти данные на схеме, можно заменить соединитель узлом объекта и двумя соединителями, как показано на следующем рисунке.
Обратите внимание, что прямоугольники с закругленными углами, например Dispatch Goods (отправка товаров), представляют действия, в которых происходит обработка. Прямоугольники с прямыми углами, например Shipment Address (адрес поставки), представляют потоки объектов из одного действия в другое.
Присвойте узлу объекта имя, отражающее роль узла как передаточного звена или буфера для объектов, передаваемых между действиями.
Тип узла объекта можно задать в окне свойств. Это может быть примитивный тип, например Integer, или класс, интерфейс или перечисление, определенные на схеме классов. Например, можно создать класс Shipment Address (адрес поставки) с атрибутами Street Address (улица), City (город) и так далее, связав его с другим классом под названием Customer (клиент).
Примечание |
Если ввести имя типа, который еще не определен, в раздел Неуказанные типы в обозревателе моделей UML будет добавлен элемент. Если после этого определить тип с таким именем на схеме классов, необходимо сбросить тип узла объекта, чтобы он ссылался на новый тип. |
Буферизация данных в узлах объектов
Узел объекта может действовать как буфер для нескольких объектов. На следующем рисунке поток управления показывает, что пользователь может пройти цикл [choose more] (выбрать еще) (1) много раз, а узел объекта Chosen Menu Items (выбранные элементы меню) (2) накапливает решения пользователя. Наконец, когда пользователь завершает выбор, управление передается действию Confirm Order (подтверждение заказа) (3), которое принимает полный список решений из буфера Chosen Menu Items.
Можно указать способ хранения элементов в буфере, установив следующие свойства узла объекта.
Установите следующие значения для свойства Упорядочение.
Unordered, чтобы задать произвольный порядок или отсутствие порядка.(По умолчанию).
Ordered, чтобы задать порядок, соответствующий определенному ключу.
Fifo, чтобы задать порядок "первое на входе — первое на выходе".
Lifo, чтобы задать порядок "последнее на входе — первое на выходе".
Установите свойство Верхняя граница, чтобы задать максимальное число объектов в буфере.Значение по умолчанию — *.Это означает отсутствие ограничения.
Описание потока данных с помощью закреплений ввода и вывода
С помощью Закрепления вывода и Закрепления ввода можно отдельно описать вывод из одного действия и ввод в другое.
Чтобы создать закрепление, нажмите кнопку Закрепление ввода или Закрепление вывода на панели элементов и выберите действие. Затем можно переместить закрепление по периметру действия и изменить его имя. Можно создавать закрепления ввода и вывода для любых действий, включая Действия вызова поведения, Действия вызова операции, Действия отправки сигнала и Действия принятия события.
Соединитель между двумя закреплениями представляет поток объектов, как и потоки из и в узел объекта.
Присваивайте закреплениям имена, указывающие на роль объектов, которые они создают или принимают, например имена параметров.
Можно задать тип передаваемых объектов в свойстве Тип. Это должен быть тип, созданный на UML-схеме классов.
Объекты, передающиеся между соединенными закреплениями, должны быть как-либо совместимы. Например, объекты, создаваемые закреплением вывода, могут принадлежать к производному типу типа закрепления ввода.
Также можно указать, что поток объектов включает преобразование, которое изменяет данные из типа закрепления вывода в тип закрепления ввода. Наиболее распространенные преобразования такого рода просто извлекают подходящую часть из большего типа. В примере на рисунке подразумевается преобразование, которое извлекает Shipping Address (адрес доставки) из Order Detail (сведений заказа).
Более подробное определение действий
Кроме имени, позволяющего описать получаемый действием результат, есть несколько способов описать действие подробнее.
Написать более подробное описание в свойстве Основная часть. Например, можно написать фрагмент программного кода или псевдокода или полное описание получаемых результатов.
Заменить действие действием вызова поведения и подробно описать его поведение на отдельной схеме активности.
Установите свойства действия Локальные постусловия и Локальные предусловия, чтобы описать его результат подробнее.
Описание вложенных действий с помощью действий вызова поведения
Можно подробно описать поведение действия с помощью отдельной схемы активности. Вызываемое поведение — это схема активности, представленная на основной схеме активности действием вызова поведения. Действие вызова поведения можно также использовать для описания поведения, используемого различными действиями совместно, чтобы не изображать одно вложенное действие несколько раз.
На следующем рисунке Diagram 1 (схема 1) показывает действие, содержащее действие вызова поведения, а Diagram 2 (схема 2) показывает схему вложенного действия, отображающую вызываемое поведение.
Описание вложенных действий с помощью действий вызова поведения
Чтобы создать схему вложенного действия, щелкните проект моделирования правой кнопкой мыши в обозревателе решений и последовательно выберите Добавить и Новый элемент.
В диалоговом окне Добавление нового элемента в разделе Шаблоны щелкните пункт Схема активности и в поле Имя введите имя Действия вызова поведения.
Подробно изобразите рабочий процесс вложенного действия. Это называется вызываемым поведением.
На схеме вызываемого вложенного действия Начальный узел указывает место, с которого начинается управление при вызове данного поведения. Конечный узел действия показывает, где управление возвращается к родительскому действию.
Установите для свойства Поведение действия Действие вызова поведения значение ссылки на схему вызываемого поведения.
Примечание |
Схема вложенного действия должна содержать элементы; в противном случае она не будет доступна в раскрывающемся списке для свойства Поведение. Кроме того, значок трезубца не появится на фигуре Действие вызова поведения, если не установить его свойство Поведение. |
Установите для свойства Является синхронным действия значение, указывающее, ожидает ли действие завершения вызванного действия.
Значение Является синхронным, равное false, означает, что поток может переходить к следующему действию до завершения вызванного действия. Не следует определять закрепления вывода или исходящие потоки данных из действия.
Описание потоков данных, входящих и исходящих из вложенных действий
Описание данных, передаваемых в и из вложенных действий, сходно с использованием параметров в программном обеспечении.
Создайте закрепления ввода и вывода (1) для действия вызванного поведения для каждого фрагмента данных, передаваемого в или из действия. Назовите их.
На схеме вложенного действия создайте Узел параметра действия (2) для каждого закрепления ввода и вывода вызывающего действия. Присвойте каждому узлу имя, совпадающее с именем соответствующего закрепления.
Примечание |
Узел параметра действия похож на узел объекта. Чтобы проверить тип узла, щелкните правой кнопкой мыши узел и нажмите кнопку Свойства. Тип узла отображается в заголовке окна свойств. |
На схеме вложенного действия проведите соединители, показывающие поток объектов в или из каждого из узлов параметров действий.
Определение постусловий и предусловий
Можно использовать свойства Локальные постусловия и Локальные предусловия, чтобы подробно описать результаты действия. Эти свойства описывают результат действия, не описывая способ достижения этого результата.
Чтобы установить эти свойства, щелкните правой кнопкой мыши действие и нажмите кнопку Свойства. Введите значения свойств в окне свойств.
Локальные постусловия
Постусловие — это условие, которое должно выполняться, прежде чем действие может считаться завершенным. В примере действия Confirm Order (подтверждение заказа) постусловием может быть, например, следующее.
Клиент предоставил полные сведения в допустимом формате, которые необходимы для обработки данных кредитной карты пользователя.
Постусловие может выражать отношение между состояниями до и после выполнения действия. Пример.
Процентная ставка удвоилась.
Можно писать постусловия в более формальном стиле, ссылаясь на определенные атрибуты данных, с которыми работают действия. Пример.
InvoiceTotal == Sum(OrderItem.MenuItem.Price)
Локальные предусловия
Предусловие — это условие, которое должно быть удовлетворено в момент начала действия. Например, у действия Confirm Order (подтверждение заказа) может быть следующее предусловие.
Пользователь выбрал хотя бы один элемент из меню.
Описание вызовов к операциям
Как правило, действие описывает работу, выполняемую любым сочетанием людей, программ и компьютеров. Однако с помощью действия вызова операции можно описывать вызовы к определенным методам или функциям программы.
Задайте имя действия вызова операции, указывающее, какая операция и для какого объекта или компонента вызывается.
Добавьте к действию вызова операции закрепления ввода и вывода, чтобы описать параметры и возвращаемые значения.
Можно установить значение свойства Является синхронным для действия, чтобы указать, ожидает ли действие завершения операции.
Значение Является синхронным, равное false, означает, что поток может переходить к следующему действию до завершения вызванной операции. Не следует определять закрепления вывода или исходящие потоки данных из действия.
Параллельные потоки
С помощью Узлов ветвления и Соединительных узлов можно описывать два или более потоков действий, которые могут выполняться одновременно.
Узел ветвления (1) разделяет поток управления на два или более потока. После завершения предыдущего действия могут запускаться все действия на выходе ветвления.
Соединительный узел (2) объединяет параллельные потоки. Действие после Соединительного узла не может начаться до завершения всех действий, входящих в Соединительный узел.
Описание сигналов и событий
Шаг в процессе, отправляющий сигнал, можно показать как действие отправки сигнала в действии. Шаг, ожидающий конкретного сигнала или события перед продолжением работы, можно показать как действие принятия события.
Например, можно показать шаг, отправляющий заказ, и другой шаг, который должен получить заказ перед обработкой этого заказа.
Отправка сигнала
Действия отправки сигнала (3) используются, чтобы указать, что какой-либо сигнал или сообщение отправлено другим действиям или процессам. Используйте имя действия, чтобы указать, какой тип сообщений оно отправляет.
Управление немедленно передается следующему действую в потоке управления (при его наличии).
Действие отправки сигнала нельзя использовать для описания ответа процесса на возвращаемую информацию. Для этого нужно использовать отдельное действие принятия события.
Можно показать входящий в действие отправки сигнала поток данных, чтобы указать, какие данные могут отправляться в исходящих сообщениях.
Ожидание сигнала или события
Действия принятия события (4) используются, чтобы указать, что данное действие ожидает некоторого внешнего события или входящего сообщения. Используйте имя действия, чтобы указать, какой тип сообщений оно ожидает.
Чтобы показать, что действие ожидает внешнего события или сообщения в определенной точке потока, в подходящем месте действия изобразите действие принятия события с входящим потоком.
Чтобы показать, что действие может отвечать на внешнее событие или сообщение в любое время, изобразите действие принятия события без входящего потока. При возникновении указанного внешнего события, в действии начнется новый поток, начинающийся с действия принятия события.
Действия принятия события нельзя использовать для описания значений, возвращаемых отправителю сигнала. Для этого используется отдельное действие отправки сигнала.
Можно показать исходящие из действия потоки данных, чтобы продемонстрировать, как действие обрабатывает данные, получаемые с сигналом. Если нужно показать несколько исходящих потоков, следует установить свойство IsUnmarshall действия принятия события, указывающее, что действие при анализе разделяет входящий сигнал на компоненты.
Описание нескольких потоков данных
Можно изобразить несколько потоков управления или потоков объектов, исходящих из действия, чтобы указать, что после завершения действия возникает несколько потоков. Это похоже на ветвление, за исключением того, что можно использовать одновременно и потоки управления, и потоки объектов.
В следующем примере показано несколько потоков, исходящих и входящих в действия.
После завершения действия "Customer provides details" (клиент предоставляет сведения) оно создает два объекта: "Shipment address" (адрес доставки) и "Credit card details" (сведения о кредитной карте). Эти два объекта затем обрабатываются различными действиями.
Поскольку действие нуждается во всех входных данных до начала выполнения, последнее действие не начинается, пока не завершатся все ведущие к нему действия.
Потоки
С помощью схемы активности можно описывать конвейер или ряд действий, выполняющихся одновременно и постоянно передающих данные от действия к действию.
Суть следующего примера в том, что все действия могут создавать объекты и продолжать работу. Так как здесь нет потоков управления, действия могут начинаться сразу после получения первого объекта.
Следует обратить внимание, что соединители в этом примере являются потоками объектов, так как по меньшей мере один конец каждого из них находится в узле параметра действия, узле объекта или закреплении ввода или вывода.
1.В данном примере — три узла параметра действия, представляющие его вводы и выводы.
2.Узлы объектов и закрепления ввода и вывода могут представлять буферы.Можно задать свойство "верхняя граница" узла объектов, чтобы ограничить число объектов, одновременно находящихся в буфере.
3.С помощью узлов решений можно показать, что поток разделяется и отправляет различные объекты по различным ветвям.Можно использовать примечания или заголовки узлов для объяснения критериев разделения.
4.С помощью узлов ветвления можно показать, что создается две или более копии объектов, отправляемые в параллельную обработку.
5.С помощью соединительных узлов можно показать, что два потока обработки вновь сливаются.
Выделение и преобразование
Можно указать, что объекты в потоке объектов преобразуются, выбираются или с ними происходит и то, и другое.Поток объектов — это поток к или от закрепления или узла объекта.
Преобразование описывает, как объекты, входящие в поток, преобразуются в другой тип.
Выбор описывает, каким образом только часть объектов, входящих в поток, передается принимающему действию.
В примере показано преобразование. Первое действие на Diagram 1 (схеме 1) создает почтовый индекс на закреплении вывода. Он соединен с закреплением ввода второго действия. Однако второе действие ожидает полный адрес. Преобразование из одного типа в другой задано во втором действии, Address Lookup (поиск адресов).На него ссылается свойство "преобразование" потока объектов. Действие Address Lookup содержит один узел параметра действия для входящего почтового индекса и второй узел параметра действия для исходящего полного адреса.
Преобразование или выбор можно задать одним из двух способов.
Присоединить примечание к закреплению ввода или вывода.
Чтобы отличить это описание от обычного примечания, начните его со слова <<преобразование>> или <<выбор>>.
Описать преобразование или выбор подробнее на отдельной схеме активности.
При использовании этого способа также присоедините примечание, чтобы читатели поняли, что определено преобразование.
Описание преобразования или выбора на отдельной схеме активности
Создайте новую схему активности для описания потока преобразования или выбора.
В обозревателе решений щелкните проект правой кнопкой мыши, выберите команду Добавить и последовательно щелкните Новый элемент и Схема активности. Присвойте схеме имя, подходящее для потока преобразования или выбора. Нажмите кнопку Добавить.
На новой схеме выполните следующие действия.
Создайте два узла параметра действия, один для входящего потока, второй для вывода.
Создайте действия, связанные потоками объектов. Это показывает, как работает преобразование или выбор.
На любой схеме, где нужно использовать преобразование или выбор, выполните следующие действия.
Создайте поток объектов, то есть соединитель в или из закрепления ввода или вывода, узел объектов или узел параметра действия.
Щелкните поток объектов правой кнопкой мыши и выберите пункт Свойства.
В свойстве Преобразование или Выделение выберите схему, на которой определяется поток преобразования или выбора.
Можно также определить выбор для узла объекта и отдельных закреплений ввода и вывода. Определите действие выбора, как в предыдущей процедуре, и установите свойство Выделение узла объекта или закрепления ввода или вывода.
Чтение схем последовательностей
Фигура | Элемент | Описание |
Линия жизни | Вертикальная линия, которая представляет последовательность событий, происходящих в участнике во время взаимодействия, когда время направлено вниз по этой линии. Этот участник может быть экземпляром класса, компонента или субъекта. | |
Субъект | Участник, являющийся внешним по отношению к разрабатываемой системе. Можно заставить символ субъекта отображаться в верхней части линии жизни, задав ее свойство Субъект. | |
Синхронное сообщение | Отправитель ожидает ответа на синхронное сообщение перед тем, как продолжить. На рисунке показан вызов и возврат. Синхронные сообщения используются для представления обычных вызовов функций внутри программы, а также других видов сообщений, которые применяются аналогичным образом. | |
Асинхронное сообщение | Сообщение, не требующее ответа перед продолжением работы отправителя. Асинхронное сообщение показывает только вызов от отправителя. Используется для представления связи между отдельными потоками или создания нового потока. | |
Вхождение выполнения | Вертикальный затененный прямоугольник, который появляется на линии жизни участника и представляет период, когда участник выполняет операцию. Выполнение начинается, когда участник получает сообщение. Если инициируемое сообщение было синхронным сообщением, выполнение заканчивается стрелкой возврата к отправителю. | |
Сообщение обратного вызова | Сообщение, возвращающееся обратно участнику, который ожидает возврата из предыдущего вызова. Результирующее вхождение выполнения отображается поверх существующего. | |
Исходное сообщение | Сообщение от участника самому себе. Результирующее вхождение выполнения отображается поверх отправляющего выполнения. | |
Создайте сообщение | Сообщение, создающее участника. Если участник получает сообщение о создании, он должен быть первым, кто его получает. | |
Найти сообщение | Асинхронное сообщение от неизвестного или не указанного участника. | |
Потерянное сообщение | Асинхронное сообщение неизвестному или не указанному участнику. | |
Комментарий | Примечание можно подключить к любой точке линии жизни. | |
Использование взаимодействия | Заключает последовательность сообщений, которые определены в другой схеме. Чтобы создать использование взаимодействия, щелкните инструмент и выполните перетаскивание поверх линий жизни, которые требуется включить. | |
Объединенный фрагмент | Коллекция фрагментов. Каждый фрагмент может включать одно или несколько сообщений. Существует несколько видов объединенных фрагментов. Чтобы создать фрагмент, щелкните сообщение правой кнопкой мыши, наведите указатель на пункт Разместить во фрагменте, после чего выберите тип фрагмента. | |
Фрагмент условия | Может использоваться для установки условия, зависящего от того, будет ли найден фрагмент. Чтобы задать условие, выберите фрагмент, выберите условие и введите значение. | |
Взаимодействие | Коллекция сообщений и линий жизни, которая отображается в схеме последовательности. Чтобы просмотреть свойства взаимодействия, необходимо выбрать его в Обозревателе UML-модели. | |
Схема последовательностей | На рисунке отображается взаимодействие. Чтобы просмотреть свойства, щелкните пустую область схемы. |
1.