我想画一个序列图在哪里
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 :(得分:6)
答案 1 :(得分:1)
uml规范允许以可视方式显示嵌套调用:被调用的生命线应覆盖在调用生命线上。参见例如在this example中调用confirmAvailableReport()。
你的工具是否支持它当然是另一回事......
答案 2 :(得分:0)
让我们说ObjectA有3种方法,分别称为MessageOne(),MessageTwo()和MessageThree()。
它们之间的关系如下所示
void ObjectA::MessageOne()
{
MessageTwo();
}
void ObjectA::MessageTwo()
{
MessageThree();
}
void ObjectA::MessageThree()
{
// TODO
}
使用下图所示的Enterprise Architect,如果您选择MessageThree()调用,您将获得提高激活级别的选项。
一旦选择了该选项(通过单击-> 箭头),您将获得满足调用堆栈序列图的精确图(如下所示)。