Почему бы тебе просто не разобрать их? Вот еще одна идея о том, как вы могли бы смоделировать это (если я правильно понял):
состояние «Старт», которое содержит состояния, которые вы называете А. Старт и Б. Старт в параллельных регионах (вы можете использовать здесь разветвление / соединение или просто полагаться на поведение по умолчанию для всех регионов, являющихся активируется при входе в состояние «Старт»)
другое состояние «Doing», которое содержит регион с вашим состоянием «A.Ready», и другой параллельный регион, который содержит два состояния «B.DoingX» и «B.DoingY».
Если вам действительно необходимо иметь общее состояние «DoingX», то вам, возможно, придется создать два состояния, соответствующих A.Ready.
В любом случае, в более широкой перспективе: я полагаю, что ваша точка зрения здесь немного отличается, когда вы говорите, что «Система в состоянии ...». Скорее, система, моделируемая таким конечным автоматом, находится в наборе состояний. Поэтому, как правило, я был бы совершенно счастлив сказать, что «система в настоящее время находится в A.Ready и B.DoingX».
Может быть, все, что вам нужно, это изменение терминологии. Как насчет этого:
Система находится в конфигурации"DoingX", когда активны состояния A.Ready и B.DoingX?
В ответ на комментарий: Да, это стандарт, вот соответствующая часть из спецификации надстройки (бета-версия 2.4):
В иерархическом автомате может быть активным более одного состояния одновременно. [...] текущее активное «состояние» фактически представлено множеством деревьев состояний
начиная с самых верхних состояний корневых областей до самого внутреннего активного подсостояния. Мы ссылаемся на такое дерево состояний как
состояние конфигурации .