5

我想画一个序列图在哪里

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

那么我当前的图表还好吗??我想要的是这个。(呼叫流程)

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()
4

3 回答 3

6

您可以在 B.m2() 上添加一个小条,然后放置一个自指向箭头,例如

替代文字

自我消息与递归调用

替代文字

于 2010-09-21T11:34:40.843 回答
1

uml 规范允许以可视方式显示嵌套调用:被调用生命线应覆盖在调用生命线上。参见本示例中的例如确定AvailableReport() 调用。

当然,您的工具是否支持它是另一回事......

于 2010-09-21T11:36:52.650 回答
0

假设 ObjectA 有 3 个方法,分别称为 MessageOne()、MessageTwo() 和 MessageThree()。

它们之间的关系如下图所示

void ObjectA::MessageOne()
{
    MessageTwo();
}

void ObjectA::MessageTwo()
{
   MessageThree();
}

void ObjectA::MessageThree()
{
   // TODO
}

使用 Enterprise Architect 如下图所示,如果您选择 MessageThree() 调用,您将获得一个提高激活级别的选项。

在此处输入图像描述

一旦您选择了该选项(通过单击->箭头),您将获得满足调用堆栈序列图的确切图表(如下所示)。

在此处输入图像描述

于 2018-09-03T12:28:32.167 回答