过去几天我一直在查看几个 UML 教程,但我很难理解 UML 序列图。快速浏览并浏览指南,一切似乎都相当简单,但当我查看提供的示例时,它很快就会变得令人困惑。
我目前正在尝试为我的PHP网站系统准备序列图,该系统具有登录、注册和私有(private)消息等功能。其中每一个本质上都是用例,这意味着每个用例都需要自己的序列图,对吗?或者序列图是否应该在一张图中显示整个系统?我发现的很多示例似乎一次性涵盖了整个系统,尽管功能如此之多,我不知道如何在一张图中完成。
到目前为止我已经准备了2个简单的登录和注册:
用例 1
用例 2
最佳答案
每个 UML 图都强调系统方面(内容和形式)并抽象其他方面。您应该了解这一点,以便决定在哪种情况下使用哪种图表、使用多少图表以及如何使用。系统建模的一个伟大的、创造性的部分。
对于序列图,它是一个行为图,显示具体、简单的场景,强调协作对象和消息它们在场景的实现过程中进行交换。
尽管序列可以显示条件流程和决策(如您的示例中的用户和通过检查),但这不是它的优势,因为它打破了事件的自然直线时间线。
因此,理论上每个用例都会有几个序列图,每个场景一个。但是,您应该仔细考虑制作每个序列是否有意义,因为大多数序列都是微不足道的。您应该专注于有意义的场景,某种程度上有趣,为某人带来值(value)。
最后,我建议您还查看事件图,因为它与序列很好地互补。还有行为,但侧重于任务顺序、决策(顺序的弱点)、并行任务、责任和数据流。
从另一个角度来看,一个事件可以涵盖多个序列。这些对于非技术人员(客户、用户)来说更加清晰,而顺序对于开发人员、架构师等来说更有用。
大多数情况下,多个图表的组合可以提供最佳结果。序列自然需要一个结构“伴侣”来定义参与场景的对象:组件、域类或类似的对象。
关于php - 无法理解序列图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23453017/