UML – 用例图
为一个系统建模,最重要的方面是捕捉动态行为。动态行为指的是系统在运行/操作时的行为。
只有静态行为并不足以为系统建模,动态行为比静态行为更重要。在UML中,有五种图可以用来模拟动态性质,用例图就是其中之一。现在我们必须讨论用例图的动态性质,应该有一些内部或外部因素来进行交互。
这些内部和外部代理被称为行为者。用例图由行动者、用例和他们的关系组成。该图被用来为一个应用程序的系统/子系统建模。一个用例图捕获了一个系统的特定功能。
因此,为了对整个系统进行建模,需要使用一些用例图。
用例图的目的
用例图的目的是为了捕捉系统的动态方面。然而,这个定义对于描述其目的来说过于笼统,因为其他四种图(活动图、序列图、协作图和状态图)也有同样的目的。我们将研究一些具体的目的,这将使它与其他四种图相区别。
用例图是用来收集系统的需求,包括内部和外部的影响。这些需求大多是设计需求。因此,当一个系统被分析以收集其功能时,用例被准备好并被确定为角色。
当最初的任务完成后,用例图被建模以呈现外部的观点。
简而言之,用例图的目的可以说是以下几点
- 用来收集一个系统的需求。
-
用于获得一个系统的外部视图。
-
识别影响系统的外部和内部因素。
-
显示需求之间的相互作用是行动者。
如何绘制用例图
用例图被认为是对一个系统的高水平需求分析。当一个系统的需求被分析时,功能被捕获在用例中。
我们可以说,用例只不过是以一种有组织的方式写的系统功能。与用例相关的第二件事是演员。行为者可以被定义为与系统交互的东西。
行为者可以是人类用户,也可以是一些内部应用,或者是一些外部应用。当我们计划画一个用例图时,我们应该确定以下项目。
- 表示为用例的功能
-
行为者
-
用例和角色之间的关系。
用例图的绘制是为了捕捉系统的功能需求。在确定了上述项目后,我们必须使用以下准则来绘制一个有效的用例图
- 用例的名称是非常重要的。名字的选择应该是能够识别所执行的功能的。
-
给演员一个合适的名字。
-
在图中清楚地显示关系和依赖性。
-
不要试图包括所有类型的关系,因为图表的主要目的是为了识别需求。
-
在需要的时候使用注释来澄清一些重要的观点。
下面是一个代表订单管理系统的用例图。因此,如果我们看这个图,我们会发现三个用例 (Order, SpecialOrder, and NormalOrder) 和一个角色,即客户。
SpecialOrder和NormalOrder用例是由 Order 用例扩展而来。因此,它们有扩展关系。另一个要点是确定系统的边界,如图所示。行为体Customer位于系统之外,因为它是系统的一个外部用户。
在哪里使用用例图
正如我们已经讨论过的,UML中有五种图来模拟系统的动态视图。现在,每一个模型都有一些特定的使用目的。事实上,这些特定的目的是一个运行中的系统的不同角度。
为了理解一个系统的动态,我们需要使用不同类型的图表。用例图是其中之一,它的具体目的是收集系统需求和行为者。
用例图指定了一个系统的事件和它们的流程。但用例图从来没有描述它们是如何实现的。用例图可以被想象成一个黑盒子,只有输入、输出和黑盒子的功能是已知的。
这些图是在一个非常高的设计水平上使用的。这种高层次的设计被反复完善,以获得一个完整的、实用的系统图。一个结构良好的用例还描述了前条件、后条件和异常情况。在进行测试时,这些额外的元素被用来制作测试用例。
尽管用例不是正向和反向工程的良好候选者,但它们仍然以稍微不同的方式被用来进行正向和反向工程。对于逆向工程也是如此。用例图的使用方式不同,以使其适用于逆向工程。
在正向工程中,用例图被用来制作测试用例,在反向工程中,用例被用来准备现有应用程序的需求细节。
用例图可以用于
-
需求分析和高层设计。
-
对系统的背景进行建模。
-
逆向工程。
-
正向工程。