48

使用流程图和 UML 活动图之间的实际区别是什么?我有一些想法,但也许我在房间里想念一头大象?

流程图:

  1. 被广泛使用的;
  2. 非程序员容易理解;
  3. 老的?

UML活动图:

  1. 标准化;
  2. 支持并发;
  3. 鲜为人知的语法,但仍然足够简单。

对于我特别记录特定应用程序逻辑块的案例,我决定使用流程图。公司里更多的人将能够理解他们。

4

5 回答 5

23

这似乎是一种偏好,但如果我们有一种用于描述软件系统的标准化语言,我们为什么要使用其他语言呢?这可能会导致过度使用流程图的坏习惯。活动图非常简单。但是,如果您决定描述系统的一个更复杂的方面或尝试更改您所描述的部分,您可能无论如何都必须切换。因此,只需使用 UML 并防止将来出现混淆。

于 2011-08-18T22:56:55.313 回答
17

正如您所注意到的,活动图本质上可以包括并发性和计时。如果你看一下这个来自维基百科的例子,如下图所示,你可以观察到有两个粗横条的部分,以及“提出想法”和“记录想法”两个平行的活动。这被解读为“并行启动这些活动,并且只有在两者都完成时才继续”。流程图无法在符号中表达这一点。

实际上,使用活动图可以让您清楚地思考并发流程。我想你会发现任何能读懂流程图的人都会很快适应。

西班牙维基百科用户 Gwaur CC BY-SA 3.0 的活动图,来自Wikimedia Commons: 来自维基百科的活动图

于 2011-08-16T16:04:44.640 回答
12

根据敏捷建模网站:

在许多方面,UML 活动图是结构化开发中的流程图和数据流图 (DFD) 的面向对象等价物。

来自IBM

但是,流程图不包含 And 状态,操作的流程图无法接收事件。

可能这就是为什么流程图更容易理解的原因,因为活动图具有面向对象开发和并发的概念。

于 2012-01-22T11:29:09.560 回答
1

您可以从 UML 生成源代码,反之亦然;因此,您谈到了“标准化”特征。

于 2011-08-16T16:05:20.660 回答
1

UML 本身就是用来分享你的理解的。以标准化的方式分享理解。由于您的案例是临时的,并且 UML 图的主要用途是提供非正式草图,因此可以在此处使用活动图。但是流程图也可以,因为这里不涉及并行。我一直发现以下论点很有帮助。我正在制作的神器将使谁受益?我可以使用流程图以不言自明的方式表达流程吗?如果是,那么您应该继续使用流程图。但是,如果您的类图、序列等是 UML 格式,那么为了一致性起见,将您的活动图也使用 UML 是有意义的(这里的论点是,如果人们可以理解类、序列 UML 语义,那么就不是活动图表。)。

于 2011-08-18T05:38:13.717 回答