Правильный порядок отложенных событий в автомате UML 2.x - PullRequest
0 голосов
/ 20 ноября 2018

Диаграмма конечного автомата в UML 2.x поддерживает отложенные события.Вот конечный автомат.state-machine-diagram

Когда я посылаю e1, e2, e3 и e4 на sm1 в этом порядке, какое состояние ожидается?Если e1 выводится из очереди отложенной очереди и снова входит в очередь отложенной очереди в s2, а e2 используется для перехода к s3, то заголовок очереди отложенного вызова равен e3 в s3, так что ожидаемое состояние - s5.Однако, если e1 сохраняет исходную позицию (напор) и пропускает ее, то e2 расходуется, ожидаемое состояние s4.

Определяет ли спецификация UML 2.x, что является правильным?

1 Ответ

0 голосов
/ 21 ноября 2018

Благодаря комментариям я получил ответ.

Отложенная позиция события

Я использую слово defer queue на диаграмме конечного автомата, но в UML такого понятия нет2.5.1 (последняя) спецификация.

См. Сайт: https://www.omg.org/spec/UML/About-UML/

файл: formal-17-12-05.pdf

UML 2.5.1 определяетevent pool.

В 14.2.3.4.4 State history,

- начальная цитата

Отложенные события

Состояние может указыватьнабор типов событий, которые могут быть отложены в этом состоянии.Это означает, что события Событий этих типов не будут отправляться, пока это состояние остается активным.Вместо этого эти события остаются в пуле событий до тех пор, пока:

  • не будет достигнута конфигурация состояния, при которой эти типы событий больше не откладываются, или
  • , если явно используется отложенный тип событияв триггере перехода, источником которого является отложенное состояние (т. е. опция переопределения типа).

Событие может быть отложено составным состоянием или вспомогательными состояниями, и в этом случае оно остается отложеннымдо тех пор, пока составное состояние остается в активной конфигурации.

- конечная кавычка

Важным моментом является "Вместо этого эти события остаются в пуле событий до».Слово остаются подразумевает сохранение исходной позиции в пуле событий.

Порядок оценки событий

События в пуле событий имеют порядок.

См. Сайт: https://www.omg.org/spec/PSSM/About-PSSM/

файл: ptc-17-04-04.pdf

9.3.16.2 Deferred 001, RTC Steps Step7 указывает, что событие оцениваетсяorder - голова («старая») к хвосту («молодая»).

Заключение

Порядок оценки событий в пуле событий - голова к хвосту.Отложенные события просто остались в своем первоначальном положении.Следовательно, e1 должно быть оценено как s3 на моей диаграмме.

Примечание

Реализация Boost.MSM (версия 1.68.0) неверна.https://wandbox.org/permlink/v5hRtdJXRek8RidW

Я сообщу об этом.

...