UML用例模型:参与者泛化

UML用例模型:参与者泛化,uml,use-case,user-stories,Uml,Use Case,User Stories,我开始学习UML,对参与者泛化有一个问题: 想象一下,我正在为一所大学的某种应用程序编写一个用例图。我已经确定有两个演员;学生和老师 现在,简而言之,假设需求相当简单(对我的问题来说并不重要): 学生可以搜索班级 学生可以注册上课 学生可以提交论文 学生可以付学费 老师可以给论文打分 学生可以就其一个课程联系老师(电子邮件类型的消息,但都在系统中管理) 教师可以联系他某个班级的所有学生(同样,所有学生都由系统处理) 一切都很好 我被卡住的地方是: 学生有用户名和密码,必须登录才能使用 系统

我开始学习UML,对参与者泛化有一个问题:

想象一下,我正在为一所大学的某种应用程序编写一个用例图。我已经确定有两个演员;学生和老师

现在,简而言之,假设需求相当简单(对我的问题来说并不重要):

  • 学生可以搜索班级
  • 学生可以注册上课
  • 学生可以提交论文
  • 学生可以付学费
  • 老师可以给论文打分
  • 学生可以就其一个课程联系老师(电子邮件类型的消息,但都在系统中管理)
  • 教师可以联系他某个班级的所有学生(同样,所有学生都由系统处理)
一切都很好

我被卡住的地方是:

  • 学生有用户名和密码,必须登录才能使用 系统
  • 教师有用户名和密码,必须登录才能使用 系统
  • 学生可以通过在线门户重置其密码
  • 教师可以通过在线门户网站重置其密码
所以我的问题是。。。 如何最好地处理系统的常见用例

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

另一方面,教师和学生拥有相同的超级演员(正确的术语?)似乎有点奇怪,因为他们似乎是系统的两个截然不同的用户。因此,我是否应该和两个参与者(学生和教师)保持一致,简单地将学生与普通用例和教师与普通用例联系起来

两种方法我都试过了。正如我所提到的,由于教师和学生的差异,用户泛化方法感觉不好,但是对于不同的参与者有几个相同的用例似乎有点不优化(或者是多余的,或者只是纸上谈兵而已!)


关于这一点,有一个正确或错误的答案,还是仅仅取决于偏好?

演员概括最重要的用法之一是“排除常见的演员行为”

最好的方法是将用户角色抽象化。这样,你就不必担心它的细节,也不必担心老师和学生之间的差异。“明智地使用抽象参与者可以简化图表并提高可读性”

所以我说,用泛化,但要把父演员抽象化。尽管不这样做一点也不错,正如你所说:没有错也没有对


引文来自-第5.2节-演员概括。

非常感谢您提供的信息!我投赞成票,但我没有互联网积分!