Inheritance UML中继承的参与者具有不同行为的相同用例
我想对以下行为进行建模:当管理员创建一篇博客文章时,与用户创建一篇博客文章时不同,例如,版主在验证博客文章时参与创建博客文章用例。然而,当管理员没有管理员的角色时,他的博客文章也需要由版主验证,因为他自己继承了用户的行为 以下示例仅在管理员不想以管理员身份使用系统时,可以删除自己的角色时才有意义 我希望这是有道理的 尽可能简单 在同一个模型中,您不应该有两个相同的用例名称来表示不同的行为。这是非常令人困惑的 顺便说一句,UML规范没有定义当多个参与者与同一用例相关时的确切含义:可以是多个参与者,每个参与者分别参与用例的不同事件,但也可以是所有参与者每次都必须参与 因此,我建议保留一个与Inheritance UML中继承的参与者具有不同行为的相同用例,inheritance,uml,actor,use-case,Inheritance,Uml,Actor,Use Case,我想对以下行为进行建模:当管理员创建一篇博客文章时,与用户创建一篇博客文章时不同,例如,版主在验证博客文章时参与创建博客文章用例。然而,当管理员没有管理员的角色时,他的博客文章也需要由版主验证,因为他自己继承了用户的行为 以下示例仅在管理员不想以管理员身份使用系统时,可以删除自己的角色时才有意义 我希望这是有道理的 尽可能简单 在同一个模型中,您不应该有两个相同的用例名称来表示不同的行为。这是非常令人困惑的 顺便说一句,UML规范没有定义当多个参与者与同一用例相关时的确切含义:可以是多个参与者,
用户
和版主
相关的创建博客帖子
用例。您仍然可以将管理员
保持为用户
的专门化,并在用例行为的详细描述中使用此专门化
但并非必要的简单
如果您认为这不能充分准确地表达您的情况,您有两种可能性
Create blogpost
用例仅与更一般的用户关联,并且«extend»
它与另一个适度blogpost
用例仅与主持人关联。这是有意义的,因为调节用例是调节者自己的目标,它可以被重用(例如,也可以是更新blogpost
的扩展)
Create underated blogpost
是更通用的Create blogpost
的特化。然而,这需要一些更精确的重新定义,在我看来,这并没有#1那么有表现力主持人原则上也是用户
。好奇:如果版主创建了一篇博文会发生什么:他/她能自我更新自己的内容吗?或者必须有一个四眼原则,确保有一个不同的现代人来主持这篇文章;-) 回答太晚了,但这只是一个UC,其中您有不同的场景,受启动UC的演员类型的限制。@qwerty_所以,回答永远不会太晚;-)我见过这样的情况,即后来的答案比原来的答案获得多张赞成票。特别是对于一个有学习能力的人来说,最好把所有方面都展示出来,因此,如果你认为公认的答案是不够的,那么可以选择添加你自己的答案。@Ister没有机会与Christophe竞争。基本上他详细阐述了我的评论。和往常一样,长度最好。但是,是的,如果我有不同的意见,我也会在前几天回答;-)在我的IMO中,一个更好的选择是有两个不同的用例,但没有«扩展»。我可以想象,创建blogpost和调整blogpost是两个独立的活动,可以在完全不同的时间发生<代码>中度博客帖子
可能有一个前提条件,说明存在一个博客帖子草稿。我正要写与@Geert相同的东西。扩展意味着您在UC中有变体。但这是两个真正不同的UCs。嗯,我知道这是可以讨论的;-)但在任何情况下,我都会避免扩展,因为它们倾向于引入函数分解。@GeertBellekens确实,我同意。事实上,我开始意识到,在绘制第二张图表时,我的思维受到了原始UC的偏见(见我的橙色注释)。就我个人而言,我会将这两个UC完全解耦(即主持人每天主持一个等待博客帖子的队列,这是一个独立于博客帖子创建的目标)。尽管如此,我还是决定在便笺中保留提示,让OP选择如何最好地表达问题。@qwerty_所以我同意(更多细节请参见我对Geert的回答)谢谢你的回答。我同意,适度的blogpost
应该是一个不同的用例。我只想在这个例子中说明,一个用例与另一个用例有一个稍微不同的过程-很抱歉造成混淆!