状态图与活动图的区别

37
我真的无法理解这两个图之间的实际区别。我的意思是,这两个图都涉及“状态”,但我不确定哪个与哪个相关?
4个回答

32

看起来可能一样,但区别在于活动图描述活动,状态图描述状态。因此,这些模型是正交的 - 你可以想象在两个状态之间有一个活动(在转换期间发生的事情),也可以说在两个活动之间有一个状态。这只是一个简化,但我认为它足以解释主要的区别,即重点不同,两种图表都用于描述行为。


5
谢谢你的好评!如果你能举一个例子并更详细地解释一下,那就更好了。 - Devesh
6
值得一看,它有两个图表的良好视觉解释:http://www.cs.sjsu.edu/~pearce/modules/lectures/uml/behavior - heltonbiker

15

活动图是状态图的一种特殊情况,其中状态是活动(“函数”)。

有两种状态:

  • Action状态:
    • 不能进一步分解。
    • 在模型中使用的抽象级别上,会“瞬间”发生。
  • Activity状态:
    • 可以进一步分解。
    • 该活动由另一个活动图建模。

例如,电梯乘坐。

状态图可能包含以下状态:进入、静止、退出、到达。

这些状态转换是由活动图事件引起的。

而活动图中的事件可能是:走进电梯,按下正确楼层按钮,走出电梯。

我认为这两个图重叠。


4

活动图用于记录单个操作/方法、单个用例或业务过程的逻辑流程。它相当于结构化开发中的流程图和数据流程图。状态图描述对象在其属性从一种状态变为另一种状态时的状态。状态图建模用于显示对象经历的状态序列,导致从一个状态转换到另一个状态的原因以及状态改变所导致的动作。


2

活动图是没有触发(事件)机制的功能流程,状态机由触发状态组成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接