Форум Сообщества Аналитиков

Общий раздел => Теория моделирования и нотации => UML SysML и пр. => Тема начата: Дмитрий Валерьевич от 02 Июля 2009, 17:38:17

Название: Ортогональное составное состояние
Отправлено: Дмитрий Валерьевич от 02 Июля 2009, 17:38:17
UML2. Диаграмма состояний (конечный автомат) -> Составные состояния -> Ортогональное составное состояние:

"Выход из составного состояния" = "Выход из всех областей составного состояния" =? "Завервешение выполнения всех подавтоматов"?
или короче: Выход из области =(влечет) завершение работы находящегося в ней подавтомата ?
Название: Re: Ортогональное составное состояние
Отправлено: Galogen от 02 Июля 2009, 19:07:16
А что такое ортогональное составное состояние?
Название: Re: Ортогональное составное состояние
Отправлено: Денис Иванов от 02 Июля 2009, 20:55:23
почти подготовил материал по этой теме для блога. Через пару часиков...
Название: Re: Ортогональное составное состояние
Отправлено: Денис Иванов от 02 Июля 2009, 23:43:50
Как обещал. Тут (http://blog.it-konsulting.spb.ru/?p=275).
Название: Re: Ортогональное составное состояние
Отправлено: Дмитрий Валерьевич от 03 Июля 2009, 09:52:06
;D да я тоже в блоге почти "нарисовал" по этой теме.

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

Название: Re: Ортогональное составное состояние
Отправлено: Денис Иванов от 03 Июля 2009, 15:15:40
Подавтомат Б тоже ОБЯЗАН отреагировать на событие, по которому осуществляется выход из области А.
Иначе модель семантически неверна.
Название: Re: Ортогональное составное состояние
Отправлено: Дмитрий Валерьевич от 03 Июля 2009, 23:00:12
Что значит "отреагировать"? значит "завершает"?
Где написано, что диаграмма будет неверна?

В книге Арлоу и Нейштадт "UML2 и УП" (правда, в русскоязычной) сказано: "...происходит выход из суперсостояния. Подавтомат А завершается, но подавтомат Б продолжает выполнение" (стр.497). После этого утверждения я и решил разобраться, как же на самом деле.
Название: Re: Ортогональное составное состояние
Отправлено: Денис Иванов от 04 Июля 2009, 19:16:24
Слишком много слов...Приводите примеры диаграмм. Их и будет обсуждать
Название: Re: Ортогональное составное состояние
Отправлено: Дмитрий Валерьевич от 14 Июля 2009, 14:15:45
(http://sysana.wordpress.com/files/2009/07/uml_sm_orthogonal_composite_state.png)
При переходе из А2 в ZA происходит выход из всего суперсостояния АВ. Как понимать "подавтомат В продолжает выполнение"?
Название: Re: Ортогональное составное состояние
Отправлено: Денис Иванов от 14 Июля 2009, 19:07:10
При переходе из А2 в ZA происходит выход из всего суперсостояния АВ.
Конечно из состояния AB мы должны выйти. Но мы должны выйти и их подавтомата B. Этого на диаграмме не показано (есть неоднозначность в интерпретации).

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

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

Представил себе AB без внутренностей, мы ушли в ZA а что там в AB осталось неизвестно, потому как не указано и то что книжка пишет по-моему логично - где гарантия что подавтомат остановился? Он себе в паралельной нитке живет. Но возможно это именно неоднозначность, а вот в блоге denis-itk всё понятно.
Название: Re: Ортогональное составное состояние
Отправлено: Дмитрий Валерьевич от 30 Июля 2009, 22:22:37
где гарантия что подавтомат остановился? Он себе в паралельной нитке живет. Но возможно это именно неоднозначность
Вот потому и хочется однозначности, и именно на этом примере. Согласно нотации он останавливается или нет?
Название: Re: Ортогональное составное состояние
Отправлено: Денис Иванов от 30 Июля 2009, 23:31:54
Вот потому и хочется однозначности, и именно на этом примере. Согласно нотации он останавливается или нет?

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

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