首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从类图生成用例图的混乱

从类图生成用例图的混乱
EN

Stack Overflow用户
提问于 2016-04-15 12:51:27
回答 3查看 5.1K关注 0票数 1

我试图在类图的帮助下制作一个用例图,但问题是,我在这里困惑的是,我应该采取什么作为参与者,接下来会发生什么,我应该采取哪些属性,以及在哪里使用<<extend>>?帮帮忙吧。提前谢谢你。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-16 11:08:20

正如Thomas所指出的,从类设计到用例没有算法的方法。事实上,对于给定的类图,根本不允许存在用例(例如,如果类只代表业务对象之间的关系,而没有参与者)。

但是,通过从人的角度分析特定的图表,您可以很好地推断出一个类图:

1)确定候选参与者

参与者指定用户或与主题交互的任何其他系统所扮演的角色。图中的候选对象是:visitoradminregistered user

显然,类MovieBook ticketsMake 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 (管理方法)、Confirm registration of visitor (从关系推断)、'Get (method of a user),cancel(and method of注册的Update movie record用户),更新座位((method of图书票)、confirm transaction (方法)、refund money of cancelled ticket (方法)
  • 隐式/推断用例或交互:create and maintain admincreate a visitorregister and maintain a registered user account,还有什么吗?

3)整理用例

在所识别的所有潜在用例和交互中,并不是所有的都应该获得用例状态。然后,您必须找到哪些是用例,哪些只是同一个用例的一部分的交互。例如:

  • update movie catalogupdate movieAdd movie recordUpdate movie recorddelete movie record组成。
  • Get registeredConfirm registration of visitor显然是同一个用例的一部分,因为目标是相同的:注册用户。
  • ..。我让你作为一个执行者解决剩下的问题。

4)审查参与者

在确定了有意义的用例之后,您可能需要检查候选参与者:

  • 实际上,一些候选演员可能只是与用户无关的对象(这里不是这样,但如果你有一个电影制片人,这只是一个与电影相关的信息,而不是系统的用户)。
  • 为您所识别的重要用例确定明显缺少的参与者。举个例子,我最初以为这是一家网络电影公司。但是Update Seats的方法很明显,我们谈论的是一个真正的剧院。那么,谁会从用户那里得到付款,发放罚单,偿还与系统有关的费用呢?如果只是网上预订系统,我们就没事了。如果cahs台操作员也使用这个系统,那么我们应该增加这个演员。
  • 找出候选演员之间的关系。注册用户首先是访客。我们用图表来表示这两种情况好吗?

5)绘制用例图

现在有了所有的元素,您就可以制作用例图了。但是你仍然需要决定你想要表达的细节级别。以下是一项建议:

票数 1
EN

Stack Overflow用户

发布于 2016-04-15 13:19:44

不能从类设计中创建用例。只有相反的方法。形式遵循功能,反之亦然。

票数 1
EN

Stack Overflow用户

发布于 2016-04-15 17:28:36

您的类图表明您还不熟悉类建模。类Book TicketMake Payment听起来像用例,而不是正确的类。类是处理这些数据的数据和功能的容器,而用例是参与者在系统帮助下执行的一项工作。

对于这个平台来说,给予你所需的帮助可能太广泛了。研究UML建模的介绍性文本,以了解哪种类型的模型可以表示什么。不要觉得有义务使用语言所提供的所有元素。有很多用例模型不需要包含和扩展关系。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36647668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档