如何使用UML-Sequence图表示同一类中的调用

时间:2013-02-11 06:40:20

标签: uml sequence-diagram

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

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

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

3 个答案:

答案 0 :(得分:11)

一些建议:

  1. 您可以使用自我调用在序列图上显示连续的方法。有关示例,请参见图1 here(自调用是同一生命线上的循环调用)。
  2. 作为替代方案,您可以考虑使用Activity Diagram。可能更适合说明方法的顺序。
  3. 重构代码。单个班级中的许多逻辑通常都是难闻的气味。假设你有范围,重构可能是一个好主意。
  4. 第h

答案 1 :(得分:7)

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

self-call on a UML sequence diagram

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

然而我闻到了God-Class反模式;你的班级有多重责任,应该解构。细分类,使得只有single responsibility使用委托。那些方法调用将是一个很好的起点。

答案 2 :(得分:1)

实际上可以引用自我实例

实际上UML规范2.5b1第607页,关于生命线的说法是:如果名称是关键字self,那么生命线代表包含拥有生命线的交互的分类器的对象。即使包含self,封闭器的端口也可以单独显示。

有关完整示例,请参阅http://lowcoupling.com/post/47844944042/uml-sequence-diagrams