无法理解序列图

时间:2014-05-04 05:42:04

标签: php uml sequence diagram

过去几天我一直在寻找几个UML教程,但是我很难理解UML序列图。通过快速浏览并浏览指南,这一切看起来都相当简单,但是当我查看提供的示例时,它会让人感到困惑。

我目前正在尝试为我的PHP网站系统准备序列图,该系统具有登录,注册和私人消息等功能。这些中的每一个本质上都是用例,这意味着每个用例都需要自己的序列图,对吗?或者序列图是否应该在一个图中显示整个系统?我发现很多例子似乎只用一个镜头覆盖了整个系统,虽然有这么多功能我不知道如何在一个图表中完成。

到目前为止,我准备了两个简单的登录和注册:

用例1

enter image description here

用例2

enter image description here

2 个答案:

答案 0 :(得分:3)

每个UML图都强调系统方面(内容和形式)和抽象其他方面。您应该了解这一点,以便决定在哪种情况下使用哪个图表,有多少图表以及如何使用。系统建模的一个伟大的,创造性的部分。

在序列图的情况下,它是行为图显示具体,直接的场景强调协作对象和消息他们在实施情景期间进行交流。

尽管序列可以显示条件流和决策(如在您的示例中,用户和通过检查),但它不是它的强项,因为它正在打破其自然的直接时间线事件。

因此,理论上每个用例都有几个序列图,每个场景一个。但是,如果每个序列都有意义,你应该好好思考,因为大多数序列都是微不足道的。你应该专注于有意义的场景,不知何故有趣,为某人带来价值。

最后,我建议你也看一下活动图,因为它与序列很好地互补。也是行为,但侧重于任务序列,决策(序列的弱点),并行任务,责任和数据流。

从另一个角度来看,一项活动可涵盖多个序列。这些对于非技术人员(客户,用户)来说更加清晰,而序列对开发人员,架构师等更有用。

大多数情况下,几个图表的组合可以得到最好的结果。序列自然需要结构“伴侣”来定义参与场景的对象:组件,域类或类似。

答案 1 :(得分:2)

序列图旨在传达某些事物对其他人的作用,因此优先考虑的是使它们易于理解。在具有用户交互的系统中,您可以使用序列图来解释复杂的用例。整个系统的图表没有多大意义,因为流程完全取决于用户的工作。为简洁起见,您可以将两个相关的用例一起描述,如果它清楚一个结束而另一个结束,例如注册,登录和注销。如果系统没有用户交互,则可以通过单个序列图描述它的工作原理。