406
UML SysML и пр. / Re: Внутренний переход параллельного композитного состояния
« : 23 Июня 2016, 12:08:14 »В общем случае - не менее одного перехода. Причём это правило действует на все вершины (состояния и псевдосостояния), кроме начального (у начального своё правило - если оно относится к композитному состоянию, не менее одного перехода к этому композитному состоянию). Смысл - любая вершина должна быть достижимой.Хорошо бы описать, что такое вершина, что общего между разными типами вершин, и обосновать дискриминацию разных типов вершин.
Для того, чтобы показать разные варианты поведения (когда историческая память не содержит никакого значения).Может быть, рассмотреть другой способ?
То, что она общая - заложено в семантике (в одной из возможных семантик).Мне понравился прагматизм Рамбо, высказавшегося в своём интерью, что стандартизация языку моделирования не обязательна. Для каких-то задач множественные исторические псевдосостояния могут быть полезны. В этих случаях оправдано расширить язык. Сделать свой DSL для моделирования автоматов.
Мне подумалось, что ограничение на единственность исторического псевдосостояния в рамках композитного состояния (в разных источниках) обусловлена тем, что:
- прагматичность нескольких исторических псевдосостояний невелика
- определить предпочтительную семантику при нескольких исторических псевдосостояниях нелегко
Поиски примеров диаграмм с глубокой и неглубокой предысторией в одном состоянии привели к задаче из студенческого quiz-а, не имеющей никакого смысла, кроме проверки знаний. Интересно найти что-то более жизненное для множественных предысторий.
Если имеется в виду Fig. 18. из "The Rhapsody Semantics of Statecharts", то всё нормально - из начального псевдосостояния ровно одно звено, без триггера и условия.Как мы обсуждали, в стандарте нет явной градации на звенья и переходы. Диаграмму можно трактовать так, что из начального состояния выходит один составной переход, на котором есть сторожа.
Сформулирую вопрос по другому - если композитное состояние имеет внутренний переход, то это:Я уверен в ответе 2 (с уточнениями). Обоснование видел в "A Crash Course in UML State Machines" M. Samek. Там есть пример с перекрывающимися разноуровневыми локальными переходами у вложенных состояний.
- недопустимо
- означает, что все подчиненные состояния имеют такой внутренний переход
- означает, что все подчиненные состояния имеют внешний переход в себя с указанными свойствами (триггер, условие, действие). Этот вариант мне не нравится, да и Харел моделирует его локальным переходом к историческому псевдосостоянию (Fig. 34. "STATECHARTS: A VISUAL FORMALISM FOR COMPLEX SYSTEMS*")