2011-01-10 133 views
2

我和我的大学教授讨论过UML图。 他认为序列图应在绘制类图之前绘制,但我认为是相反的。我认为在完成用例图之后,下一个图应该是类图,然后我们应该得到序列图。 Rational rose要求我们使用序列图中的类,它们已经在类图中。哪一个应该先绘制,类别或时序图?

任何人都可以帮助我吗?

+0

序列图描述了对象/组件如何相互通信以执行过程。这可能会对班员造成影响。就我个人而言,我会同意你的教授,但我有兴趣在这里看到答案... – ndtreviv 2011-01-10 16:48:54

回答

7

我认为你们都错了。他们应该在同一时间绘制。当你绘制你的序列图时,你无疑会想出你需要跟踪状态的属性,或者你没有想过如果你在真空中做类图。

当然,这是非常主观和个人的,但多年的实际经验(与学术理论​​相反)教会了我在同时工作。 MAYBE从类图开始,但当你开始浏览流程时,类图总是变化。

+0

+1。它们同时演变,相互通知和验证对方。首先做类图,你会错过行为建模将突出显示的结构(关系,类,属性)。先行动,你会错过结构元素。 – sfinnie 2011-01-10 21:14:00

+0

感谢大卫,似乎你开发了基于UML的程序,这就是我想要做的,我不想仅仅为了绘制图表绘制一些图表,我希望它们尽可能接近我的程序。你为此建议哪本书? – m0j1 2011-01-10 23:05:36

4

这很大程度上取决于你打算如何做事。我认为这是一个主观问题。如果你愿意解释为你的用例执行的操作,并且在完成这些操作之后,根据你需要执行的教授顺序来编写这些类。

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

根据我的经验,我同时做它们。我将基本属性放在类图中,而不是操作,并且当我执行序列图时,我将类所需的方法和属性添加到类图中。

0

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

1

没有一个标准答案。有几种观点,方法和方法。在统一过程中,我相信你首先确定用例,然后为它们做出实现,例如序列图。在使用情况中,有演员和系统和/或其部分在一个序列中进行交互。实际上,这种交互应该可以帮助你分解你的设计并上课。一旦你在分析层次上有了课程,你就可以进一步设计分类和设计交互。然而,在图表中绘制这些图标是相当多的,大部分时间代码是这个级别上最好的文档,即使生成的图表太大,也更难以理解,然后编码本身。

0

对于除最简单系统以外的所有系统的结构和行为模型是自然地同时并且反复地创建的,随着时间推移而改进。

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

然后,您可能想要使用序列或通信图探索用例和场景,这将公开所需对象通信的细节,并因此通知公共方法和关系的生成,以改进类图探索可能会产生更多对象和类的系统行为。

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

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

0

你需要买一些衣服,你将如何继续。你首先选择衣服,或者你会首先决定去哪里?同时,如果你想购买衬衫,你会去鞋店吗?

因此,无论是迭代的,但绝对第一步是非常高的(部分)序列的水平,那么向下钻取到类级序列

1

准备,你需要的类而不是类图 你可以准备一个空类,序列图在准备序列图的过程中... ... 识别类对象是准备序列的一部分,或者您可以尝试识别您的对象之前手.... 序列是逻辑过程,而类图是结束输出

0

你应该首先决定你的申请流程,这意味着你应该先dra w序列图。它会显示您的应用程序的流程后,你应该去类图。

相关问题