【发布时间】:2016-04-15 12:51:27
【问题描述】:
【问题讨论】:
标签: uml class-diagram use-case
【问题讨论】:
标签: uml class-diagram use-case
正如 Thomas 所指出的,从类设计到用例没有算法方法。事实上,对于给定的类图,甚至根本不承认存在用例(例如,如果类仅表示业务对象之间的关系而没有参与者)。
但是,通过从人类的角度分析您的特定图表,您可以很好地推断出类图:
1) 确定候选演员
参与者指定用户或与主题交互的任何其他系统所扮演的角色。您图中的候选者是:visitor、admin 和 registered user
Movie、Book tickets、Make payment 类显然不代表用户的角色。
2) 确定候选用例
用例定义了系统和参与者之间的交互,以实现某个目标。因此,让我们集思广益,找出所有看起来像交互的东西:
非常明确的候选用例:Book tickets(Registered user 的类和方法)、Make payment(Registered user 的类和方法)
不太明确的候选用例或交互:View movie(Registered user 的关系和方法)、update movie(关系)、Add movie record(管理员方法)、Update movie record(管理员方法) ), delete movie record (admin 的方法), Confirm registration of visitor (从关系推断), '注册(method of a user),cancel ticket(and method ofRegistered user),Login(method ofRegistered user),Registered(method ofRegistered user),Update Seats available(method of订票),confirm transaction(方法),refund money of cancelled ticket(方法)
隐式/推断用例或交互:create and maintain admin、create a visitor、register and maintain a registered user account,还有其他吗?
3) 梳理用例
在识别的所有潜在用例和交互中,并非所有都应该获得用例状态。然后,您必须找出哪些是用例,哪些只是同一用例的交互部分。例如:
update movie catalog 将由 update movie、Add movie record、Update movie record、delete movie record 组成。Get registered 和 Confirm registration of visitor 显然属于同一个用例,因为目标相同:注册用户。 4) 审核演员
在确定了有意义的用例之后,您可能需要审查您的候选参与者:
一些候选演员实际上可能看起来只是与用户无关的对象(这里不是这种情况,但它可能是,例如,如果你有一个电影制片人,这只是一个与电影相关但与系统用户无关的信息)。
为您已确定的重要用例确定明显缺失的参与者。比如这里,我一开始以为是互联网电影业务。但是Update Seats 的方法很明显我们在谈论一个真正的剧院。那么,谁会从用户那里获得付款、发放票证、偿还与系统相关的款项?如果它只是在线预订系统,我们很好。如果 cahs 服务台操作员也将使用该系统,那么我们应该添加这个参与者。
找出候选演员之间的关系。注册用户首先是访问者。我们是否应该在图中同时表示它们?
5) 绘制用例图
现在你已经有了所有的元素,你可以制作你的用例图了。但是您仍然必须决定要表示的详细程度。这里有一个建议:
【讨论】:
您不能从类设计中创建用例。只有反过来。形式服从功能,反之亦然。
【讨论】:
您的类图表明您还不熟悉类建模。您的类Book Ticket 和Make Payment 听起来像是用例而不是正确的类。类是数据和处理这些数据的功能的容器,而用例是参与者在系统帮助下执行的一项工作。
为您提供所需的帮助对于此平台而言可能过于广泛。研究 UML 建模的介绍性文本,以了解哪种类型的模型可以表达什么。并且不要觉得有必要使用该语言提供的所有元素。有很多用例模型不需要包含和扩展关系。
【讨论】: