Опишите поведение системы Используя диаграммы последовательности

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

Можно использовать диаграммы последовательности в System Composer™ путем доступа к галерее Architecture Views. Диаграммы последовательности интегрированы с моделями архитектуры. Для получения дополнительной информации о том, как создать и использовать диаграммы последовательности с архитектурной моделью, видит Диаграммы последовательности Использования с Моделями Архитектуры.

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

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

  • Включайте фрагменты и операнды с ограничениями, чтобы далее задать поведение взаимодействия.

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

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

Примечание

Пример светофора использует блоки из Stateflow®. Если у вас нет лицензии Stateflow, можно открыть и симулировать модель, но можно только внести основные изменения, такие как изменение параметров блоков.

An architectural model and a sequence diagram with a lifeline, operand, message, and fragment.

Откройте модель

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

Добавьте пути выживания и сообщения

  1. Откройте галерею Architecture Views путем навигации к Modeling> Architecture Views.

  2. Чтобы создать новую диаграмму последовательности, нажмите New> Sequence Diagram.

  3. Новая диаграмма последовательности под названием SequenceDiagram1 создается в Браузере Представления, и вкладка Sequence Diagram становится активной. Под Element Properties переименуйте диаграмму последовательности Inhibit.

  4. Выберите Component> Add Lifeline, чтобы добавить путь выживания. Новый путь выживания без имени создается и обозначается пунктирной линией.

    A new lifeline being created in a sequence diagram.

  5. Кликните по стрелке вниз и выберите source. source путь выживания обнаруживает, когда пешеход нажимает пересекающуюся кнопку. Добавьте еще четыре пути выживания с помощью стрелки вниз под названием pollerSwitchКонтроллер, и lampController. poller путь выживания проверяет, была ли кнопка пешеходного перехода нажата, switch обрабатывает сигнал, controller определяет, какой цвет пешеходная лампа и светофор должны отобразить, и lampController изменяет цвета светофора.

    A sequence diagram with five lifelines.

  6. Чертите линию от source путь выживания к poller путь выживания. Начните вводить sw в поле To, которое автоматически заполнит при печати. Если текст заполнил, выберите sw.

    A sequence diagram with a message between the source and poller lifelines.

    Начиная с switchout порт и sw порт соединяется в модели, сообщение создается из switchout порт к sw порт в диаграмме последовательности.

  7. Метка сообщения имеет триггер и ограничение. Триггер определяет, происходит ли сообщение, и ограничение определяет, допустимо ли сообщение. Для сообщений сигнала триггер называется edge.

    Можно ввести условие, которое задает ребро инициирования с направлением и выражением. Можно также опционально добавить ограничение в квадратных скобках к сообщению. Ограничения состоят из MATLAB® Булево выражение, действующее на входные параметры целевого пути выживания.

    direction(signalPort(+|-)positiveReal)[booleanExpression]

    Существует три направления для ребер:

    • crossing — Выражение ребра или повышается или падает мимо нуля.

    • rising — Выражение ребра повышается от строго ниже нуля до значения, равного или больше, чем нуль.

    • falling — Выражение ребра падает от строго ниже нуля до значения, равного или меньше, чем нуль.

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

    rising(sw-1)[sw==1]

    Сообщение будет инициировано когда sw предупредите повышается с ниже 1 к значению 1 или выше. Ограничение в квадратных скобках указывает на это если sw не равно 1, сообщение недопустимо.

    Примечание

    Только целевые элементы поддерживаются для меток сообщения. В этом примере, switchout исходный элемент и не может быть включен.

    A sequence diagram with a message condition between the source and poller lifelines.

    Имя сигнала sw допустимые входные данные на порте для поведения диаграммы Stateflow. poller компонент с поведением диаграммы состояний имеет sw в панели Symbols.

    State chart behavior with the sw value displayed in the Symbols pane.

    Примечание

    Имя сигнала может также быть элементом данных в интерфейсе данных на порте. Введите Tab, чтобы автоматически заполнить имена элемента данных и порт. Для получения дополнительной информации смотрите, Представляют Системное Взаимодействие Используя Диаграммы последовательности.

    В этом примере, когда sw сигнал становится 1, кнопка пешеходного перехода была нажата, и сообщение к poller путь выживания распознан.

  8. Кроме того, чтобы сигнализировать о событиях, диаграммы последовательности также поддерживают события сообщения. Создайте сообщение, чертя линию от poller путь выживания к switch путь выживания. Начните вводить switchEvent в поле To до switchEvent доступно для выбора.

    A selected message event switch event for the message ends of the message between the poller and switch lifelines.

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

  9. Кликните по сообщению и дважды кликните пустую метку сообщения, которая появляется. Введите это условие, представляющее порт и ограничение.

    switchEvent[switchEvent==1]

    Sequence diagram with a message constraint and a condition for a message event switch event.

    Когда сообщение switchEvent получен и его значением является 1, сообщение произошло и допустимо.

Добавьте фрагменты и операнды

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

