我开始学习UML并对Actor Generalization提出疑问:
想象一下,我正在为一所大学的某种应用程序编写一个用例图。我发现有两个演员;学生和老师。
现在,为了简短起见,我们可以说要求相当简单(对我的问题并不重要):
一切都很愉快。
我遇到困难的是:
所以我的问题是这个...... 如何最好地处理系统的常见用例?
一方面,我可以看到Student和Teacher都是一个专门的用户类型,User actor与常见用例相关联(因此用户有一个用户名和密码,必须登录,用户可以重置他的密码通过在线门户等)。
另一方面,教师和学生拥有相同的超级演员(正确的术语?)似乎有点奇怪,因为他们似乎是两个非常不同的系统用户。因此,我是否应该与两位演员(学生和教师)保持联系,并简单地将学生与普通用例和教师之间的关联用于常见用例?
我尝试了两种方法。正如我所提到的,由于教师和学生之间存在很大的不同,用户概括方法感觉不对,但是为不同的演员提供了几个相同的用例似乎有点未被优化(或者多余,或者只是看起来很有趣!)。 p>
对此有正确或错误的答案,还是只是偏好?
先谢谢!
答案 0 :(得分:3)
演员概括的最重要用法之一是“分解出常见的演员行为”。
执行此操作的最佳方法是使User actor成为抽象的。这样,您就不必担心其细节以及教师和学生的变化如此之大。 “明智地使用抽象演员简化你的图表并提高可读性”。
所以我说继续推广,但让父演员抽象。虽然没有这样做完全没有错,正如你所说的:没有错误或正确。
引言来自UML 2 and the Unified Process - 第5.2节 - 演员概括。