Поделиться через


Описание потока управления с использованием фрагментов на схемах последовательностей UML

На UML-схеме последовательностей в Visual Studio Ultimate объединенные фрагменты позволяют показывать циклы, ветви и другие альтернативные элементы.

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

Примечание

Этот раздел посвящен фрагментам на схемах последовательностей.Дополнительные сведения о чтении UML-схем последовательностей см. в разделе UML-схемы последовательностей: справочные материалы.Дополнительные сведения о создании UML-схем последовательностей см. в разделе UML-схемы последовательностей: правила работы.

Объединенный фрагмент с двумя операндами взаимодействия

На рисунке показаны следующие элементы.

  1. Объединенный фрагмент. Существует несколько видов объединенных фрагментов. В этом примере представлен объединенный фрагмент Alt, который можно использовать, чтобы показать, что возможны другие последовательности сообщений.

  2. Операнды взаимодействия. Каждый объединенный фрагмент содержит хотя бы один операнд взаимодействия, который может содержать сообщения, использования взаимодействий и более мелкие объединенные фрагменты. В этом примере объединенный фрагмент Alt имеет два операнда взаимодействия, которые показывают две альтернативные последовательности сообщений.

  3. Можно выделить каждый операнд взаимодействия отдельно, щелкнув внутри него. В этом примере выделен верхний операнд взаимодействия, так что можно видеть его границу. Как правило, видна только разделительная линия между операндами взаимодействия.

    Примечание

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

  4. Условия. Каждому операнду взаимодействия можно предоставить условие. Это условие описывает требования, при соблюдении которых выполняются сообщения внутри операнда взаимодействия.

Создание объединенных фрагментов

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

Создание объединенного фрагмента

  1. Выделите одно сообщение или последовательность сообщений, начинающихся на одной линии жизни или вхождении выполнения.

    Примечание

    При выборе более одного сообщения они должны составлять непрерывную последовательность.

  2. Щелкните правой кнопкой мыши одно из сообщений, выберите Разместить во фрагменте, затем щелкните необходимый вид объединенного фрагмента, например Объединенный фрагмент Alt.

    Отображается новый объединенный фрагмент. Заголовок указывает вид выделенного объединенного фрагмента, например Alt.

    Внутри объединенного фрагмента имеется фрагмент, который содержит выделенное сообщение.

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

Добавление нового операнда взаимодействия в объединенный фрагмент

  1. Щелкните правой кнопкой мыши пустое пространство внутри операнда взаимодействия (2) за пределами содержащихся в операнде фрагментов и под заголовком объединенного фрагмента.

  2. Выберите Добавить.

  3. Щелкните Операнд взаимодействия до или Операнд взаимодействия после.

  4. Чтобы добавить сообщения в новый операнд взаимодействия, можно воспользоваться средствами создания сообщений или скопировать и вставить существующие сообщения.

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

Задание условия для операнда взаимодействия

  1. Щелкните пустое пространство внутри операнда взаимодействия (2) за пределами входящих в его состав фрагментов.

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

    Заголовок в окне Свойства отображает Операнд взаимодействия.

  2. Введите условие.

    Оно отобразится рядом с верхней частью фрагмента (4).

Можно задавать свойства определенных видов объединенных фрагментов.

Задание или просмотр свойств объединенного фрагмента

  • Щелкните правой кнопкой мыши название объединенного фрагмента и выберите пункт Свойства.

    Примечание

    Разные виды объединенных фрагментов имеют разные свойства.

Виды объединенных фрагментов

Фрагменты, описывающие поток управления

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

Тип фрагмента

Описание

Opt

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

Alt

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

Можно задать условие для каждого фрагмента, чтобы указать, при соблюдении каких требований он выполняется. Условие else указывает, что фрагмент должен выполняться, если ни одно из остальных условий не имеет значение true. Если все условия имеют значение false, а условие else не задано, не выполняется ни один из фрагментов.

Loop

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

Объединенные фрагменты Loop имеют свойства Min и Max, обозначающие минимальное и максимальное число возможных повторений фрагмента. По умолчанию ограничение не задано.

Break

Если этот фрагмент выполняется, остальные фрагменты последовательности ликвидируются. Чтобы указать требования, при соблюдении которых выполняется этот тип фрагмента, можно воспользоваться условием.

Par

Параллельный. События во фрагментах могут чередоваться.

Critical

Используется с фрагментом Par или Seq. Указывает, что сообщения в этом фрагменте не следует чередовать с другими сообщениями.

Seq

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

Strict

Существует два или более фрагментов операнда. Фрагменты должны использоваться в заданном порядке.

Фрагменты, определяющие способ интерпретации последовательности

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

Чтобы изменить эту интерпретацию, можно использовать следующие типы фрагментов.

Тип фрагмента

Описание

Consider

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

Задайте список в свойстве Сообщения.

Ignore

Список сообщений, не описываемых этим фрагментом. Они могут иметь место в запущенной системе, но они не существенны для целей данного описания.

Задайте список в свойстве Сообщения.

Assert

Фрагмент операнда задает только допустимые последовательности. Обычно используется внутри фрагмента Consider или Ignore.

Neg

Последовательность, показанная в этом фрагменте, не должна иметь место. Обычно используется внутри фрагмента Consider или Ignore.

См. также

Ссылки

UML-схемы последовательностей: справочные материалы

Основные понятия

UML-схемы последовательностей: правила работы

Практическое руководство. Изменение модели и схем UML