Ортогональное составное состояние(Прочитано 16471 раз)
UML2. Диаграмма состояний (конечный автомат) -> Составные состояния -> Ортогональное составное состояние:

"Выход из составного состояния" = "Выход из всех областей составного состояния" =? "Завервешение выполнения всех подавтоматов"?
или короче: Выход из области =(влечет) завершение работы находящегося в ней подавтомата ?
« Последнее редактирование: 02 Июля 2009, 17:44:39 от deekobraz »



А что такое ортогональное составное состояние?



почти подготовил материал по этой теме для блога. Через пару часиков...






;D да я тоже в блоге почти "нарисовал" по этой теме.

Но вопрос чуть уже. При явном выходе из области А (завершении работы подавтомата А) происходит выход из всего составного состояния, т.е. и из области Б тоже (это мы знаем).  Означает ли это, что подавтомат Б завершает выполнение? Если да, то где об этом сказано.




Подавтомат Б тоже ОБЯЗАН отреагировать на событие, по которому осуществляется выход из области А.
Иначе модель семантически неверна.



Что значит "отреагировать"? значит "завершает"?
Где написано, что диаграмма будет неверна?

В книге Арлоу и Нейштадт "UML2 и УП" (правда, в русскоязычной) сказано: "...происходит выход из суперсостояния. Подавтомат А завершается, но подавтомат Б продолжает выполнение" (стр.497). После этого утверждения я и решил разобраться, как же на самом деле.



Слишком много слов...Приводите примеры диаграмм. Их и будет обсуждать




При переходе из А2 в ZA происходит выход из всего суперсостояния АВ. Как понимать "подавтомат В продолжает выполнение"?



При переходе из А2 в ZA происходит выход из всего суперсостояния АВ.
Конечно из состояния AB мы должны выйти. Но мы должны выйти и их подавтомата B. Этого на диаграмме не показано (есть неоднозначность в интерпретации).

Вообще на переходе A2 - ZA обязательно должно быть событие, чтобы облегчить понимание того, что хотел сказать автор.



Re: Ортогональное составное состояние Ответ #10 : 20 Июля 2009, 14:41:37
Обращаемся к спецификации UML2.2, получаем:
When exiting from an orthogonal state, each of its regions is exited. (При выходе из ортогонального состояния осуществляется выход из всех областей этого состояния.)

Так что вопрос написан ранее: выход из (под)состояния влечет ли завершение работы (под)автомата?



Re: Ортогональное составное состояние Ответ #11 : 20 Июля 2009, 15:28:54
Цитировать
Так что вопрос написан ранее: выход из (под)состояния влечет ли завершение работы (под)автомата?
по-моему ответ уже дан
Цитировать
Этого на диаграмме не показано (есть неоднозначность в интерпретации).
По-моему на Вашем примере не влечет, надо указать составной переход чтоб влеклось.

Представил себе AB без внутренностей, мы ушли в ZA а что там в AB осталось неизвестно, потому как не указано и то что книжка пишет по-моему логично - где гарантия что подавтомат остановился? Он себе в паралельной нитке живет. Но возможно это именно неоднозначность, а вот в блоге denis-itk всё понятно.
« Последнее редактирование: 20 Июля 2009, 16:50:38 от Ur@ »



Re: Ортогональное составное состояние Ответ #12 : 30 Июля 2009, 22:22:37
где гарантия что подавтомат остановился? Он себе в паралельной нитке живет. Но возможно это именно неоднозначность
Вот потому и хочется однозначности, и именно на этом примере. Согласно нотации он останавливается или нет?



Re: Ортогональное составное состояние Ответ #13 : 30 Июля 2009, 23:31:54
Вот потому и хочется однозначности, и именно на этом примере. Согласно нотации он останавливается или нет?

Напомню, что нотация, это просто правила по которым конструкции языка соединяются между собой и образуют, например, диаграмму.
Приписывание смысла этим конструкциям - это совершенно другое. Называется это семантикой.

Нотация данного примера верна, но семантика НЕОДНОЗНАЧНА.
Другими словами, если это реальная диаграмма из какого-либо проекта, то люди, которые в процессе своей деятельности должны будут использовать эту диаграмму не смогут ее однозначно интерпретировать и должны потребовать от автора диаграммы объяснений по некоторым вопросам.
Один из них может звучать так:
А что будет, если мы находимся в состоянии A2+B1 и в это время приходит сигнал (кстати непонятно какой), который приводит к активации перехода из A2 в ZA.



Re: Ортогональное составное состояние Ответ #14 : 16 Июня 2022, 00:11:31
Арлоу и Нейштадт тут просто напутали. Выше на стр. 495 написано (тоже с некоторой путаницей), что нет синхронизации параллельных регионов в смысле, что второй не выходит, пытаясь догнать вышедший первый, и что мы не ждём когда выйдут оба. Остальные "просто прерывают выполнение". Т. е. в них жёсткий останов без совершения действий во выходу и т. п..
Путаницу можно усилить, слив два exit point-а в один. Тогда слитный exit point будет работать как join. Т. е. будет синхронизация. Чудеса, да и только.
IBMшики взяли себе за правило рисовать лишь один переход, ведущий в exit point.
[...и улетело НЛО.]




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19