views:

119

answers:

2

I want to achieve something like this in Enterprise Architect's Communication Diagrams:

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

But I am facing 2 problems:

  1. It seems I have to always make a connection between 2 objects (I can't have the start() message just come out of nowhere, like I'd want).
  2. I can't control the numbering as I'd want. Is there any way I could just set the numbering by myself? If I define that an actor is calling start() on RGController, it will call it message 1 when I'd want message 1 to be User.create().
A: 

Are you trying to draw an architecture which uses a Front-controller or Facade for handling incoming request? If so in that case the client will call the start(). E.g. In case of an ASP.net application, it will be the UI code or presentation logic.

Client/User/Customer ---start()---> RGBController--- create() ---> u: User

Sander Pham
I don't get what you mean. Yes, the client will be calling the RGController.start(). But how can I make a message appear out of nowhere? It always forces me to do messages between 2 objects.
devoured elysium
In UML, the message is from one object/actor to another. It doesn't come out of nowhere in the real software, so it can't come out of nowhere in the model.
Pete Kirkham
+1  A: 

A) Which Object is sending the start() message to RGController? Add it to the diagram and create the connection between these two objects.

Alternatively you could send the initial message from an Inital element (in the Activity toolbox).

You could also hack an invisible start element by creating an empty shape rendering script.

Just create a new Stereotype in Settings->UML...->Stereotypes, set the name to hidden, applied to , and set the shape script as:

shape main {
}

Then apply this stereotype to your initial element. It should be rendered as invisible.

B) I'm not sure how to manually set the message labeling. Are you aware of the message numbering settings?

  • right clicking one of the message labels an selecting "Sequence Communication Messages".

  • checking "start new group" in the Message Properties->Sequnce Expressions section.

Ash Kim
I don't know which object is doing that (yet). Maybe an actor. Isn't there just a way to not having to put anything at all? EA seems quite restrictive. And what about the numbering system? I mean, I can live well with a), but I really need a way to be able to handle differently the numbering of the messages.
devoured elysium
Perhaps send from the Initial element in the Activity toolbox or the End Point element from the Interaction toolbox.
Ash Kim
About B), I want my first message to not count for the total numbering, so I only want User.create() to be my 1. message. I can't seem to achieve that.
devoured elysium
Hmmm - yeah that seems tricky. I've been able to set the start() message 0.1 and the create() as 1. It seems hacky but here it is: create the start message association last - then move it up to the first message in the "sequence communication messages" dialog.
Ash Kim
Isn't there a way to take that 0.1 off ?:(
devoured elysium
Sorry mate - all out of ideas :/
Ash Kim