действие как состояние на диаграмме состояний UML

В этом видео можно увидеть часть диаграммы состояний UML:

введите здесь описание изображения

Однако состояние «предоставить средства» — это действие. Как это имеет смысл ?

Может ли состояние быть действием (глаголом)?

Не должно ли действие «предоставить средства» быть переходным этапом?

Не будет ли что-то вроде этого ниже иметь больше смысла?

введите здесь описание изображения


person jhegedus    schedule 14.07.2017    source источник


Ответы (2)


Provide Funds в данном случае также является состоянием с тем же именем, что и действие. Так что они не идентичны. Просто у них одинаковое имя. Иногда трудно избежать этой ситуации. С точки зрения моделирования я бы сказал, что это состояние просто лишнее. Вы можете выполнять самостоятельные переходы от Funds Available, пока фонды > 0, и просто выйти, когда фонд станет равным нулю.

P.S. О, я вижу, твоя последняя картинка именно то, что я сказал :-)

  1. По сути, переход [funds avail >$0] запускается автоматически после завершения действия "Предоставить средства"?

    Да и нет. [funds avail >$0] — охранник. Триггер request fund. Этот переход будет выполнен только в том случае, если охранник не будет блокировать (то есть, если есть деньги).

    Значит, это какое-то "преходящее" состояние? Так сказать.

  2. Правильно ли я понимаю, что состояние при предоставлении средств также называется Provide Funds (а не только действие)? Таким образом, лучшим названием для состояния было бы: состояние машины во время предоставления средств?

    В яблочко.

person qwerty_so    schedule 14.07.2017
comment
Спасибо, 1) То есть переход [funds avail >$0] запускается автоматически после завершения действия Provide Funds? Значит, это какое-то переходное состояние? 2) Кроме того, правильно ли я понимаю, что состояние при предоставлении средств также называется Provide Funds (а не только действие)? Таким образом, лучшим названием для состояния было бы: the state of the machine *while* providing funds? - person jhegedus; 14.07.2017

Это просто плохое название. Он должен называться «Предоставление средств». Это прояснило бы, что происходит в этом состоянии, и тот факт, что это состояние.

person Jim L.    schedule 15.07.2017