从过去一年的论文中找出了一个用例图问题。希望根据以下问题对我的图表是否正确提供一些反馈。谢谢你的指导。
问题: 大学新图书馆系统。
学生将使用电脑终端查看图书的可用性。 学生图书馆卡被扫描到系统中。 系统搜索学生数据库以检查学生的借阅历史。
学生可以借阅一本书,但须遵守以下两个限制:
如果不允许贷款,图书管理员可以覆盖系统并输入代码以允许贷款。
学生可以通过访问贷款系统从其他大学的图书馆借阅,以查找书籍和下订单。 再次执行上述学生卡的检查。
图书馆内的特殊书籍无法借用。他们只能咨询。还受到前面描述的2个约束。
最后,学生可以使用以前由卡上第三方添加的积分访问打印机。打印过程的卡片检查是 受前面描述的限制。
构造上述过程的UML表示。这将涉及生成一个或多个用例图。
答案:
链接到我的UML图: http://www.picpaste.com/pics/exam_uml-sCmMDwtm.1390472335.jpg
答案 0 :(得分:0)
没有。您不应将任何“if”逻辑放入用例图中。 “没有过期”或“没有> 4books ......”属于更具体的图表 - 序列,状态,活动,交互活动,也许,时间。但它们不是用例。
另一方面,这里没有系统元素。用例是agents
之间对话的主题,即人员和系统组件或子系统。你这里只有人。
此外,您此处没有登录活动,也没有管理员。但也许,这超出了任务的范围。
打印机应该是一个子系统。但是您没有连接用户和打印子系统的“打印”用例
编辑:
如果您认为检查如此重要以便出现在用例图的级别上,请为它创建一个子系统,并在Actors和该子系统之间创建一个或两个用例。
我还看到了另外一个问题:interlib贷款系统和数据库应该显示为子系统,并且对第一个和历史检查的访问权仍然是与用户连接的。
我无法帮助“咨询特殊书籍”,因为我根本不明白。
这样的基本操作在哪里,如搜索书籍,搜索作者,扫描卡片?
请注意,您的“包含”应成为子系统之间的正常用例。