我想质疑和/或挑战UML行为图的思想流派。
首先,我想问一下,首先是什么:用例或活动?
我被告知首先使用用例图,然后对于每个用例,您有一个或多个活动图来表示成功和备用流。从活动图中,您可以识别名词以建立类。
但是,我已经阅读了其他文章,这些文章说您为端到端流程创建了一个活动图,然后从中可以识别用例。我可以看到这两种情况都有效,而且很困惑,对我而言,它似乎是层次结构的一种情况。例如,假设我有一个高级业务流程,即“评分学生成绩”。如果我将其映射为活动图,我将在其中看到泳道。我可以选择用例,例如“确定成绩边界”,“提交结果”,“将结果转换为成绩”等。
您可能认为它们是相同的,即两个图表都符合此流程建模需求。然后,我想模拟下一个级别,例如,“如何提交结果”。
有人可以就最佳实践提出建议:用例图是在活动图之前还是之后?
答案 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(已实现的系统)结束。在项目分析师期间,架构师和开发人员共同努力逐渐降低此抽象,从而产生总是不那么抽象的工件/模型 - 业务流程,用例,架构,设计和代码。
在介绍之后,回答你的问题并不难 - 任何一个都可以先使用,这取决于你的项目类型和大小。很好的例子:
作为总结,我会得出结论,在软件开发中没有这种牢不可破的规则。每个项目都是独一无二的,每种开发方法都是独一无二的,即使每个开发团队都是独特的。想一想&#34;哪个图&#34;先做是直的,简直错了!想一想在特定时刻需要什么样的分析或规范 - 最简单和最有用的建模。如果清楚的话 - 有13个UML图表可以从中获取,以便最佳地实现目标。
UML图的选择是&#34; HOW&#34;。比这更重要的是 - &#34;什么&#34;。
答案 2 :(得分:0)
用例图用于显示功能,活动图用于显示操作(1个功能可以有许多操作)。 例如。用例诊断。是莫赫(可以有很多孩子)和 活动诊断。就像描述母亲的孩子,即用例诊断。