2013-11-12 2 views
0

Каков правильный способ моделирования завершения суб-состояния в UML?Схемы состояний UML правильного пути

Допустим, у меня есть вспомогательный компьютер для какого-то агента, который обрабатывает входящие события. и позволяет сказать, что этот автомат называется «обработкой»

Можно ли просто нарисовать линию перехода от «обрабатывающей» машины до другого состояния родительского конечного автомата?

например.

+SUB----------+       +-----------+ 
| processing |---user cancelled ------>| done  | 
+-------------+       +-----------+ 

Как я могу показать, что конечный автомат обработки завершается, когда происходит триггер «пользовательский»?

+0

выглядит хорошо, но здесь (на диаграмме) 'пользователь cancelled' любопытное вызвать (событие), а также определение событий, это означает, что он будет передавать в' done' если пользователь отменяет операцию и обработки GETS ЗАВЕРШЕНА, я имею в виду упомянутый триггер, который вы упомянули, не означает завершение остальной части работы, вам необходимо указать это событие как внешнее событие. –

ответ

0

Ваше моделирование в порядке. Ваш переход от processing к done активируется, когда processing активен, а user cancelled - текущее событие. processing активен, если любое из его подстанций, то есть любое из состояний в автомате, активно. Следовательно, событие user cancelled остановит выполнение автомата, и выполнение переходит к done.

Обратите внимание, что если вы разрешите только отменить выполнение некоторых (но не всех) подстанций processing (автомат), то ваш государственный автомат должен быть немного задействован. Событие user cancelled было бы слишком мощным, если бы оно было смоделировано, как на вашей диаграмме.

Смежные вопросы