用例图和活动图,鸡肉和鸡蛋?

时间:2013-09-30 13:19:08

标签: android-activity uml diagram

我想质疑和/或挑战UML行为图的思想流派。

首先,我想问一下,首先是什么:用例或活动?

我被告知首先使用用例图,然后对于每个用例,您有一个或多个活动图来表示成功和备用流。从活动图中,您可以识别名词以建立类。

但是,我已经阅读了其他文章,这些文章说您为端到端流程创建了一个活动图,然后从中可以识别用例。

我可以看到这两种情况都有效,而且很困惑,对我而言,它似乎是层次结构的一种情况。例如,假设我有一个高级业务流程,即“评分学生成绩”。如果我将其映射为活动图,我将在其中看到泳道。我可以选择用例,例如“确定成绩边界”,“提交结果”,“将结果转换为成绩”等。

您可能认为它们是相同的,即两个图表都符合此流程建模需求。然后,我想模拟下一个级别,例如,“如何提交结果”。

有人可以就最佳实践提出建议:用例图是在活动图之前还是之后?

3 个答案:

答案 0 :(得分:19)

首先:

  

任何UML图之间没有竞争是“第一个   一个“。有时最好同时和迭代地处理一些图表。

第二

  

每个图表可以在不同的上下文中使用,也可以用于不同的目的。

用例图与活动图

“用例”是表示用户如何使用系统实现目标的场景。

所以:

  

不是用书面用例显示这个“场景”,而是你   可以使用活动图来显示其“步骤”。

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

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

所以:

  

活动图可用于调查业务流程   理解并发现流程,以更好地发现需求。

所以:

  

活动图可用于不同级别的软件   不同目的的发展阶段。

与其他图表一样,您可以随时随地使用活动图表,只要它可以帮助您提出正确的问题,了解并探索与您的目的相关的任何问题。

以下是活动图的摘要目的:

  

活动图的目的是模拟程序流程   作为更大活动的一部分的行动。在使用的项目中   案例存在,活动图可以模拟特定用例   更详细的水平。但是,可以使用活动图   独立于用于建模业务级功能的用例   比如购买音乐会门票或注册大学课程。   活动图也可用于建模系统级功能,   比如票务预订数据集市如何填充公司   销售系统的数据仓库。   UML Basics : The activity diagram by by Donald Bell

为了快速掌握哪些图表可用于哪些目的,我建议您查看Scott W. Ambler的迷你书籍:The Elements of UML(TM) 2.0 Style

答案 1 :(得分:12)

活动图是UML中具有最宽抽象范围的那些之一。活动可用于业务流程(非常抽象,与软件系统比较)和单一方法算法(代码级别,实际上是蓝图,意味着抽象的基础级别)之间的任何事物。

另一方面

用例在抽象方面实际上非常有限。它们显示了用户和系统之间的交互,并且处于抽象比例中间的某个位置。不像业务流程那样抽象,并且比实现图更具抽象性。

软件项目倾向于从非常抽象的层面(例如业务目标)开始工作,并以抽象0(已实现的系统)结束。在项目分析师期间,架构师和开发人员共同努力逐渐降低此抽象,从而产生总是不那么抽象的工件/模型 - 业务流程,用例,架构,设计和代码。

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

  1. 开发ERP系统的大型项目。几乎可以肯定,在这种项目中,建模的第一件事是业务流程。在考虑其功能之前很久,团队必须了解业务背景。对此最好的UML图自然是活动图。过了一段时间,当流程清晰且高级需求已知时,可以启动用例建模。
  2. 中等规模的相对较小的项目,后台没有复杂的流程(例如移动应用程序开发)可以直接使用用例,识别用户及其功能。稍后,可以使用活动进一步细化这些内容。
  3. 一些接口的非常小的开发,通信网关的驱动程序,高技术,甚至用户交互最小,建模可以从活动再次开始,显示具体的算法也被实现。可以完全跳过USe案例。
  4. 作为总结,我会得出结论,在软件开发中没有这种牢不可破的规则。每个项目都是独一无二的,每种开发方法都是独一无二的,即使每个开发团队都是独特的。想一想&#34;哪个图&#34;先做是直的,简直错了!想一想在特定时刻需要什么样的分析或规范 - 最简单和最有用的建模。如果清楚的话 - 有13个UML图表可以从中获取,以便最佳地实现目标。

    UML图的选择是&#34; HOW&#34;。比这更重要的是 - &#34;什么&#34;。

答案 2 :(得分:0)

用例图用于显示功能,活动图用于显示操作(1个功能可以有许多操作)。 例如。用例诊断。是莫赫(可以有很多孩子)和 活动诊断。就像描述母亲的孩子,即用例诊断。