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

dar*_*ren 9 diagram uml android-activity

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

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

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

但是,我已阅读其他文章,说明您为端到端流程创建活动图,然后从中可以识别用例.

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

您可以认为它们是相同的,即两个图表都将满足此流程建模需求.然后我想建立下一个级别的模型,例如,你如何"提交结果".

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

Hip*_*nor 19

第一:

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

第二:

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

用例图与活动图

"用例"是表示用户如何使用系统实现其目标的场景.

所以:

您可以使用活动图可视化其"步骤 ",而不是使用书面用例显示此"方案" .

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

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

所以:

活动图可用于调查业务流程以了解和发现流程,以更好地发现需求.

所以:

活动图可以在不同级别的软件开发阶段用于不同目的.

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

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

活动图的目的是模拟作为较大活动一部分的操作的程序流程.在存在用例的项目中,活动图可以在更详细的级别对特定用例建模.但是,活动图可以独立于用例来使用,用于建模业务级功能, 例如购买音乐会门票或注册大学课程.活动图还可用于建模系统级功能,例如票务预订数据集市如何填充公司销售系统的数据仓库. UML基础知识:Donald Bell的活动图

为了快速掌握哪些图表可用于哪些目的,我建议您查看Scott W. Ambler的迷你书:UML(TM)2.0样式的元素


Ale*_*eks 12

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

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

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

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

  1. 一个大型的ERP系统开发项目.几乎可以肯定,在这种项目中,建模的第一件事是业务流程.在考虑其功能之前很久,团队必须了解业务背景.对此最好的UML图自然是活动图.一段时间之后,当流程清晰且高级需求已知时,可以启动用例建模.
  2. 一个中等规模的相对较小的项目,在后台没有复杂的流程(例如移动应用程序开发)可以直接从用例开始,识别用户及其功能.稍后,可以使用活动进一步细化这些.
  3. 一些接口的非常小的发展,通信网关的驱动,高技术,即使用户交互最小,建模也可以从活动开始,显示具体算法也实现.可以完全跳过USe案例.

作为总结,我将得出结论,在软件开发中没有这种牢不可破的规则.每个项目都是独一无二的,每种开发方法都是独一无二的,即使每个开发团队都是独特的.想想首先要做的"哪个图表"是直的而且简直错了!想一想在特定时刻需要什么样的分析或规范 - 最简单和最有用的建模.当这一点很清楚时 - 有13个UML图表可以从中获取,以便最佳地实现目标.

UML图的选择是"如何".比这更重要的是"什么".