登录操作时序图

Sequence Diagram for Login Operation

这是我第一次使用视觉范式和一般的 uml,我对我应该如何表现某些行为感到有点困惑。 我想为网站上一个非常经典的登录操作绘制一个序列图:首先用户提交一个带有用户名和密码的表单,控制器检查是否有使用该用户名(1)的注册用户,然后查看是否提交的密码与为用户保存的密码相匹配。 如果答案是 "yes",那么 "ok" 信号会发送到现在登录的用户 (2)(与开始操作的实体不同的实体),否则会发送 "wrong password" 响应给原始用户(3)。三个 "wrong password" 信号导致安全程序阻止任何登录尝试 12 小时(4)

这是我设法创建的

我自己很怀疑这接近我想要描述的任何地方,首先(1)应该是一个终止点,该程序必须由用户重新启动,我不能看看图中是如何显示的,(3)也是如此,我怎么能说唯一正确的事件流是1.1、1.3、1.4? 在 (2) 我使用了实体生命线,因为我无法找到一种方法将消息从生命线添加到实体,事实上我发现我根本无法添加任何类型的消息使用序列工具菜单,它只有在我使用资源目录时才有效,要添加第二个响应消息,我必须复制第一个并重命名它。 现在是最难的部分,我如何建模(4)?循环似乎不对,因为它不是在同一过程实例中的 3 次迭代,而是在一系列三个不同的 istances 之后收到的三个相同类型的消息。

tl;博士 我如何在操作中建立一个可靠的顺序以及我如何显示有一个分支,其中只有两个选项之一可用? (4) 如何建模?

看起来不错。您可能需要将第二个 alt 嵌套到第一个中以使其正确。您还可以添加 [guards] 来描述 alt 部分的条件。

但是,根据您的经验,图形 SD 方法不一定是最好的。通常用伪语言来描述这样的事情会更容易,我建议这样做。 SD 很适合获取场景中协作对象的概览。但是对于算法细节,任何文本(伪程序)描述都更适合。