这是我第一次使用可视化范例和uml,我对我应该如何表现某些行为感到有点困惑。我想为网站上一个非常经典的登录操作绘制一个序列图:首先,用户提交一个带有用户名和密码的表单,控制器检查是否有一个注册用户具有该用户名(1),然后查看提交的密码是否符合为用户保存的密码。如果回答为“是”,则向现在登录的用户(2)(启动操作的实体)发送"ok“信号,否则将”错误密码“响应发送给原始用户(3)。三个“错误密码”信号导致安全过程阻止任何登录尝试12小时(4)。
这就是我所创造的

我自己非常怀疑这是否接近我想要描述的,首先(1)应该是一个终结点,这个过程必须由用户重新启动,我看不出这个过程是如何在图中显示的,(3)也是如此,我如何声明事件的唯一正确流是1.1,1.3,1.4?在(2)中,我使用了实体生命线,因为我无法找到将消息从生命线添加到实体的方法,事实上,我发现我根本无法使用sequence工具菜单添加任何类型的消息,只有在使用资源目录,添加第二个响应消息以复制第一个响应消息并重命名它时,它才能工作。现在最难的部分是,我该如何建模(4)?循环似乎不正确,因为它不是在同一过程的实例中进行3次迭代,而是在三个不同的步骤序列之后接收到三条相同类型的消息。
博士,我如何在行动中建立一个坚实的秩序,以及我如何证明有一个分支,其中只有一个选项是可维护的?(4)如何建模?
发布于 2015-12-06 20:26:17
这看上去还不错。您可能需要将第二个alt嵌套到第一个,以使其正确。还可以添加[guards]来描述alt部件的条件。
然而,正如您所经历的,图形SD方法不一定是最好的。通常,用伪语言来描述这样的事情比较容易,我建议这样做。SDs很好地概述了在场景中协作的对象。但是对于算法细节,任何文本(伪程序)描述都更适合。
https://stackoverflow.com/questions/34120450
复制相似问题