views:

26

answers:

2

I want to draw a Sequence Diagram Where

A -> B.run()
B.run() -> B.m1()
B.m1() -> B.m2()

So far I've come up with these.

But Here I cannot mention it clearly that B.m2() is called by B.m1() Rather it looks like B.run() Calls both B.m1() and B.m2() serially.

------------- EDIT ----------------

This is What I Currently have drawn http://i55.tinypic.com/21276kk.jpg

Well Is my Current Diagram Okay ?? What I want is this. (Call Flow)

SpiritAdapter -> SpiritEngine::run(spirit:string, method:string, args[])
SpiritEngine::run(spirit:string, method:string, args[]) -> SpiritEngine::executeLogic(spirit:string, method:string, args[])
SpiritEngine::executeLogic(spirit:string, method:string, args[]) -> SpiritEngine::spirit(spirit:string, method:string, args[])
SpiritEngine::spirit(spirit:string, method:string, args[]) -> new SpiritAbstractor
SpiritEngine::executeLogic(spirit:string, method:string, args[]) -> SpiritAbstractor::method(args)
SpiritEngine::run(spirit:string, method:string, args[]) -> SpiritEngine::storeXDO()
A: 

You can add a small bar over B.m2() and then place a self pointing arrow, for example.

alt text

Self message vs recursive call

alt text

KMan
I am Currently Doing it in this Way. But Its is Called Recursive Message. But These Functions of Mine are not Recursive. So would it be good to have that kind of small Bar ?? or I am thinking wrong about the Term `Recursive` it actually means same object not same method ??
See updated answer. Checkout: http://www.visual-paradigm.com/VPGallery/diagrams/Sequence.html#recursive_message
KMan
Please Check My Update.
@user256007: 'recursive' term is misleading. Self messages in UML are used to indicate any call from an object to itself. Doesn't have to be the same method. Based on your original post, self message syntax (as shown in examples) is appropriate.
sfinnie
@sfinnie: This isnt misleading. Self Messages are an arrow to itself; while Recursive are arrow to a bar on self. See self message(http://www.visual-paradigm.com/VPGallery/diagrams/Sequence.html#self_message) and recursive message(http://www.visual-paradigm.com/VPGallery/diagrams/Sequence.html#recursive_message)
KMan
@Kman: er, yes it is. As with many areas of UML, the semantics aren't clear. To quote the text associated with your 'sd Recursion' snippet above (from Sparx site): "A self message can represent a recursive call of an operation, or one method calling another method belonging to the same object. It is shown as creating a nested focus of control in the lifeline’s execution occurrence.". The VP site characterises the difference based on an "activation". Which in turn needs a definition of "activation". A self-method call is valid as an activation....
sfinnie
...so to answer @user256007's original question: is it appropriate to use the nested lifeline idiom to illustrate an object calling a different method on itself? Yes.
sfinnie
A: 

The uml spec allows for a nested call to be shown visually: the called lifeline should be overlaid on the calling lifeline. See e.g. determineAvailableReport() call in this example.

Whether your tool supports it of course is another matter...

sfinnie
are You pointing towards `Recursive Message` ??
Yes. But per comment above, 'recursive' is misleading. It's a self call, doesn't have to be the same method.
sfinnie