我在下面的屏幕截图中有一个序列图,但我有两个小问题:
问题1:页面按照顺序排列,直到用户进入Penalty Marks Information
页面,然后他们决定是否要enable penalty marks
disable penalty marks
。如果已启用,则会转到Penalty Marks for Each Answer
页面,但如果要禁用,则会直接转到Assessment Completed
页面。我的问题是,在尝试匹配时,下图是正确的,还是需要在图中以不同的方式实现。
问题2:每个页面都被提交后,它会自己插入到数据库表中,如何在图表中包含它也可以插入到数据库中?有人可以在两页之间展示一个如何做到这一点的例子,这样我就可以看到它是如何完成的?
序列图的截图:
谢谢
答案 0 :(得分:2)
序列图似乎不遵循一般方法。从WikiPedia article(和UML用户指南):序列图
描述了场景中涉及的对象和类 在执行所需的对象之间交换的消息序列 方案的功能
因此,“泳道”不应标记为“创建评估”等活动,而应使用解决方案中的对象。您显示的对象取决于系统设计;在MVC应用程序中,您将显示“评估控制器”与“评估”模型对象交谈,该对象可能与数据库通信以存储和检索评估。
消息在系统中的actor /对象之间发送。因此,登录的教师向评估控制器发送消息“创建”;评估控制器验证消息并创建新的“评估”模型对象,该对象又可以向数据库发送“持久”消息。
当然,还有其他使用序列图的方法 - 它取决于您使用的粒度级别。您可以简单地对域实体(教师,评估,问题,答案等)进行建模,并探索他们如何相互发送消息以实现场景,或者您可以对软件组件(浏览器,Web服务器,脚本引擎,数据库)进行建模 - 这取决于你想要达到的目标。
一个非常简单的版本可能是这样的(我在创建答案后停止了,因为我不能完全遵循这个要求)。
Apropos问题2:首先你必须决定哪个组件告诉数据库保存评估 - 这完全取决于你的软件设计。做出决定后,从该组件到数据库绘制一条线,并带有“保存”消息;数据库响应“成功”或“失败”。