0

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

问题 1:页面遵循顺序,直到用户进入Penalty Marks Information页面,然后他们决定是否要enable penalty marks使用disable penalty marks. 如果启用,那么他们会转到Penalty Marks for Each Answer页面,但如果他们想禁用,那么他们就直接进入Assessment Completed页面。我的问题是,下图在尝试匹配时是否正确,或者是否需要在图中以不同的方式实现。

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

时序图截图:

在此处输入图像描述

谢谢

4

1 回答 1

2

序列图似乎没有遵循一般方法。来自WikiPedia 文章(和 UML 用户指南):序列图

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

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

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

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

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

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

于 2013-02-20T14:57:37.607 回答