哪个应该先画,类或序列图?

时间:2011-01-10 16:43:18

标签: uml class-diagram sequence-diagram

我和我在大学的教授讨论过UML图。 他认为应该在进入类图之前绘制序列图,但我认为相反。我想在完成用例图之后,下一个图应该是类图,之后我们应该得到序列图。 Rational rose要求我们使用序列图中的类,这些类已经在类图中。

任何人都可以帮我吗?

8 个答案:

答案 0 :(得分:7)

我认为你错了。它们应该同时绘制。当您绘制序列图时,毫无疑问,您将获得跟踪状态所需的属性,或者您在真空中执行类图时没有想到的属性。

当然,这是非常主观和个人的,但多年的实际经验(与学术理论​​相对)已经教会我同时研究这两者。可能从类图开始,但是当您开始处理流程时,类图总是会发生变化。

答案 1 :(得分:4)

这很大程度上取决于你打算如何做事。我认为这是一个主观问题。如果您更愿意解释为您的用例执行的操作,并在完成此操作后,根据您的教授正确执行序列所需的内容编写类。

但是如果您更喜欢确定类的结构是什么,然后将动作序列调整为此,那么您将首先执行类图,然后再执行序列。

根据我的经验,我同时做这些。我把基本属性放在类图中但不是动作,当我做序列图时,我将我需要的方法和属性添加到类图中。

答案 2 :(得分:1)

没有一个标准答案。有几种意见,方法和方法。在统一流程中,我相信您首先确定用例,然后为它们进行实现,例如序列图。在用例中,有参与者和系统和/或其部分按顺序交互。实际上,这种交互应该可以帮助您分解设计并进入课堂。在分析级别上有课程后,您可以进一步设计classess和设计交互。然而,在图表中绘制这些是非常多的,大多数时候代码是这个级别上的最佳文档,即使生成的图表太大而且更难理解代码本身。

答案 3 :(得分:1)

要准备序列图,您需要的是类而不是类图 在准备序列图时,您可以即时准备空类.... 标识类对象是准备序列的一部分,或者您可以尝试先识别您的对象.... 序列是逻辑过程,而类图是结束输出

答案 4 :(得分:0)

我认为没有创建图表的顺序,因为两者都是系统的两个不同视图:类图结构(静态)和序列是行为(动态)。我将从序列图开始,因为您将在序列中发现更多要创建的类。做任何对你有意义的事情。如果你做更多面向对象的编程,我会考虑在序列之前做类。

答案 5 :(得分:0)

除最简单的系统之外的所有系统的结构和行为模型自然地同时和迭代地创建,随着时间的推移进行精炼。

您可能有一些“对象发现”的方法,例如CRC卡,它将产生一组初始类,协作(与它们交互的类)和职责,通知它们将需要的方法和内部行为/状态/活动。

然后,您可能希望使用序列或通信图来探索用例和场景,这将公开所需对象通信的详细信息,从而通知生成公共方法和关系,以便在同一探索时优化类图可能产生更多对象和类的系统行为。

您可能还想探索类的内部行为,特别是如果它们具有有状态和/或主动行为;活动和状态机图对此很有用。

无论哪种方式,我怀疑Rational Rose的使用确实是图表创建顺序的决定因素。 Rational可能要求序列图上的类存在,但我想它们实际上不需要出现在类图上;它们可能同样可以在序列图上创建,然后放在类图上,甚至可以在项目浏览器中创建,也可以在该工具中等效创建。即使创建类的唯一方法是将其放在类图上,也不需要在探索序列图上的交互之前优化和完成类或其关系。

答案 6 :(得分:0)

你需要购买一些衣服,你将如何进行。你先开始选择衣服还是先决定去哪里?同时,如果你想买衬衫,你会去鞋店吗?

所以两者都是迭代的,但绝对第一步是非常高(组件)级别的序列,然后深入到类级序列

答案 7 :(得分:0)

您应首先确定您的应用程序流程,这意味着您应首先绘制序列图。在此之后,它将显示您的应用程序的流程,您应该去类图。