Получить доступ к меню фрагментов:

  1. Перетащите, чтобы выбрать два сообщения.

    Two messages are selected with blue highlighting in a sequence diagram.

  2. Сделайте паузу на знаке (...), который, кажется, получает доступ к строке меню.

    An ellipsis displays in the lower right part of the sequence diagram.

  3. Список составных фрагментов появляется:

    • Alt Fragment

    • Opt Fragment

    • Loop Fragment

    • Seq Fragment

    • Strict Fragment

    • Par Fragment

    Выберите Alt Fragment.

    The Alt Fragment is selected in a list of composite fragments.

  4. Alt Fragment фрагмент добавляется к диаграмме последовательности с одним операндом, который содержит выбранные сообщения.

    The alt fragment appears in the sequence diagram.

  5. Выберите фрагмент, чтобы ввести условие операнда. Выберите полностью определенное имя для входных данных и используйте ограничительное отношение условия.

    switch/inhibit==0

    Ограничение является предусловием, которое определяет, когда операнд активен. Это ограничение указывает что inhibit флаг установлен в 0. Таким образом пешеходный переход позволен на этом пересечении с помощью пешеходной лампы.

    The Alt Fragment displays an operand condition.

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

  6. Подсветите первый операнд под Alt Fragment фрагмент и выбирает Fragment> Add Operand> Insert After. Добавляется второй операнд.

    Добавьте ограничительное отношение условия к второму операнду. Второй операнд в Alt Fragment фрагмент представляет elseif условие, для которого будет выполняться сообщение.

    switch/inhibit==1

    Это условие представляет когда inhibit флаг установлен в 1. Таким образом пешеходным переходом не управляет сигнал обхода на том пересечении.

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

    The second Alt Fragment operand displays a constraint condition.

    Для первого альтернативного операнда, начиная с inhibit флаг установлен в 0, первое сообщение к controller путь выживания распознан когда pedRequest сообщение активируется. Затем когда switchPed обменивайтесь сообщениями значением является 1, lampController путь выживания заставит пешеходную лампу стать зеленой.

    Для второго альтернативного операнда, начиная с inhibit флаг установлен в 1, switch обходит controller, и сообщение switchPed со значением 2 переходит непосредственно к lampcontroller. switchPed передайте значение 2 не влияет на сигнал трафика.

Пример светофора для диаграмм последовательности

Этот пример светофора содержит диаграммы последовательности, чтобы описать пешеходов, пересекающих пересечение. Модель описывает эти шаги:

  1. Циклы сигнала трафика от красного до желтого к зеленому.

  2. Когда кнопка пешеходного перехода нажимается, если сигнал трафика является зеленым, переходы сигнала трафика от желтого до красного на ограниченный срок.

  3. Пешеходы пересекаются, в то время как сигнал обхода активен.

Откройте модель System Composer, которая содержит диаграммы последовательности.

model = systemcomposer.openModel('TLExample');

Откройте галерею Architecture Views, чтобы просмотреть диаграммы последовательности.

openViews(model)

Диаграммы последовательности в этом примере представляют действующие сценарии в модели архитектуры.

1. PressDetection диаграмма последовательности: пешеход нажимает кнопку пешеходного перехода и sw сигнала повышения к 1. poller путь выживания активируется, и switchEvent сообщение происходит на switch путь выживания, чтобы изменить сигналы трафика позволить пешеходу пересекаться.

2. SignalSequence диаграмма последовательности: пешеход нажимает кнопку пешеходного перехода и sw сигнала повышения к 1. После некоторых посреднических событий, lampController путь выживания передает trigger предупредите к ped lamp путь выживания, чтобы изменить пешеходные цвета трафика лампы от RED (остановка) к GREEN (пойдите), позволив пешеходам пересечься.

3. PedestrianCross диаграмма последовательности: Во-первых, traffic значением является 3, который указывает, что цвет светофора является зеленым. Циклы светофора от желтого (2) к красному (1) к зеленому (3) и снова. Когда кнопка пешеходного перехода нажимается и controller путь выживания распознает допустимый pedRequest обменивайтесь сообщениями, лампа трафика изменяется от желтого (2) к красному (1), который позволяет пешеходам пересекаться. Затем основной цикл продолжается.

4. Inhibit диаграмма последовательности: inhibit флаг определяет, настраивается ли кнопка пешеходного перехода для пешеходов, чтобы нажать, чтобы управлять сигналом лампы трафика на пересечении и кресте. Когда inhibit установлен в 0, пересекающаяся кнопка существует. Когда inhibit установлен в 1, пересекающаяся кнопка не существует. switchEvent значением является 1, который указывает, что пешеходы хотели бы пересечься. Однажды switchEvent значение установлено к 1, если inhibit 0, controller путь выживания распознает pedRequest обменивайтесь сообщениями, чтобы инициировать изменение в пешеходном цвете лампы. Кроме того, switchPed значением является 1, таким образом, лампа трафика изменится от желтого до красного. В противном случае, если inhibit 1, switchPed значением является 2, таким образом, лампа трафика продолжит нормальное функционирование и не превратится в красный, чтобы в частности позволить пешеходам пересекаться.

Симулируйте модель архитектуры

Можно выполнить модель после установки этих переменных.

createWorkSpaceVar("SwitchInputs",[0 11 18],[-1 1 -1]);
createWorkSpaceVar("inhibitFlag",1,0);

Похожие темы