系统序列图是分析还是设计的一部分?

Is System Sequence Diagram part of Analysis or Design?

请问系统时序图(SSD)属于设计部分还是分析部分?

A System Sequence Diagram (SSD) is be a special type of UML sequence diagram 旨在为一个特定用例记录所考虑的系统与外部参与者之间的交换顺序。

它不是标准的 UML 图,而是基于此类图构建的。 "System analysis and design in a changing world" 一书似乎推广了这种方法,但我可以找到可追溯到 2000 年初的文章(例如 this or this)。

上述书籍将SSD放在分析活动中。原因是 analysis 是关于理解需求的,通常从用例开始。 SSD然后就是这个分析的微调

然而,有人可能会争辩说它是设计活动的一部分,因为用例是需求,但是如何通过一系列交换来解决这些需求已经是 design 的开始解决方案,就像您开始草拟 UI 一样:不止一个 SSD 可以满足需求,您可以选择。

所以答案取决于您使用模型的目的。

我自己的观点是,你已经在起草解决方案了,所以应该是设计,除非你对现有的应用程序做一些逆向工程,或者你的客户有非常详细的要求

详细说明 Christophe 的回答:

我要补充一点,分析设计 是两个高度交织的活动,因此您可能会在这两种情况下看到这些 SSD,并且它会很好并且可以接受。用例,那些涉及系统的,必然是一个设计产物(它们是 系统对外部参与者所做的 的设计),尽管你当然可以看到同样的事情纯 分析 输出(告诉您系统 需要 做什么)。这些东西很难分开。这一点可能看起来很哲学(有点),但用这些术语来思考是有用的。

当您看到人们创建 "Login" 个用例时,您可以打赌他们已经进入 纯设计 ,换句话说:功能分解。在分析术语中,用户 登录 的状态是用例的 约束 ,而不是用例本身。因此,拥有一个名为登录的用例仅代表一种设计选择(顺便说一句,如果您在执行分析和设计的人员之间存在责任划分的上下文中看到它,那么您最好将其视为分析失败:分析师本质上是在设计系统,这不是他们的职责)。分析师有时使用用例来建模仅与业务流程相关的需求层,通常称为 "Business Use Cases",本身不涉及任何 系统 。但是20多年前的Use Cases起源于系统space.