php - 无法理解序列图

标签 php uml sequence diagram

过去几天我一直在查看几个 UML 教程,但我很难理解 UML 序列图。快速浏览并浏览指南,一切似乎都相当简单,但当我查看提供的示例时,它很快就会变得令人困惑。

我目前正在尝试为我的PHP网站系统准备序列图,该系统具有登录、注册和私有(private)消息等功能。其中每一个本质上都是用例,这意味着每个用例都需要自己的序列图,对吗?或者序列图是否应该在一张图中显示整个系统?我发现的很多示例似乎一次性涵盖了整个系统,尽管功能如此之多,我不知道如何在一张图中完成。

到目前为止我已经准备了2个简单的登录和注册:

用例 1

enter image description here

用例 2

enter image description here

最佳答案

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

对于序列图,它是一个行为图显示具体、简单的场景,强调协作对象和消息它们在场景的实现过程中进行交换。

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

因此,理论上每个用例都会有几个序列图,每个场景一个。但是,您应该仔细考虑制作每个序列是否有意义,因为大多数序列都是微不足道的。您应该专注于有意义的场景,某种程度上有趣,为某人带来值(value)。

最后,我建议您还查看事件图,因为它与序列很好地互补。还有行为,但侧重于任务顺序、决策(顺序的弱点)、并行任务、责任和数据流。

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

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

关于php - 无法理解序列图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23453017/

相关文章:

php - 我不希望 child 继承 parent 的CSS

java - Eclipse 的最佳 UML 插件

sql - PostgreSQL 列值必须按顺序排列

php - 如何以漂亮的方式将 web 转换为 pdf

php - 突出显示在 Elasticsearch 和 PHP 中不起作用

uml - 如何在 Magic Draw 中创建对象图?

SQL:检查约束/序列时出现问题

r - 在 R 中创建特定的日期/时间序列

php - mysqli 连接在函数内部不起作用?

c++ - 使用 UML 表示在 C++ 模板类中定义的 typedef