用例图和活动图,先有鸡还是先有蛋?

10

我希望对UML行为图的思想流派提出疑问和/或挑战。

首先,我想问一下:用例图还是活动图先进行?

我曾经学过用例图先于每个用例,你需要有一个或多个活动图来表示成功和备选流程。从活动图中,你可以识别名词来建立类。

然而,我也读过其他文章,说你要先创建一个完整的流程活动图,然后才能从中识别出用例。

我可以看到两种情况都可行,但我很困惑,因为对我来说这似乎是一个层次结构的问题。例如,假设我有一个高级业务流程,叫做“学生成绩评分”。如果我将其映射为一个活动图,其中我会看到泳道。我将能够挑选用例,如“确定等级边界”,“提交成绩”,“将成绩转换为等级”等。

你可以认为它们是相同的,即两个图表都满足这个流程建模需求。然后我想建模下一个级别,例如,如何“提交成绩”。

有人能给出最佳实践建议吗:用例图是在活动图之前还是之后?

3个回答

21

首先:

没有哪个UML图表可以成为“第一个”,有时最好同时迭代地处理一些图表。

其次:

每个图表可以用于不同的情境和不同的目的。

用例图与活动图

“用例”是展示用户如何使用系统以达到他们目标的场景。

因此:

您可以使用活动图来可视化步骤,而不是通过书面用例来展示该“场景”。

但是,为了找到用例,您应该在某种程度上发现系统需求(例如范围、广泛的功能集、优先级、成本等)。

在某些业务领域(例如自动化项目),为了发现需求/用例,您可能需要调查当前的业务流程。有时这个业务流程可能很复杂,因此您可能希望使用活动图来进行调查。

因此:

一个活动图可以用来研究业务流程,以了解和发现流程,更好地发现需求。
因此,活动图可以在软件开发的不同阶段和不同目的下使用。
就像其他图表一样,只要它能帮助您提出正确的问题,理解和探索与您目的相关的任何问题,您随时随地都可以使用活动图。
以下是活动图的总体目的概述:
活动图的目的是对较大活动中的行动过程进行建模。在存在用例的项目中,活动图可以以更详细的层次来建模特定的用例。然而,活动图也可以独立于用例用于建模业务级别的功能,例如购买音乐会门票或注册大学课程。活动图还可以用于建模系统级别的功能,例如票务预订数据集如何填充公司销售系统的数据仓库。 UML基础知识:Donald Bell的活动图 为了快速了解哪些图表可用于哪些目的,我建议您查看Scott W. Ambler的迷你书:UML(TM) 2.0风格的元素

不错的答案,但是如果我们有10个用例,那么我们需要为每个用例制作10个图表吗?还是可以在一个图表中解释它们所有的内容? - ARG
1
如果你有10个用例并决定使用活动图解释它们,那么请在10张分离的活动图表中展示它们。要在单个活动图中解释10个用例?这不是一个好主意。但关键是你能理解并且其他人也能理解它... 那么即使你可以在厕纸上展示它... - Hippias Minor
用例只是需求(系统将做什么,而不是如何做)。因此,如果您将10个用例显示为单个活动图表,则这10个用例只是一个用例:某些用例可能不是真实的,它们是场景的一部分或步骤。 - Hippias Minor

13

活动图是UML中抽象度最广的之一。活动可以用于从业务流程(与软件系统相比非常抽象)到单个方法算法(代码级别,实际上是蓝图,即一种抽象级别的地面)的任何事物。

用例在实践中的抽象程度非常有限。它们显示用户与系统之间的交互,并且会处于抽象尺度的中等位置。不像业务过程那么抽象,当然比实现图要抽象得多。

软件项目倾向于从非常抽象的层面(例如业务目标)开始工作,并以抽象0(实施系统)结束。在整个项目期间,分析师、架构师和开发人员共同努力逐步降低这种抽象度,产生越来越少的抽象性物品/模型-业务流程、用例、架构、设计、代码。

在这个介绍之后,回答你的问题并不困难-任何一个都可以首先使用,这取决于你的项目类型和大小。以下是一些例子:

  1. 开发ERP系统的大型项目。几乎可以确定在这种项目中,建模的第一件事是业务流程。在考虑其功能之前很久,团队必须理解业务背景。这种情况下最好的UML图是自然的活动图。一段时间后,当流程清晰且高级需求已知时,可以开始进行用例建模。
  2. 中等或相对较小项目,没有复杂的后台流程(例如移动应用程序开发)可以直接从用例开始,识别用户及其特性。稍后,这些可以使用活动进一步细化。
  3. 某个接口、通信网关驱动程序的非常小的开发项目,交互甚至极少,可以再次使用活动开始建模,显示要实现的具体算法。可以完全跳过用例。
作为总结,我会得出这样的结论:在软件开发中没有不可打破的规则。每个项目都是独特的,每种开发方法都是独特的,甚至每个开发团队都是独特而独特的。考虑“先做哪个图表”是错误的!要考虑在给定时刻需要什么样的分析或规范-哪种建模方式最容易且最有用。当这一点清楚之后,有13个UML图表可以选择,以便最大程度地实现目标。
UML图表的选择是“如何”,比起它,更重要的通常是“什么”。

0

用例图是用于展示功能的,而活动图则用于展示操作(一个功能可以有许多操作)。 例如,用例图就像母亲(可以有很多孩子),而活动图则像在描述母亲的孩子,也就是用例图。


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