2010-09-21 54 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