sequence diagram является схемой поведения, которая представляет взаимодействие между структурными элементами архитектуры как последовательность обменов сообщениями. Можно использовать диаграммы последовательности, чтобы описать, как части статической системы взаимодействуют.
Можно использовать диаграммы последовательности в System Composer™ путем доступа к галерее Architecture Views. Диаграммы последовательности интегрированы с моделями архитектуры. Для получения дополнительной информации о том, как создать и использовать диаграммы последовательности с архитектурной моделью, видит Диаграммы последовательности Использования с Моделями Архитектуры.
В этом примере вы узнаете об основной терминологии и функциях диаграммы последовательности на двух этапах.
Добавьте пути выживания и сообщения с метками сообщения включая триггеры и ограничения, чтобы представлять взаимодействия.
Включайте фрагменты и операнды с ограничениями, чтобы далее задать поведение взаимодействия.
Путь выживания в диаграмме последовательности представляет компонент в архитектуре. Сообщение представляет коммуникацию через путь между исходным путем выживания и целевым путем выживания. Путь для сообщения должен состоять по крайней мере из двух портов и одного коннектора из модели архитектуры. С вложенными сообщениями путь является более комплексным из-за иерархии, по которой переместятся.
Этот рисунок показывает модель архитектуры светофора и соответствующую диаграмму последовательности, которая описывает один действующий сценарий. Модель светофора описывает циклически повторяющийся светофор, кнопка пешеходного перехода, нажимаемая, и световые сигналы, изменяющиеся, таким образом, пешеходы могут пересечься.
Примечание
Пример светофора использует блоки из Stateflow®. Если у вас нет лицензии Stateflow, можно открыть и симулировать модель, но можно только внести основные изменения, такие как изменение параметров блоков.
Этот пример показывает пример светофора, который содержит диаграммы последовательности, чтобы описать пешеходов, пересекающих пересечение. Используйте этот пример, чтобы создать ваши собственные диаграммы последовательности.
Откройте галерею Architecture Views путем навигации к Modeling> Architecture Views.
Чтобы создать новую диаграмму последовательности, нажмите New> Sequence Diagram.
Новая диаграмма последовательности под названием SequenceDiagram1
создается в Браузере Представления, и вкладка Sequence Diagram становится активной. Под Element Properties переименуйте диаграмму последовательности Inhibit
.
Выберите Component> Add Lifeline, чтобы добавить путь выживания. Новый путь выживания без имени создается и обозначается пунктирной линией.
Кликните по стрелке вниз и выберите source
. source
путь выживания обнаруживает, когда пешеход нажимает пересекающуюся кнопку. Добавьте еще четыре пути выживания с помощью стрелки вниз под названием poller
Switch
Контроллер
, и lampController
. poller
путь выживания проверяет, была ли кнопка пешеходного перехода нажата, switch
обрабатывает сигнал, controller
определяет, какой цвет пешеходная лампа и светофор должны отобразить, и lampController
изменяет цвета светофора.
Чертите линию от source
путь выживания к poller
путь выживания. Начните вводить sw
в поле To, которое автоматически заполнит при печати. Если текст заполнил, выберите sw
.
Начиная с switchout
порт и sw
порт соединяется в модели, сообщение создается из switchout
порт к sw
порт в диаграмме последовательности.
Метка сообщения имеет триггер и ограничение. Триггер определяет, происходит ли сообщение, и ограничение определяет, допустимо ли сообщение. Для сообщений сигнала триггер называется edge.
Можно ввести условие, которое задает ребро инициирования с направлением и выражением. Можно также опционально добавить ограничение в квадратных скобках к сообщению. Ограничения состоят из MATLAB® Булево выражение, действующее на входные параметры целевого пути выживания.
direction(signalPort(+|-)positiveReal)[booleanExpression]
Существует три направления для ребер:
crossing
— Выражение ребра или повышается или падает мимо нуля.
rising
— Выражение ребра повышается от строго ниже нуля до значения, равного или больше, чем нуль.
falling
— Выражение ребра падает от строго ниже нуля до значения, равного или меньше, чем нуль.
Нажмите на сообщение и дважды кликните на пустой этикетке сообщения, которая появляется. Введите это условие и ограничение.
rising(sw-1)[sw==1]
Сообщение будет инициировано когда sw
предупредите повышается с ниже 1
к значению 1
или выше. Ограничение в квадратных скобках указывает на это если sw
не равно 1
, сообщение недопустимо.
Примечание
Только целевые элементы поддерживаются для меток сообщения. В этом примере, switchout
исходный элемент и не может быть включен.
Имя сигнала sw
допустимые входные данные на порте для поведения диаграммы Stateflow. poller
компонент с поведением диаграммы состояний имеет sw
в панели Symbols.
Примечание
Имя сигнала может также быть элементом данных в интерфейсе данных на порте. Введите Tab, чтобы автоматически заполнить имена элемента данных и порт. Для получения дополнительной информации смотрите, Представляют Системное Взаимодействие Используя Диаграммы последовательности.
В этом примере, когда sw
сигнал становится 1
, кнопка пешеходного перехода была нажата, и сообщение к poller
путь выживания распознан.
Кроме того, чтобы сигнализировать о событиях, диаграммы последовательности также поддерживают события сообщения. Создайте сообщение, чертя линию от poller
путь выживания к switch
путь выживания. Начните вводить switchEvent
в поле To до switchEvent
доступно для выбора.
С тех пор существует существующая связь в модели архитектуры, сообщение создается из исходного порта switchEvent
.
Кликните по сообщению и дважды кликните пустую метку сообщения, которая появляется. Введите это условие, представляющее порт и ограничение.
switchEvent[switchEvent==1]
Когда сообщение switchEvent
получен и его значением является 1
, сообщение произошло и допустимо.
Можно использовать фрагменты, чтобы описать более комплексные последовательности, такие как альтернативы. Фрагменты имеют один или несколько операндов в зависимости от вида фрагмента. Операнды могут содержать сообщения и дополнительные фрагменты. Можно описать предусловие операнда как Булево выражение MATLAB с помощью входных параметров любого пути выживания.
Получить доступ к меню фрагментов:
Перетащите, чтобы выбрать два сообщения.
Сделайте паузу на знаке (...), который, кажется, получает доступ к строке меню.
Список составных фрагментов появляется:
Alt Fragment
Opt Fragment
Loop Fragment
Seq Fragment
Strict Fragment
Par Fragment
Выберите Alt Fragment
.
Alt Fragment
фрагмент добавляется к диаграмме последовательности с одним операндом, который содержит выбранные сообщения.
Выберите фрагмент, чтобы ввести условие операнда. Выберите полностью определенное имя для входных данных и используйте ограничительное отношение условия.
switch/inhibit==0
Ограничение является предусловием, которое определяет, когда операнд активен. Это ограничение указывает что inhibit
флаг установлен в 0
. Таким образом пешеходный переход позволен на этом пересечении с помощью пешеходной лампы.
Сообщения в операнде могут только быть выполнены, если ограничительное условие верно.
Подсветите первый операнд под Alt Fragment
фрагмент и выбирает Fragment> Add Operand> Insert After. Добавляется второй операнд.
Добавьте ограничительное отношение условия к второму операнду. Второй операнд в Alt Fragment
фрагмент представляет elseif
условие, для которого будет выполняться сообщение.
switch/inhibit==1
Это условие представляет когда inhibit
флаг установлен в 1
. Таким образом пешеходным переходом не управляет сигнал обхода на том пересечении.
Создайте сообщение с меткой сообщения во втором операнде.
Для первого альтернативного операнда, начиная с inhibit
флаг установлен в 0
, первое сообщение к controller
путь выживания распознан когда pedRequest
сообщение активируется. Затем когда switchPed
обменивайтесь сообщениями значением является 1
, lampController
путь выживания заставит пешеходную лампу стать зеленой.
Для второго альтернативного операнда, начиная с inhibit
флаг установлен в 1
, switch
обходит controller
, и сообщение switchPed
со значением 2
переходит непосредственно к lampcontroller
. switchPed
передайте значение 2
не влияет на сигнал трафика.
Этот пример светофора содержит диаграммы последовательности, чтобы описать пешеходов, пересекающих пересечение. Модель описывает эти шаги:
Циклы сигнала трафика от красного до желтого к зеленому.
Когда кнопка пешеходного перехода нажимается, если сигнал трафика является зеленым, переходы сигнала трафика от желтого до красного на ограниченный срок.
Пешеходы пересекаются, в то время как сигнал обхода активен.
Откройте модель 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);