Main Menu
SSL SecureMode
Lost Password?
Register now!
ChangeVision Members Map
Forum Index   -   Topic Index
   How to use of Astah (Pro/SysML/GSN/Com)
     How to change Source and Target Lifeline of a self-message [Sequence Diagram]

Threaded | Newest First Previous Topic | Next Topic | Bottom
Poster Thread
Posted on: 2009/4/22 0:56
Just popping in
Joined: 2009/4/22
Posts: 1
How to change Source and Target Lifeline of a self-message [Sequence Diagram]
For example, I have 2 Lifelines ClassB, ClassC.

ClassB has "sendMessage" to Class C.
also, ClassB has "composeMessage" to itself.
composeMessage in ClassB has sendMessage to Class C.
This is my existing diagram.

Now, I want to modify it, I add a lifeline before ClassB called ClassA.

ClassA has a message "initialize" to ClassB before ClassB.sendMessage() and ClassB.composeMessage()

I can easily move ClassB.sendMessage() to the lifeline of ClassB inside "initialize" but I am having difficulty in moving ClassB.composeMessage() [that has already ClassB.composeMessage().sendMessage() ] to inside "initalize".

composeMessage() originally has Source and Target lifeline set to ClassB (being a self-message). If I change the Target lifeline to ClassC temporarily, I can easily drag the Source lifeline to the "initalize()" and then drag Target lifeline of composeMessage() back to ClassB inside "initalize()" (making it a self-message again) but it leaves an EMPTY LIFELINE in ClassB where the composeMessage().sendMessage() used to be. to sum it up, I only moved composeMessage() without it contents. I want to move it to "initialize()" with all it's contents intact.

Is this possible? How?

For the sake of discussion, imagine an already large diagram and composeMessage() actually has a lot of nested messages to many lifelines as well.
Posted on: 2009/4/25 4:20
Joined: 2006/6/6
Posts: 969
Re: How to change Source and Target Lifeline of a self-message [Sequence Diagram]
Hi tualatin,

I assume that this is your current diagram.

1. Add a Class A Lifeline and create an initialize message. *When you create it, draw it toward the sendMessage's source activation.

The initialize message is created. (You don't have to change the source of sendMessage.)

2. Now what I would do is, move the target activation of composeMessage (*The activation in green) onto Class A temporary.

The green activation is on Class A.

3. Move the origin of composeMessage to the target activation of initialize message(*The activation in yellow)

Now the activations on Class B got all in one.

4. At last, put the green activation back onto Class B and its done.

Hope this is what you wanted to do.

Best regards,
Threaded | Newest First Previous Topic | Next Topic | Top