注册和报告的序列图
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图?!