Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Изучения архитектурных инструментов в MS Visual Studio 2010. Моделирование программного обеспечения.
Последовательность действий можно показать с помощью ветвей и циклов.
Фигура |
Элемент |
Описание и основные свойства |
1 |
Действие |
Шаг в действии, в котором пользователи программы выполняют какие-либо задачи. Действие может начинаться, когда токен был получен всеми его входящими потоками. Когда действие завершено, токены отправляются во все исходящие потоки.
|
2 |
Поток управления |
Соединитель, который показывает поток управления между действиями. Чтобы интерпретировать схему, представьте, что токен переходит от одного действия к другому. Чтобы создать поток управления, используйте средство Соединитель. |
3 |
Начальный узел |
Указывает первый шаг или шаги в действии. В начале действия токен переходит из начального узла. |
4 |
Конечный узел действия |
Окончание действия. По прибытии токена действие завершается. |
5 |
Узел решений |
Условная ветвь в потоке .Имеет один вход и два или более выходов. Входящий токен появляется только на одном из выходов. |
6 |
Условие |
Условие, которое задает, может ли токен проходить вдоль соединителя. Чаще всего используются на исходящих потоках узла решений. Чтобы задать условие, щелкните поток правой кнопкой мыши, выберите Свойства и задайте свойство Условие. |
7 |
Узел слияния |
Требуется для слияния потоков, разделенных узлом решений. Имеет два или более входов и один выход. Токен на любом входе отображается на выходе. |
8 |
Комментарий |
Предоставляет дополнительные сведения об элементах, с которыми связан. |
9 |
Действие вызова поведения |
Действие, которое определяется более подробно на другой схеме активности.
|
(не показана) |
Действие вызова операции |
Действие, которое вызывает операцию для экземпляра класса. |
Действия |
Поток работ, описываемый схемой активности .Чтобы просмотреть свойства действия, необходимо выбрать его в Обозревателе моделей UML.
|
|
UML-схема активности |
Эта схема отображает действие. Чтобы просмотреть ее свойства, щелкните пустую область схемы. |
Можно описать последовательности действий, выполняемых одновременно. Дополнительные сведения:
Фигура |
Элемент |
Описание |
11 |
Вилочный узел |
Разделяет единый поток на параллельные потоки. Каждый входящий токен создает токен на каждом исходящем соединителе. |
12 |
Узел присоединения |
Объединяет параллельные потоки в один поток. Если каждый входящий поток имеет ожидающий токен, создается токен на выходе. |
13 |
Действие отправки сигнала |
Действие, которое отправляет сообщение или сигнал другому действию или параллельному потоку того же действия. Тип и содержимое сообщения видны из названия действия или задаются в дополнительных комментариях. Действие может отправлять данные в сигнале, который можно передать действию в потоке объектов или закреплении ввода (16). |
14 |
Действие события принятия |
Действие, которое ожидает сообщения или сигнала, чтобы продолжиться. Тип сообщения, которое может быть получено действием, виден из названия или задается в дополнительных комментариях. Если действие не имеет входящего потока управления, оно создает токен всякий раз при получении сообщения. Действие может получать данные в сигнале, который можно передать в потоке объектов или закреплении вывода (17).
|
Можно описать поток данных из одного действия в другое.
Фигура |
Элемент |
Описание |
15 |
Узел объекта |
Представляет данные, передаваемые в потоке.
|
16 |
Закрепление ввода |
Представляет данные, которые действие может получать при выполнении.
|
17 |
Закрепление вывода |
Представляет данные, которые действие создает при выполнении.
|
18 |
Узел параметра действия |
Узел объекта, через который действие может получать или создавать данные. Используется, если представленное схемой действие вызывается из другого действия, либо если схема описывает операцию или функцию.
|
(не показана) |
Поток объектов |
Соединитель, который показывает поток данных между действиями и узлами объекта. Чтобы создать поток объектов, нужно использовать средство Соединитель для связи закрепления ввода или вывода либо узла объекта с другим элементом.
|
Схема активности описывает бизнес-процесс или программный алгоритм как последовательность действий. Стрелки-соединители показывают, как управление последовательно передается от одного действия к другому. Обычно действие может начаться только после завершения предыдущего действия.
На следующем рисунке приведен пример, как можно показывать последовательность действий с помощью действий, соединителей, ветвей и циклов.Более подробно элементы описаны в следующих разделах.
Схемы активности используют Действия и Соединители, чтобы описывать систему или приложение как последовательность действий, последовательно принимающих управление.
Создайте Действие (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 содержит один узел параметра действия для входящего почтового индекса и второй узел параметра действия для исходящего полного адреса.
Преобразование или выбор можно задать одним из двух способов.
Присоединить примечание к закреплению ввода или вывода.
Чтобы отличить это описание от обычного примечания, начните его со слова <<преобразование>> или <<выбор>>.
Описать преобразование или выбор подробнее на отдельной схеме активности.
При использовании этого способа также присоедините примечание, чтобы читатели поняли, что определено преобразование.
Описание преобразования или выбора на отдельной схеме активности
Создайте новую схему активности для описания потока преобразования или выбора.
В обозревателе решений щелкните проект правой кнопкой мыши, выберите команду Добавить и последовательно щелкните Новый элемент и Схема активности. Присвойте схеме имя, подходящее для потока преобразования или выбора. Нажмите кнопку Добавить.
На новой схеме выполните следующие действия.
Создайте два узла параметра действия, один для входящего потока, второй для вывода.
Создайте действия, связанные потоками объектов. Это показывает, как работает преобразование или выбор.
На любой схеме, где нужно использовать преобразование или выбор, выполните следующие действия.
Создайте поток объектов, то есть соединитель в или из закрепления ввода или вывода, узел объектов или узел параметра действия.
Щелкните поток объектов правой кнопкой мыши и выберите пункт Свойства.
В свойстве Преобразование или Выделение выберите схему, на которой определяется поток преобразования или выбора.
Можно также определить выбор для узла объекта и отдельных закреплений ввода и вывода. Определите действие выбора, как в предыдущей процедуре, и установите свойство Выделение узла объекта или закрепления ввода или вывода.
Чтение схем последовательностей
Фигура |
Элемент |
Описание |
1 |
Линия жизни |
Вертикальная линия, которая представляет последовательность событий, происходящих в участнике во время взаимодействия, когда время направлено вниз по этой линии. Этот участник может быть экземпляром класса, компонента или субъекта. |
2 |
Субъект |
Участник, являющийся внешним по отношению к разрабатываемой системе. Можно заставить символ субъекта отображаться в верхней части линии жизни, задав ее свойство Субъект. |
3 |
Синхронное сообщение |
Отправитель ожидает ответа на синхронное сообщение перед тем, как продолжить. На рисунке показан вызов и возврат. Синхронные сообщения используются для представления обычных вызовов функций внутри программы, а также других видов сообщений, которые применяются аналогичным образом. |
4 |
Асинхронное сообщение |
Сообщение, не требующее ответа перед продолжением работы отправителя. Асинхронное сообщение показывает только вызов от отправителя. Используется для представления связи между отдельными потоками или создания нового потока. |
5 |
Вхождение выполнения |
Вертикальный затененный прямоугольник, который появляется на линии жизни участника и представляет период, когда участник выполняет операцию. Выполнение начинается, когда участник получает сообщение. Если инициируемое сообщение было синхронным сообщением, выполнение заканчивается стрелкой возврата к отправителю. |
6 |
Сообщение обратного вызова |
Сообщение, возвращающееся обратно участнику, который ожидает возврата из предыдущего вызова. Результирующее вхождение выполнения отображается поверх существующего. |
7 |
Исходное сообщение |
Сообщение от участника самому себе. Результирующее вхождение выполнения отображается поверх отправляющего выполнения. |
8 |
Создайте сообщение |
Сообщение, создающее участника. Если участник получает сообщение о создании, он должен быть первым, кто его получает. |
9 |
Найти сообщение |
Асинхронное сообщение от неизвестного или не указанного участника. |
10 |
Потерянное сообщение |
Асинхронное сообщение неизвестному или не указанному участнику. |
11 |
Комментарий |
Примечание можно подключить к любой точке линии жизни. |
12 |
Использование взаимодействия |
Заключает последовательность сообщений, которые определены в другой схеме. Чтобы создать использование взаимодействия, щелкните инструмент и выполните перетаскивание поверх линий жизни, которые требуется включить. |
13 |
Объединенный фрагмент |
Коллекция фрагментов. Каждый фрагмент может включать одно или несколько сообщений. Существует несколько видов объединенных фрагментов. Чтобы создать фрагмент, щелкните сообщение правой кнопкой мыши, наведите указатель на пункт Разместить во фрагменте, после чего выберите тип фрагмента. |
14 |
Фрагмент условия |
Может использоваться для установки условия, зависящего от того, будет ли найден фрагмент. Чтобы задать условие, выберите фрагмент, выберите условие и введите значение. |
Взаимодействие |
Коллекция сообщений и линий жизни, которая отображается в схеме последовательности. Чтобы просмотреть свойства взаимодействия, необходимо выбрать его в Обозревателе UML-модели. |
|
Схема последовательностей |
На рисунке отображается взаимодействие. Чтобы просмотреть свойства, щелкните пустую область схемы. |
Примечание |
Кроме того, линию жизни можно создать, перетащив существующий класс, интерфейс, субъект или компонент из Проводника по моделям UML на схему. Так создается линия жизни, представляющая экземпляр выбранного типа. |
Чтобы создать сообщение (3, 4, 6, 7) щелкните инструмент создания сообщений. Затем щелкните отправляющую линию жизни в том месте, где необходимо начать сообщение, и щелкните получающую линию жизни.
Вхождение выполнения (5) отображается на получающей линии жизни. Вхождение выполнения представляет период времени, в течение которого экземпляр выполняет метод. Можно создать другие сообщения, начинающиеся с вхождения выполнения.
Примечание |
Чтобы переместить группу линий жизни, имеющих утерянные или найденные сообщения, выполните следующие действия, чтобы выделить линии жизни перед перемещением: нарисуйте прямоугольник вокруг этих линий жизни, либо нажмите и удерживайте клавишу CTRL и последовательно щелкните каждую линию жизни. Если для выбора и перемещения всех линий жизни использовать команду Выделить все или сочетание клавиш CTRL+A, утерянные или найденные сообщения, прикрепленные к этим линиям жизни, не будут перемещены. В этом случае сообщения можно переместить отдельно. |
- или -
Копия сообщения и все его дочерние сообщения добавляются в окончание вхождения выполнения или в окончание линии жизни.
Примечание |
Вставленное сообщение всегда отображается на окончании вхождения выполнения или линии жизни. Вставив сообщение, можно перетащить его на прежнее место. |
Примечание |
Взаимодействие не отобразится в Проводнике по моделям UML, пока в схему последовательностей не будет добавлена первая линия жизни. |
- или -
Щелкните взаимодействие правой кнопкой мыши и выберите Вырезать. Щелкните пакет правой кнопкой мыши и выберите Вставить.
Создание и использование простых схем последовательностей
Наиболее простая и часто используемая форма схемы последовательностей содержит только линии жизни и сообщения. Схема этого вида позволяет ясно показать типичную последовательность взаимодействий между объектами в проектируемой системе или между системой и ее пользователями. Часто этого достаточно, чтобы обсуждать проектируемую систему и передавать сведения о ней.
При создании простой схемы последовательностей не следует забывать о следующем.
Для создания сообщений можно использовать три различных инструмента.
Стрелка <<return>> отображается в конце вхождения выполнения. Она обозначает, что контроль над взаимодействием возвращается отправителю.
Сообщение о создании должно быть первым сообщением, которое получит получатель.
Чтобы описать последовательность более подробно, можно разместить Комментарий в любом месте схемы.
Используя Ссылки комментария, можно связать комментарий с линиями жизни, выполнениями, использованиями взаимодействия и фрагментами.
Внимание |
При необходимости прикрепить комментарий к определенной точке последовательности, нужно связать его с вхождением выполнения, использованием взаимодействия или фрагментом. Не связывайте комментарий с линией жизни, потому что в этом случае комментарий не будет прикреплен к правильной точке последовательности. |
Используйте комментарий в следующих целях.
Определение области действия схемы
Очень важно четко обозначить, что должно отображаться на схеме.
Инициирующее событие
Каждая схема должна показывать последовательность взаимодействий, порождаемых одним инициирующим событием.Таким событием может стать следующее.
Уровень детализации
На схемах последовательностей можно отображать разные уровни детализации. Можно определить уровень детализации в двух разных измерениях практически независимо друг от друга.
Линии жизни могут представлять один из уровней детализации.
Сообщения могут представлять один из уровней детализации.
При анализе существующего кода и описании новой проектируемой системы часто имеет смысл создавать и анализировать представления с меньшей детализацией.
Описание вариантов
На схеме отображается одна, типичная последовательность событий. Если необходимо показать альтернативные возможности, такие как сценарии сбоев, можно воспользоваться одним из описанных ниже методов.
Оценка конструкции
Схему можно использовать для оценки распределения задач между ее объектами или компонентами. Необходимо провести реструктуризацию, если наблюдаются следующие явления.
Классы и линии жизни
Линии жизни на схемах последовательностей показывают экземпляры классов или интерфейсов компонентов. Существует два способа именования линии жизни.
Для этого |
Используйте этот формат |
Анонимный экземпляр типа. Используйте его, если для каждого типа имеется только одна линия жизни. |
typeName |
именованный экземпляр типа. Используйте его, если необходимо показать последовательность, включающую несколько экземпляров одного типа. |
objectName:typeName |
Из уже определенных классов (например, на схеме классов) можно создавать новые линии жизни.
Примечание |
Прежде всего убедитесь, что в системе имеется схема последовательностей. |
- или -
Отобразится новая линия жизни с именованным экземпляром. Типом этой линии жизни является перемещенный тип.
Примечание |
Это действие можно повторять неограниченное количество раз.Это позволяет создать линии жизни с разными именами экземпляров. |
Создав одну или несколько схем последовательностей, можно обобщить линии жизни, создавая из них классы или интерфейсы.
В Проводнике по моделям UML отображается новый класс или интерфейс.
Новый класс или интерфейс имеет операции для каждого выделенного сообщения.
Имя операции отображается под стрелкой каждого сообщения и в свойстве сообщения Операция.
Если сообщение включает параметры в форме "(параметр : тип)", они отобразятся в списке параметров новой операции.
Примечание |
Если в схему последовательностей добавляются новые сообщения, этот шаг необходимо повторить. |
Класс или интерфейс появится на схеме классов.
- или -
Интерфейс отображается в компоненте в качестве обозначения без описания операций.
В сообщения на схеме последовательностей можно включить параметры. UML-схему классов можно использовать для описания типов параметров.
Создание последовательностей взаимодействия с возможностью повторного использования
Для описания последовательности можно использовать отдельную схему, которая содержит подробные сведения, которые необходимо отделить от других, либо сведения, относящиеся к нескольким схемам.
На одной схеме можно создать прямоугольник использования взаимодействия (12), указывающий на подробные сведения на другой схеме.
Дважды щелкните использование взаимодействия, чтобы открыть связанную с ним схему последовательностей.
Использование взаимодействия отображается напротив выбранных линий жизни на схеме последовательностей.
- или -
Напишите имя в качестве вызова функции, укажите параметры.
Щелкните Создать новую последовательность, чтобы создать новую схему последовательностей.
- или -
Щелкните Связать с последовательностью, чтобы связать использование с существующей схемой.
Visual Studio создает связь между использованием взаимодействия и новой последовательностью взаимодействия.
В решении отображается новая схема последовательностей. На ней отображаются линии жизни, с помощью которых было создано использование взаимодействия.
Примечание |
Отображаются только те линии жизни, с помощью которых было создано использование взаимодействия. На новой схеме не будут отображаться линии жизни, созданные после использования взаимодействия, даже если использование взаимодействия включает эти линии. |
Visual Studio:
- или -
Щелкните использование взаимодействия правой кнопкой мыши и выберите Перейти к последовательности.
Можно создать использование взаимодействия, не связывая его с другой схемой. Его можно использовать в качестве заполнителя части последовательности, подробные сведения о которой еще предстоит уточнить. Используйте имя использования взаимодействия, чтобы обозначить желаемый результат.
Сворачивание групп линий жизни
Можно свернуть несколько линий жизни, чтобы группа отображалась, как одна линия. Так можно визуально представить группу объектов как один компонент. Сообщения и использования взаимодействий между линиями жизни свернутой группы скрыты. Сообщения и последовательности взаимодействий, включающие другие линии жизни, отображаются.
Несколько линий жизни заменяются одной.
Сообщения и использования взаимодействия, включающие только членов этой группы, не отображаются.
Примечание |
Если развернуть группу, имя группы будет утеряно. |
Примечание |
Имя группы будет утеряно, равно как и любые ссылки группы на комментарии или рабочие элементы. |
Описание структур управления с помощью фрагментов
Для определения циклов, ветвей и параллельной обработки на схеме последовательностей можно использовать объединенные фрагменты (13).Эти сведения можно отобразить и на схеме активности. Схема активности позволяет показать сообщения, которыми обмениваются субъекты, менее наглядно, но иногда с помощью схемы активности можно более эффективно представить циклы, ветви и параллелизм.
Примечание |
Выделите стрелки сообщений, а не вхождения выполнения, на которые указывают сообщения. |
Отображается новый фрагмент. В нем содержатся выбранные сообщения.
Если тип объединенного фрагмента допускает наличие нескольких фрагментов, отображается также пустой фрагмент.
Условие используется для определения требований к ветви или циклу.
Создание схем последовательностей из кода
В файле кода Visual C# или Visual Basic можно создать схему последовательностей из определения метода.
Созданная схема последовательностей во многом схожа со схемой последовательностей, созданной в проекте моделирования. Однако элементы в созданной схеме последовательностей не отображаются в Проводнике по моделям UML.
Примечание |
После создания схемы любые изменения, вносимые в схему, не отображаются в коде, а любые изменения, вносимые в код, не отображаются на схеме. Чтобы отобразить эти изменения, необходимо создать новую схему последовательностей. Можно создавать новую схему последовательностей неограниченное число раз, используя тот же метод. |
Можно перейти от линий жизни и сообщений к определениям в коде классов и методов, которые они представляют.
Копирование созданных последовательностей в UML-модель
Можно копировать линии жизни, сообщения и другие части созданной последовательности на схему последовательностей проекта моделирования.
Копии выделенных элементов отображаются на схеме.
Вариант выбирается согласно номеру в журнале (спросить у старосты группы);
Отчет и исходные коды запаковать в архив с названием по следующему шаблону:
Lab2.4-«группа, абревиатру на латинице»-«Фамилия на латинице»
Пример: Lab2.4-10CN-Ivanov.zip
Полоцкий государственный университет
Кафедра ВС и С
012
Методические указания
для выполнения
лабораторной работы № 2.4
по курсу ООП
«Visual Studio 2010
UML моделирования проектов»
Диаграмма деятельности и последовательности