1

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().
devoured elysium
  • 101,373
  • 131
  • 340
  • 557

2 Answers2

1

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

S P
  • 4,615
  • 2
  • 18
  • 31
  • 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 Jun 06 '10 at 07:46
  • 1
    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 Jun 06 '10 at 08:53
1

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.

chickeninabiscuit
  • 9,061
  • 12
  • 50
  • 56
  • 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 Jun 06 '10 at 07:50
  • 1
    Perhaps send from the Initial element in the Activity toolbox or the End Point element from the Interaction toolbox. – chickeninabiscuit Jun 06 '10 at 08:01
  • 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 Jun 06 '10 at 08:19
  • 1
    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. – chickeninabiscuit Jun 06 '10 at 08:32
  • Isn't there a way to take that 0.1 off ?:( – devoured elysium Jun 06 '10 at 08:37
  • Sorry mate - all out of ideas :/ – chickeninabiscuit Jun 06 '10 at 08:48