注册和报告的序列图

Posted

技术标签:

【中文标题】注册和报告的序列图【英文标题】:Sequence Diagram for Registration and Reporting 【发布时间】:2015-06-10 21:10:29 【问题描述】:

我正在做序列图,但我在这些图表的设计中遇到了一些问题。因此,我正在制作帐户创建图表,如下所示:

所以,首先用户进入注册页面,然后输入他的信息。我还想展示如果用户在注册页面中输入的信息不正确会发生什么:我将注册页面中的验证输入箭头添加到数据库中。

    我不确定谁应该验证输入是否正确,说是数据库检查输入的数据是否有效是否正确?

    另外,将数据库中的虚线箭头添加到注册页面是否正确还是应该直接进入if条件?

    你会建议我改变什么?

【问题讨论】:

【参考方案1】:

1) ..谁应该验证..输入...数据库..?

您可以将数据验证的责任委托给任何名称的参与者。数据库是很好的候选者,许多SQL 数据库都内置了某种integrity constraint 检查机制

如果已配置,此类数据库将在insert/update 尝试时验证数据并拒绝它们。因此,在您的情况下,如果 SQL 数据库会按照他们通常的方式处理它,则 VerificationResult 将从 AddNewUser() 消息中返回,而不是更早

然而,对于现实生活中的应用,根据Open Web Application Security Project (OWASP) → Data Validation 的良好候选者将是:

..完整性检查必须包括数据从可信边界传递到不可信边界,例如从应用程序到隐藏字段中的用户浏览器,或第三方支付网关,例如退货时内部使用的交易 ID。

..验证必须在每个tier..

上执行

2) ..从数据库到注册页面的虚线箭头..直接到if..?

我会将execution (activation)向下扩展,如下所示,但这并不意味着您的方式不正确

另见:uml-diagrams.org: UML Sequence Diagrams Examples

3) ..建议..改变?

我会审查synchronous/asynchronous 消息的使用。似乎您对所有事情都使用一种箭头

【讨论】:

我看不出我的图表和您发布的图表有什么不同? @simon 只是绿色条不同。在我的版本中,它是一个不间断的块,其中进一步的协商细节意味着overlapping execution 或嵌套函数调用。但这正是我绘制它的方式,基于uml-diagrams.org 中的示例。我没有检查www.omg.org/spec/UML/2.5/Beta2 对notation 的评价,也没有检查其他来源,对此我很抱歉,我并不是说您的版本不正确。 My-inside-head 语法验证器已损坏,我在这里没有看到问题,但这意味着什么 啊,是的,我没看到,是的,我也差不多。顺便说一句,我们的教授以前从未教过我们有关同步和异步消息的知识。你觉得我刚刚添加的报表管理时序图怎么样? @simon 在报告图中我将使用填充的粗箭头(同步调用)并且在Reports Page 生命线中没有中断(假设屏幕上会显示旋转沙漏光标)用户点击RequestReport按钮的时刻和Confirmed消息框出现的时刻) 在哪个箭头?但是您如何看待数据库中的确认箭头?它应该在那里吗?我觉得它毫无用处。我希望它的方式是,当我单击 generateReport 按钮时,它将从数据库中获取数据并显示或下载报告。

以上是关于注册和报告的序列图的主要内容,如果未能解决你的问题,请参考以下文章

金融时间序列分析用R语言画简单收益率和对数收益率的ACF图?!

使用 Emacs 创建 OAuth 2.0 的 UML 序列图 | Linux 中国

序列图(SD)和系统序列图(SSD)之间的区别?

UML学习-----序列图

如何利用 Enterprise Architect画序列图

MarkDown画图(实例讲解) —— 流程图、序列图、饼图、甘特图