Конечный автомат UML - явная запись в составном состоянии с активностью ввода - PullRequest
2 голосов
/ 22 апреля 2019

У меня возник вопрос относительно диаграммы конечного автомата UML.

Из спецификации UML 2.5, "14.2.3.4.5 Ввод состояния", с.307f.

Явная запись: Если входящий Переход или его продолжения завершаются в непосредственно содержавшемся подсостоянии составного состояния, то это подсостояние становится активным, и его поведение входа выполняется после выполнения поведения входа.содержащего сложного состояния.Это правило применяется рекурсивно, если переход завершается в непрямом (глубоко вложенном) подсостоянии.

Пусть e будет нашей явной записью, это означает, что для данной ситуации входная активность A1 (то есть x ) выполняется перед операцией ввода A (то есть y ), верно?Или наоборот?

Diagram

Спасибо.

Ответы [ 2 ]

4 голосов
/ 22 апреля 2019

Позвольте e быть нашей явной записью, это означает для данной ситуации, что входная активность A1 (которая является x) выполняется перед входной активностью A (которая является y), правильно?Или это наоборот?

нет, это наоборот ( его поведение входа выполняется после выполнение поведения записи содержащего составного состояния) поэтому x выполняется после y

Это логично, вы вводите в A , прежде чем вводить в A1 (вы входите в здание, прежде чем войти в квартиру в здание).При выходе это, конечно, наоборот, вы выходите из A1 , прежде чем выйти из A

3 голосов
/ 22 апреля 2019

Действие записи подсостояния выполняется после завершения действия записи содержащего состояния.Таким образом, самое внешнее действие по входу в состояние выполняется первым, а самое последнее - внутренним.

Итак, если у нас есть состояния x, y, z, где x содержит y, а y содержит z, а Ax, Ay и Az - действия входа x, y и z соответственно, затем, когда переход завершается на z, порядок выполнения равен Ax => Ay => Az.

Обратите внимание, что действия по выходу выполняются в противоположном порядке (сначала самое внутреннее состояние, последнее самым дальним)

...