Согласно конечному автомату, указанному ниже в главе 9.3.3.6 Переход 011-C документа Точная семантика конечных автоматов UML от OMG, можно определить локальный переход отподсостояние до содержащего состояния.
Но что делает этот локальный переход T1.3 при его выполнении?Я предположил, что состояние S1.2 оставлено, и после этого применяется запись состояния S1 по умолчанию, следовательно, выполняется переход T1.1 и, наконец, вводится состояние S1.1.
Однако, переход кТаблица шагов завершения этой главы показывает, что после выполнения перехода 1.3 генерируется событие завершения CE, и, таким образом, состояние S1 покидается переходом T3:
Это меня озадачило, так как спецификация UML 2.5.1 в главе 14.2.3.8.3 гласит: переходы завершения и события завершения , что событие завершения составного состояния, такого как S1, имеет видгенерируется, только если все его ортогональные области достигли конечного состояния.Это, конечно, не относится к конечному автомату, показанному выше.
Теперь, какое поведение является правильным?Может быть, таблица шагов от запуска к завершению неверна?