2015-01-13 4 views
1

Какая запись используется для общего триггера в конечной машине UML? Как насчет нескольких общих триггеров?UTC общая нотация триггера

Предположим, у нас есть государственная машина с 20 состояниями. 18 из этих состояний имеют общий триггер, который будет переход к State_A. Другим общим триггером будет переход на State_D.

Какая графическая нотация обозначена для этого? любой пример был бы оценен.

С наилучшими пожеланиями, Оле

EDIT

Является ли это действительным нотации?

enter image description here

+0

Спасибо xmojmr, но это действительная нотация? –

+0

Это хороший вопрос. Давайте подождем хороший ответ (для поворота вашего вопроса по всему миру требуется 24 часа). Для меня это выглядит подозрительно, потому что псевдоресурс начальной псевдодальности/точки входа должен быть ограничен как «_ может быть не более одной начальной вершины в области/В каждой области конечного автомата или составного состояния он имеет не более одного перехода к вершина в том же регионе ». Прямо сейчас у меня даже нет подсказки для подходящих ключевых слов Google. – xmojmr

ответ

1

Хитрости заключается в том, чтобы разложить проблему на иерархические автоматы (см также Wikipedia: UML state machine → Hierarchically nested states) с автоматчиками состояниями и композитными состояниями и т.д., как вы можете увидеть ниже в примерах, взятых из онлайн книг Кирилла Fakhroutdinov в

uml-diagrams.org: Bank ATM, UML State Machine Diagram Example

enter image description here

uml-diagrams.org: Java 6 Thread States and Life Cycle, UML Protocol State Machine Diagram Example

enter image description here

+0

Спасибо за ваш ответ. Можете ли вы проверить нотацию в моем отредактированном сообщении? –

0

Применение спая элемента. Соединение используется, когда много переходов приводит к одному состоянию. Это делает диаграмму состояния машины прозрачной. Прочитайте UML Superstructure, часть StateMachine подстать псевдостаты.

Пример диаграммы состояний с Junction элемента:

enter image description here

+1

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

+0

Я боюсь, что не существует специализированного элемента для создания явного состояния цели, но подходящее решение может быть подходящим. Если все ваши состояния являются подстанциями одного родительского состояния, родительское состояние может быть связано путем перехода с начала к краю родительского состояния, чтобы указать, что вам нужен адрес из всех подстанций. Всякий раз, когда поведение внутри родительского состояния достигло FinalState, описанный выше переход будет активирован и начнет выполнение целевого состояния. Но необходимо также создать переход к конечному состоянию из каждого состояния внутри родителя, или добавить столько конечных состояний, сколько необходимо близко к государствам. – Vladimir

+0

@ Vladimir вы можете визуализировать свое решение, примененное к State_A, State_B, State_C примеру в вопросе OP? Или визуализируйте его на каком-то другом примере, напоминающем исходную проблему с «_state-machine с 20 состояниями. 18 из этих состояний имеют общий триггер ..._»? – xmojmr

1

Ваше обозначение является действительным. Он использует точки входа, и это нормально. Имейте в виду, что существуют разные варианты обозначения для точек входа. В качестве альтернативы входным точкам вы также можете использовать переходы, которые непосредственно нацелены на подстанции. Вот ваш «упрощенный» пример:

enter image description here

Кстати, этот пример построен с открытым исходным кодом Yakindu Statechart Tools. Он обеспечивает сборку в симуляции - так что вы можете интерактивно выполнять графические карты состояния.

 Смежные вопросы

  • Нет связанных вопросов^_^