https://forum.drakon.su/viewtopic.php?f=94&t=6449#p102803Дмитрий Бардынин писал(а):
Цитата:
"Программа DRAKON Editor версии 1.31 не поддерживает входные действия на автоматных ДРАКОН-схемах. Тем не менее принципиальная возможность добавить эти действия существует. Входные действия можно расположить над макроиконой "выбор" с ключевым словом "receive".
Выходные действия автоматные ДРАКОН-схемы не поддерживают совсем"
По первому утверждению все понятно, это места отмеченные зеленым маркером на иллюстрации "Дракон-автомат".
Но почему второе утверждение про выходные действия столь категорично? Почему нельзя выходные действия поместить в места, помеченные красным маркером?
...
Дать возможность установки иконки Действие только на уникальных выходах, а не уникальные - блокировать.
...
то бишь, выход из состояния, к которому привязано правило, в отличие от остальных выходов, у которых правила нет, потому что они не меняют состояния.
Как раз по первому утверждению больше неясности, именно по входным действиям.
В общем случае необходимо различать:
- переходы в другие состояния, а также и переход в собственное состояние -- "петля" в графах переходах/диаграммах состояний. В последнем случае также необходимо выполнить выходные действия и затем входные -- "сброс" или "reset", начинаем работать с начала, м.б. с корректировками;
- "шаг системы" без перехода в иное состояние. В автоматных методиках часто действия без перехода обозначаются аля "do action/activity" или "during action" (в случае поддержки множества событий, в каком-либо виде, возможно дополнительное деление аля "immediate" или нет -- многократное или одноразовое исполнение при дублировании событий, и т.д.).
Выходные действия в предлагаемых автоматных схемах, видимо, есть обычные действия, исполняются когда необходимо. Если надо -- дублировать (или вызов выделенной подпрограммы. Или для ликвидации дублирования, как и для иерархической композиции автоматов -- не используют блок-схемы, но в декларативных формах есть свои тараканы).
Для имитации "шага системы" необходим переход по адресу в эту же ветку-состояние, при этом не требуется исполнение выходных действий. В случае "петли" -- выходные действия исполняются (как и при переходах в иные состояния). Возможно возникновение путей с разными вариантами переезда в начало собственной ветки.
Входные действия могут быть определены в местах с "зеленым маркером", как здесь:
https://forum.drakon.su/viewtopic.php?f=62&t=6097#p100629Однако, необходимо различать варианты входа в ветку -- "петля" или "шаг системы", или переход из иного состояния (или стартовое состояние) -- исполнять или нет входные действия.