AnyLogic
Развернуть
Размер шрифта

Порядок выполнения действий элементов диаграммы состояний

Очень важно точно знать, в каком именно порядке выполняются действия элементов диаграммы состояний. Для этого мы предлагаем вам изучить приведенный ниже алгоритм.

При срабатывании перехода выполняются следующие действия (в указанном порядке):

  1. Действия при выходе из состояния, начиная с текущего простого состояния, и дальше вверх по иерархии состояний, заканчивая тем сложным состоянием, на уровне иерархии которого и передается управление.
  2. Действие перехода.
  3. Действия при входе в состояние, начиная со сложного состояния, которое получает управление, и дальше, вниз по иерархии состояний, вплоть до простого состояния или псевдо-состояния, в которое передается управление.
  4. Если управление передается в псевдо-состояние, то выполняется код действия псевдо-состояния, а затем управление немедленно передается другому состоянию, и описанный выше алгоритм выполняется сначала.
Действия состояний и переходов выполняются за нулевое модельное время. Поэтому они не могут содержать синхронизационных операций и операций задержки и не могут вызывать методы, явно или неявно содержащие такие операции.

Пример

Пример порядка выполнения действий

Давайте рассмотрим пример, приведенный на рисунке. Предположим, что состояние N является текущим простым состоянием, и срабатывает переход T1. Тогда действия выполняются в следующем порядке:

  1. Действие при выходе из состояния N
  2. Действие при выходе из состояния M
  3. Действие перехода T1
  4. Действие состояния ветвления
    Затем, в зависимости от дополнительных условий переходов, будет выбран переход T2 или T3. Если будет выбран переход T2, то выполнятся следующие действия:
  5. Действие перехода T2
  6. Действие указателя начального состояния I1 (действия при входе и выходе из состояния L не выполняются, поскольку управление остается в этом состоянии)
  7. Действие при входе в состояние M
  8. Действие указателя начального состояния I2
  9. Действие при входе в состояние N
    Если выбирается переход T3, то выполняются следующие действия:
  10. Действие при выходе из состояния L
  11. Действие при выходе из состояния K (действия состояния V не выполняются)
  12. Действие перехода T3
  13. Действие при входе в состояние S
  14. Действие при входе в состояние P
  15. Действие состояния-ветвления
  16. Действие при выходе из состояния P
  17. Действие перехода T4 (дополнительное условие перехода должно быть равно true, поскольку это единственный выход из ветвления)
  18. Действие при входе в состояние Q
  19. Действие указателя начального состояния I3
  20. Действие при входе в состояние R
Как мы можем улучшить эту статью?