Внутренний переход параллельного композитного состояния(Прочитано 67063 раз)
Сомнительным кажется соединение класса с перечислимым типом с помощью ассоциации (SimpleState-*--*-TypeStateBehaviour).
Что вызывает сомнение - то, что перечислимый тип может участвовать в ассоциации?
М. б. соединить SimpleState со  StateBehaviour, а TypeStateBehaviour сделать типом квалификатора при этой связи?
Для меня это эквивалентное преобразование: класс-ассоциацию (многие ко многим) всегда можно заменить на ассоциацию от одного из ассоциируемых с квалификатором по другому из ассоциируемых (картинка во вложении).
Стандарт против внутренних переходов по завершению. А, собственно, почему?
Можно предположить, что дело в "звучании" терминов - "ФИНАЛЬНОЕ состояние", "переход по ЗАВЕРШЕНИЮ". Явно звучит "Конец", "Финиш", "Уже всё". И тут внутренний переход, что явно предполагает продолжение - непорядок!.



Что вызывает сомнение - то, что перечислимый тип может участвовать в ассоциации?
Привычнее видеть, что у класса есть атрибут перечислимого типа и проведена зависимость от класса к типу. Привычка идёт от увиденного в книгах и т. п. В стандарт не лазило. Как по мне, data type и enumeration недоклассификаторы, в том смысле, что их "экземпляры" не соединяются с экземплярами классов, а являются значениями их слотов.
Для меня это эквивалентное преобразование: класс-ассоциацию (многие ко многим) всегда можно заменить на ассоциацию от одного из ассоциируемых с квалификатором по другому из ассоциируемых (картинка во вложении).
В верхней части рисунка у класса C починённое положение, а у A и B -- главное. Они полноправные партнёры в связи, C -- их обслуживает, обеспечивая сохранение свойств связи. В нижней части рисунка полноправны A и C, а B уточняет связь. StateBehaviour -- часть состояния. Разумно связать их ассоциацией (композицией). Тот факт, что поведение каждого типа (по входу, по выходу и внутренняя деятельность) у состояния может быть не более чем одно, удобно показать квалификатором.
Можно предположить, что дело в "звучании" терминов - "ФИНАЛЬНОЕ состояние", "переход по ЗАВЕРШЕНИЮ". Явно звучит "Конец", "Финиш", "Уже всё". И тут внутренний переход, что явно предполагает продолжение - непорядок!.
Гипотетически, если понадобилось бы промоделировать поведение, при котором по завершении деятельности проверяется условие, а затем по результатам проверки осуществляется действие, внутренний переход по завершению был бы полезен. Без него решение немного сложнее.
« Последнее редактирование: 09 Октября 2016, 12:58:37 от [прилетело НЛО и...] »
[...и улетело НЛО.]



Заметил ошибку в диаграмме: квалификатор не с той стороны. Исправление во вложении 1. Там же отображена зависимость (в соответствии с
Привычнее видеть, что у класса есть атрибут перечислимого типа и проведена зависимость от класса к типу.
).
Привычнее видеть, что у класса есть атрибут перечислимого типа и проведена зависимость от класса к типу. Привычка идёт от увиденного в книгах и т. п. В стандарт не лазило. Как по мне, data type и enumeration недоклассификаторы, в том смысле, что их "экземпляры" не соединяются с экземплярами классов, а являются значениями их слотов.
Все три диаграммы во вложении 2 эквивалентны. И неважно, является B классом или enumeration.



Вот уж не знаю, откуда рисовать зависимость к B. От ассоциации?)
[...и улетело НЛО.]



В общем случае может быть использование B в нескольких квалификаторах. Чтобы зависимость была одна, она должна быть от C.



Стандарт пишет, что квалификаторы принадлежат memberEnd'ам ассоциации, не оконечным классам. (И даже, что рисовать квалификатор надо не как "бородавку" на классе, а как "присоску" на ассоциации.) Это значит, что от B зависит ассоциация. Описание связанных ей классов A и C может не содержать упоминания B, и классы могут быть независимы от B.
И, конечно, в стандарте (как и в книгах) мне не попался ни один пример с квалификатором-классом.
[...и улетело НЛО.]



При таком подходе, я полагаю, "площадка" становится чем-то вроде оперения у стрелки псевдозвена.
Дочитало стандарт 2.5 до описания конкретного синтаксиса. Нашло там стрелки, у которых кружки являются частью оперения (или острия), и про которые подчёркнуто, что это не две части диаграммы, а одна. К моему сожалению, это не части диаграмм состояний, а потерянные и найденные сообщения на диаграммах последовательности. Интересно, к какой версии стандарта кружки отделятся и заживут своей жизнью.)
На своей родной планете уже видело "творческое использование" найденных сообщений (безымянных) как своего рода "начальных псевдосостояний" на диаграмме последовательности. Объяснение "творчества":
-- А это у вас что?
-- А это у меня отмечено, откуда всё начинается.
[...и улетело НЛО.]




 

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