2010-09-21 25 views
3

我想画的顺序图绘图呼叫流程与顺序图导致歧义

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

到目前为止,我拿出这些。

http://i51.tinypic.com/eja5bl.jpg http://i52.tinypic.com/1449s3.jpg

但在这里我不能清楚地提到它是B.m2()由B.m1() 相反,它看起来像B.run()调用都B.m1()和被叫B.m2()串行。

-------------编辑----------------

这是我目前已经引起http://i55.tinypic.com/21276kk.jpg

http://i55.tinypic.com/21276kk.jpg 那么我的电流图好吗? 我想要的是这个。 (呼叫流程)

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() 
+0

是的,我知道SpiritAdapter构造函数是错误的 – 2010-09-21 12:03:04

+0

如果其对*阅读*比我认为没有错的图。你关心的是什么? – 2010-09-21 12:14:51

+0

SpiritEngine :: storeXDO()需要单独的小酒吧吗?我的意思是它应该是“自我消息”还是“递归消息”? – 2010-09-21 12:32:29

回答

6

您可以通过添加B.m2一个小酒吧(),然后将自身的箭头,for example

alt text

Self message vs recursive call

alt text

+0

我目前正在这样做。但它被称为递归消息。但是这些函数不是递归的。那么有这样一种小酒吧会好吗?或者我在思考错误的术语'递归'它实际上意味着相同的对象不是相同的方法? – 2010-09-21 11:39:17

+0

查看更新的答案。结帐:http://www.visual-paradigm.com/VPGallery/diagrams/Sequence.html#recursive_message – 2010-09-21 11:44:35

+0

请检查我的更新。 – 2010-09-21 11:58:37

1

UML的规范允许在视觉上示出的嵌套调用:被叫生命线应在主叫生命线重叠。见例如在this example中确定AvailableReport()调用。

无论你的工具支持,当然这是另外一回事......

+0

你指着'递归消息'? – 2010-09-21 11:41:10

+0

是的。但是根据上面的评论,“递归”是误导性的。这是一个自我调用,不一定是相同的方法。 – sfinnie 2010-09-21 12:14:51