gpt4 book ai didi

UML用例模型: Actor Generalization

转载 作者:行者123 更新时间:2023-12-03 04:52:11 26 4
gpt4 key购买 nike

我开始学习 UML,并且有一个关于 Actor 泛化的问题:

假设我正在为某所大学的某种应用程序编写用例图。我已经确定有两个 Actor ;学生和老师。

现在,为了简单起见,假设要求相当简单(对我的问题来说并不重要):

  • 学生可以搜索类(class)
  • 学生可以注册类(class)
  • 学生可以提交论文
  • 学生可以支付类(class)费用
  • 教师可以对论文进行评分
  • 学生可以联系某门类(class)的老师(电子邮件类型的消息,但全部在系统内管理)
  • 教师可以联系他的一门类(class)的所有学生(同样全部由系统处理)。

一切都很好。

我遇到困难的地方是:

  • 学生有用户名和密码,必须登录才能使用系统
  • 教师有用户名和密码,必须登录才能使用系统
  • 学生可以通过在线门户重置密码
  • 教师可以通过在线门户重置密码

所以我的问题是...如何最好地处理系统的常见用例?

一方面,我可以看到学生和教师都是特殊类型的用户,并且用户参与者与常见用例相关联(因此用户有用户名和密码并且必须登录,用户可以重置通过在线门户等获取他的密码)。

另一方面,教师和学生拥有相同的 super Actor (正确的术语?)似乎有点奇怪,因为他们似乎是系统的两个截然不同的用户。因此,我是否应该与两个参与者(学生和教师)保持联系,并简单地将学生与常见用例和教师与常见用例之间进行关联?

两种方法我都试过了。正如我所提到的,由于教师和学生非常不同,用户泛化方法感觉不太好,但是对于不同的参与者有几个相同的用例似乎有点未经优化(或者是多余的,或者只是在纸上看起来很有趣!)。

这个问题的答案是正确还是错误,还是仅仅取决于偏好?

最佳答案

Actor 泛化最重要的用途之一是“分解出常见的 Actor 行为”。

做到这一点的最佳方法是使 User actor 变得抽象。这样,你就不必担心它的细节以及老师和学生的差异如此之大。 “明智地使用抽象参与者可以简化图表并提高可读性”。

所以我说进行概括,但使父 Actor 抽象。虽然不这样做根本没有错,正如你所说:没有错也没有对。

引用自UML 2 and the Unified Process - 第 5.2 节 - Actor 泛化。

关于UML用例模型: Actor Generalization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com