实现序列图时出现轻微问题

时间:2013-02-20 14:36:42

标签: php html database web sequence-diagram

我在下面的屏幕截图中有一个序列图,但我有两个小问题:

问题1:页面按照顺序排列,直到用户进入Penalty Marks Information页面,然后他们决定是否要enable penalty marks disable penalty marks。如果已启用,则会转到Penalty Marks for Each Answer页面,但如果要禁用,则会直接转到Assessment Completed页面。我的问题是,在尝试匹配时,下图是正确的,还是需要在图中以不同的方式实现。

问题2:每个页面都被提交后,它会自己插入到数据库表中,如何在图表中包含它也可以插入到数据库中?有人可以在两页之间展示一个如何做到这一点的例子,这样我就可以看到它是如何完成的?

序列图的截图:

enter image description here

谢谢

1 个答案:

答案 0 :(得分:2)

序列图似乎不遵循一般方法。从WikiPedia article(和UML用户指南):序列图

  

描述了场景中涉及的对象和类   在执行所需的对象之间交换的消息序列   方案的功能

因此,“泳道”不应标记为“创建评估”等活动,而应使用解决方案中的对象。您显示的对象取决于系统设计;在MVC应用程序中,您将显示“评估控制器”与“评估”模型对象交谈,该对象可能与数据库通信以存储和检索评估。

消息在系统中的actor /对象之间发送。因此,登录的教师向评估控制器发送消息“创建”;评估控制器验证消息并创建新的“评估”模型对象,该对象又可以向数据库发送“持久”消息。

当然,还有其他使用序列图的方法 - 它取决于您使用的粒度级别。您可以简单地对域实体(教师,评估,问题,答案等)进行建模,并探索他们如何相互发送消息以实现场景,或者您可以对软件组件(浏览器,Web服务器,脚本引擎,数据库)进行建模 - 这取决于你想要达到的目标。

一个非常简单的版本可能是这样的(我在创建答案后停止了,因为我不能完全遵循这个要求)。 rough sketch

Apropos问题2:首先你必须决定哪个组件告诉数据库保存评估 - 这完全取决于你的软件设计。做出决定后,从该组件到数据库绘制一条线,并带有“保存”消息;数据库响应“成功”或“失败”。