2015-04-06 30 views
2

我正在做序列图,但我在设计这些图时遇到了一些问题。所以我做了帐户创建的图如下:注册和报告的序列图

因此,首先用户进入注册页面,然后输入自己的信息。我还想显示如果用户在注册页面中输入的信息不正确时会发生什么情况:我将验证输入箭头从注册页面添加到数据库。

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

  2. 此外,将数据库中的虚线箭头添加到注册页面还是应该直接转到if条件?

  3. 你会建议我改变什么?

enter image description here

回答

0

1)..who应verify..input ...数据库..?

您可以将数据验证的责任委托给具有任何名称的任何角色。数据库是不错的人选,很多SQL数据库有某种integrity constraint检查机制内置

  • 如果配置,这样的数据库将验证数据,并在insert/update尝试的那一刻拒绝。所以你的情况,如果SQL数据库将处理它,他们通常做的方式,VerificationResult将从AddNewUser()消息中返回,而不是越早

  • 然而,现实生活中应用的很好的候选人根据Open Web Application Security Project (OWASP) → Data Validation是:

    ..无论数据来自受信任的一个不太可信边界通行证,如在一个隐藏领域的应用到用户的浏览器,或向第三方支付网关完整性检查必须包括,如内部使用的交易ID一旦返回..

    .. 验证必须在每tier进行..

2)..dashed从数据库page..directly箭头到注册去if ..?

我会向下延伸的execution (activation)如下图所示,但它并不意味着你的方式是不正确的

enter image description here

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

3)..advice ..要改变?

我会审查使用synchronous/asynchronous消息。看起来你对所有东西都使用一种类型的箭头

+0

我没有看到我的图表和你发布的内容有什么区别? – simon 2015-04-06 20:06:30

+0

@simon只是绿色的酒吧是不同的。在我的版本中,它是一个不间断的块,其中进一步的协商细节意味着像“重叠执行”或嵌套函数调用。但这只是我绘制它的方式,基于'uml-diagrams.org'的例子。我没有检查[www.omg.org/spec/UML/2.5/Beta2](http://www.omg.org/spec/UML/2.5/Beta2/)关于'notation'的说法,也没有其他的来源,我很抱歉,我不是说你的版本不正确。我的头里的语法验证程序被破坏,我在这里没有看到问题,但这意味着什么都没有 – xmojmr 2015-04-06 20:20:24

+0

啊是的,我没有看到,是的,我也一样。 Btw我们的教授从来没有教过我们关于同步和异步信息。 您如何看待我刚刚添加的报表管理时序图? – simon 2015-04-06 20:27:06