Вопрос о коммуникационных диаграммах корпоративного архитектора

Я хочу добиться чего-то подобного в коммуникационных диаграммах Enterprise Architect:

   start()    ----------------    1. create()   ------------
------------> | RGController | ---------------> | U : User |
              ----------------                  ------------

Но я столкнулся с 2 проблемами:

  1. Кажется, мне всегда нужно устанавливать соединение между двумя объектами (я не могу, чтобы сообщение start() просто появилось из ниоткуда, как мне бы хотелось).
  2. Я не могу управлять нумерацией так, как хотел бы. Есть ли способ, которым я мог бы просто установить нумерацию самостоятельно? Если я определяю, что актер вызывает start() для RGController, он назовет его сообщением 1, когда я хочу, чтобы сообщение 1 было User.create().

person devoured elysium    schedule 06.06.2010    source источник


Ответы (2)


A) Какой объект отправляет сообщение start() в RGController? Добавьте его на схему и создайте связь между этими двумя объектами.

В качестве альтернативы вы можете отправить начальное сообщение из элемента Initial (на панели инструментов Activity).

Вы также можете взломать невидимый начальный элемент, создав скрипт рендеринга пустой формы.

Просто создайте новый стереотип в Настройки-> UML...-> Стереотипы, задайте для имени скрытое, примененное к и установите сценарий формы как:

shape main {
}

Затем примените этот стереотип к своему исходному элементу. Его следует сделать невидимым.

Б) Я не знаю, как вручную установить маркировку сообщений. Вы знаете о настройках нумерации сообщений?

  • Щелкнув правой кнопкой мыши по одному из сообщений, вы выберете «Сообщения о последовательной связи».

  • проверка «начать новую группу» в разделе «Свойства сообщения» -> «Выражения последовательности».

person chickeninabiscuit    schedule 06.06.2010
comment
Я не знаю, какой объект это делает (пока). Может быть, актер. Разве нет способа вообще ничего не ставить? EA кажется довольно ограничительным. А как же система нумерации? Я имею в виду, что я могу хорошо жить с a), но мне действительно нужен способ по-разному обрабатывать нумерацию сообщений. - person devoured elysium; 06.06.2010
comment
Возможна отправка из элемента Initial на панели инструментов Activity или элемента End Point на панели инструментов Interaction. - person chickeninabiscuit; 06.06.2010
comment
Что касается B), я хочу, чтобы мое первое сообщение не учитывалось при общей нумерации, поэтому я хочу, чтобы User.create() был только моим 1. сообщением. Кажется, я не могу этого добиться. - person devoured elysium; 06.06.2010
comment
Хммм - да, это кажется сложным. Я смог установить сообщение start() 0.1 и create() как 1. Это кажется хакерским, но вот оно: создайте ассоциацию начального сообщения последней, а затем переместите ее к первому сообщению в диалоговом окне сообщений последовательности. . - person chickeninabiscuit; 06.06.2010
comment
А нельзя ли убрать 0.1? :( - person devoured elysium; 06.06.2010
comment
Извини, дружище, идей нет :/ - person chickeninabiscuit; 06.06.2010

Вы пытаетесь нарисовать архитектуру, которая использует Front-controller или Facade для обработки входящего запроса? Если это так, то клиент вызовет метод start(). Например. В случае приложения ASP.net это будет код пользовательского интерфейса или логика представления.

Клиент/Пользователь/Заказчик ---start()---> RGBController--- create() ---> u: Пользователь

person S P    schedule 06.06.2010
comment
Я не понимаю, что вы имеете в виду. Да, клиент будет вызывать RGController.start(). Но как сделать так, чтобы сообщение появилось из ниоткуда? Это всегда заставляет меня делать сообщения между двумя объектами. - person devoured elysium; 06.06.2010
comment
В UML сообщение передается от одного объекта/действующего лица к другому. В реальном программном обеспечении он не появляется из ниоткуда, поэтому он не может появиться из ниоткуда в модели. - person Pete Kirkham; 06.06.2010