Разница между моделированием события и защиты UML

Я действительно не вижу разницы между охраной и событием на диаграмме состояний, я вижу, что событие — это действие, которое было запущено или что-то в этом роде, а охрана — это просто условие, но я думаю, что это нечто большее. глубокое, чем то, что я не знаю, связаны ли эти два термина или разделены, какой из них необходим, а какой является необязательным, или разница существует только между их синтаксисом; событие пишется без скобок, было бы здорово, если бы вы мне в этом помогли.

Заранее спасибо. [Извините, если я что-то неправильно написал]


person Abdelaziz Dabebi    schedule 18.12.2014    source источник


Ответы (2)


Событие — это действие, которое было запущено или что-то в этом роде.

Закрывать. Событие — это просто то, что произошло. Как поезд, прибывающий на станцию, включается свет или (в соответствии с сезоном) Санта высовывается из дымохода.

охрана это просто условие

Точно. Таким образом, для перехода состояния в огонь должно произойти событие И защита должна быть оценена как истинная. Таким образом, переход в состояние «оставление подарков» требует прибытия Санты (событие) и разблокировки дымохода (охрана).

Какой из них необходим, а какой необязателен

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

Событие пишется без скобок

Да. Событие не имеет скобок, охранник (если есть) помещается в квадратные скобки. Так

Santa Arrives [chimney unblocked]

Хт.

person sfinnie    schedule 18.12.2014
comment
Так много руководств объясняют, что является допустимым, а что недопустимым в UML, и здесь мы ищем цель и значение выражений, а не их действительность. Спасибо за этот удивительный ответ. - person Tim; 14.09.2016

На диаграмме состояний событие — это то, что вызывает переход между состояниями. В качестве простого примера у двери есть два состояния: открыто и закрыто. ReadIDCard — это событие, которое переводит текущее состояние из Closed в Open.

Защитное условие определяет, должен ли принимающий объект реагировать на событие. Например, охранник ['AuthorizedID'] проверит, авторизован ли идентификатор карты, прежде чем изменить состояние на Open. Если нет условий охраны, ReadIDCard всегда будет открывать дверь.

Чтобы проиллюстрировать немного дальше, когда состояние двери меняется на «Открыто», событие Timer (после ожидания, скажем, пяти секунд) снова меняет состояние двери на «Закрыто». В этом случае нет охранного условия; любого, кто стоит в дверях, раздавит. :)

Так что условия разные. Всегда есть какое-то событие, вызывающее переход из одного состояния в другое. Условия защиты необязательны. С точки зрения диаграммы добавление событий и защитных условий является необязательным.

person BobRodes    schedule 19.12.2014