1

我开发了一个将 HTTP 请求发送到 JSON API 并从中获取响应的 Web 应用程序。它还通过 SMTP 服务器向用户发送电子邮件。我被困在如何在我的序列图中对这些场景进行建模。

编辑:

登录顺序如下:

1-用户在视图中输入他的登录名和密码

2-视图将输入的数据发送给控制器

3-控制器调用位于WebService类中的函数

4-函数创建登录请求模型的实例(登录请求模型是一个与将要发送的JSON数据格式相同的类)

5- 该函数将创建的实例序列化为 JSON,并通过 HTTP 将其发送到远程 Web 服务

6-函数读取响应流并将其反序列化为响应类的新实例

7-然后创建的实例被发送回控制器

8-控制器在收到的实例上运行测试以查看用户是否提供了正确的凭据

9-根据测试结果,控制器将用户重定向到登录页面(如果他输入了正确的凭据)或在索引页面中发送一条消息,指示凭据错误

在这种情况下,我的序列图中的参与者是什么,我应该在其中添加什么以及我应该保留哪些未描述的内容?

4

1 回答 1

1

您的初始图表是一个好的开始。

我在这里用黑色的英文文本注释了它(所以每个人都可以从中受益),你的编号序列列表的引用,以及洋红色的一些变化。我还添加了 3 个圆圈来突出一些一般性评论: 在此处输入图像描述

备注 1:我不清楚这第一条消息是否是同步的(纯箭头)。您的用户类真的在等待返回吗?我认为这可能是异步的,然后返回的最终消息不一定是返回消息(虚线)。

备注2:请求模板/模型上的传入消息4是异步的。所以我希望答案也是异步消息(不加点)。

备注 3:在这里(以及其他几个场合),您有一个传入的“创建”消息。如果你创建一个新对象,你最好从那里开始生命线,以显示实例化

备注:您可以通过使用区域 更明确地显示替代交互(在序列末尾) 。alt

最后一句话:您担心不同类型的传输(即 JSON 与 SMTP)。UML 图不显示消息的格式。因此,如果流程相同但只有协议更改,您可以保留它(并最终制作注释以显示其 JSON 或 SMTP)。如果您在序列中有不同类型的交互,您可以使用alt.

于 2016-05-22T12:10:31.550 回答