18

我正在尝试为我们的应用程序中的特定流程创建 UML 序列图。

问题是大多数业务逻辑都在一个类中,当我尝试在序列图中映射它时,我在序列图中多次调用相同的对象。

我需要的是类似于 UML 序列图中的堆栈跟踪的表示。是否可以使用序列图或其他图表更好地表示同一类中的调用?请指教。

4

3 回答 3

14

几点建议:

  1. 您可以使用自调用在序列图上显示连续的方法。有关示例,请参见此处的图 1 (自调用是同一生命线上的循环调用)。
  2. 作为替代方案,您可以考虑使用活动图。可能更适合说明方法的顺序。
  3. 重构代码。单个类中的大量逻辑通常是一种难闻的气味。假设您有范围,重构可能是一个好主意。

hth。

于 2013-02-11T12:46:28.547 回答
13

在 UML 序列图上表示自调用(参见步骤 7)。

UML 序列图上的自调用

如果被调用的方法是(或应该是)私有的,那么它可以安全地作为实现细节从序列图中排除。

不过我闻到了神级反纹;你的班级有多重责任,应该被解构。使用委托分解类,使其只有一个职责。这些方法调用将是一个很好的起点。

于 2013-02-11T13:24:31.310 回答
2

其实可以引用self实例

实际上UML spec 2.5b1 page 607,关于一条生命线是这样说的:如果名字是关键字self,那么生命线代表了包含拥有生命线的交互的分类器的对象。即使包含 self ,外壳的端口也可以单独显示。

有关完整示例,请参见https://web.archive.org/web/20131101211441/http://lowcoupling.com/post/47844944042/uml-sequence-diagrams

于 2013-02-13T08:59:19.157 回答