UML обща нотация на задействане

Каква е нотацията за общ тригер в UML държавна машина? Какво ще кажете за множество общи задействания?

Да кажем, че имаме държавна машина с 20 състояния. 18 от тези състояния имат общ тригер, който ще премине към състояние_A. Друг често срещан тригер би преминал към State_D.

Каква е графичната нотация за това? всеки пример ще бъде оценен.

С уважение, Оле

РЕДАКТИРАНЕ

Това валидна нотация ли е?

въведете описание на изображението тук


person Ole Tetzschner    schedule 13.01.2015    source източник
comment
Благодаря xmojmr, но това валидна нотация ли е?   -  person Ole Tetzschner    schedule 13.01.2015
comment
Това е добър въпрос. Нека изчакаме добър отговор (необходими са 24 часа, за да завъртите въпроса си по целия свят). За мен изглежда подозрително, защото initial pseudostate/entry point pseudostate трябва да бъде ограничен, тъй като може да има най-много един начален връх в даден регион/Във всеки регион на държавната машина или съставно състояние има най-много един преход към връх в рамките на същия регион. В момента дори нямам съвет за подходящи ключови думи в Google   -  person xmojmr    schedule 13.01.2015


Отговори (3)


Номерът е да разложите проблема на йерархични държавни машини (вижте също Wikipedia: UML state machine → Йерархично вложени състояния) със състояния на подмашини и съставни състояния и т.н., както можете да видите по-долу в примерите, взети от онлайн книгата на Кирил Фахрутдинов

uml-диаграми. org: банков банкомат, пример за диаграма на UML State Machine

въведете описание на изображението тук

uml- diagrams.org: Състояния на нишките и жизнен цикъл на Java 6, Пример за диаграма на машина за състояние на UML протокол

въведете описание на изображението тук

person xmojmr    schedule 13.01.2015
comment
Благодаря за вашият отговор. Можете ли да проверите нотацията в моята редактирана публикация? - person Ole Tetzschner; 13.01.2015

Вашата нотация е валидна. Той използва входни точки и това е добре. Моля, имайте предвид, че има различни варианти на нотация за входни точки. Като алтернатива на входните точки можете също да използвате преходи, които са насочени директно към подсъстоянията. Ето вашия "опростен" пример:

въведете описание на изображението тук

Между другото, този пример е изграден с отворен код Yakindu Statechart Tools. Той осигурява вградена симулация - така че можете интерактивно да изпълнявате диаграмите на състоянията.

person Axel T.    schedule 27.04.2015

Използвайте свързващ елемент. Възел се използва, когато много преходи водят до едно състояние. Това прави диаграмата на държавната машина ясна. Прочетете UML Superstructure, част StateMachine subpart псевдосъстояния.

Пример за диаграма на състоянието с елемент Junction:

въведете описание на изображението тук

person Vladimir    schedule 14.01.2015
comment
Благодаря Владимир, но с кръстовището все още трябва да начертая преход от почти всички състояния. Ако имам над 20 щата, ще бъде графична бъркотия. Ако е възможно да се начертае този общ тригер с един преход, графиките ще бъдат по-лесни за четене/разбиране. Някакви решения на този проблем? - person Ole Tetzschner; 15.01.2015
comment
Страхувам се, че няма специализиран елемент за проектиране на изрично целево състояние, но следното решение може да е подходящо. Ако всички ваши състояния са подсъстояния на едно родителско състояние, родителското състояние може да се свърже чрез преход, започнал от ръба на родителското състояние към състоянието, от което се нуждаете от адрес от всички подсъстояния. Всеки път, когато поведението вътре в родителското състояние достигне FinalState, преходът, който описах по-горе, ще бъде активиран и ще започне да изпълнява целевото състояние. Но е необходимо да се създаде преход към крайно състояние и от всяко състояние вътре в родителя, или добавете колкото се може повече крайни състояния необходимо близо до щат. - person Vladimir; 16.01.2015
comment
@Vladimir можеш ли да визуализираш своето решение, приложено към примера State_A, State_B, State_C във въпроса на OP? Или си го визуализирайте на някакъв друг пример, наподобяващ оригиналния проблем с state-machine с 20 състояния. 18 от тези състояния имат общ тригер...? - person xmojmr; 21.01.2015