如何在UML序列图中表示参与者的泛化/专门化?

如何在UML序列图中表示参与者的泛化/专门化?,uml,sequence-diagram,Uml,Sequence Diagram,我有一个用例图,它有三个参与者:用户、图书管理员和员工 职员和图书管理员参与者是用户参与者的专业化,在用例图中,他们每个人都有一些仅与他们相关联的扩展用例 在序列图中,我如何显示图书管理员角色是用户角色的特殊化 在序列图中,专业参与者(图书管理员和工作人员)能有自己的时间线吗 我是否必须为广义参与者显示一个时间线,即使它在其专门化上没有额外的用例或操作 一旦序列图被提取到自己的图中,使用主序列图中的交互使用框重新安排序列图的时间线可以吗 在序列图中,我如何显示图书管理员角色是用户角色的特殊化 没

我有一个用例图,它有三个参与者:用户、图书管理员和员工

职员和图书管理员参与者是用户参与者的专业化,在用例图中,他们每个人都有一些仅与他们相关联的扩展用例

  • 在序列图中,我如何显示图书管理员角色是用户角色的特殊化

  • 在序列图中,专业参与者(图书管理员和工作人员)能有自己的时间线吗

  • 我是否必须为广义参与者显示一个时间线,即使它在其专门化上没有额外的用例或操作

  • 一旦序列图被提取到自己的图中,使用主序列图中的交互使用框重新安排序列图的时间线可以吗

  • 在序列图中,我如何显示图书管理员角色是用户角色的特殊化
  • 没有办法(据我所知)。你可以在中展示这种关系,甚至在中表现得更好

  • 在序列图中,专业参与者(图书管理员和工作人员)能有自己的时间线吗
  • 是的,假设它们都在序列图捕获的场景中扮演角色并相互作用

  • 我是否必须为广义参与者显示一个时间线,即使它在其专门化上没有额外的用例或操作
  • 不,除非后续代码生成(或MDA)工具强制您这样做,否则您不必在图表中显示正式正确但无用的工件

  • 一旦序列图被提取到自己的图中,使用主序列图中的交互使用框重新安排序列图的时间线可以吗
  • 我不确定,但如果你保持输入、输出和识别生命线的信息的绑定清晰有效,可能是的。一些可能隐藏正确答案的文章:

    • 资料来源:

      …UML规范施加的一个有时难以遵循的约束是,交互使用必须覆盖封闭交互上表示的所有相关生命线。这意味着所有这些生命线应该以某种方式彼此靠近。如果我们在同一个图上有另一个交互使用,那么按照UML的要求重新安排所有涉及的生命线可能会非常棘手

    • 资料来源:

      17.7交互使用→ 语义学→ 零件分解

      将一个交互中的生命线分解为一个交互(由生命线关联的可连接元素的类型所拥有),可以准确地解释为InteractionUse。进入(或离开)分解生命线的消息被解释为实际的门,由分解上相应的形式门匹配

      由于分解后的生命线被解释为一个InteractionUse,PartDecomposition的语义是由门和参数匹配的分解引用的交互的语义

      17.7交互使用→ 符号→ 零件分解

      部件分解由生命线头部的引用条款指定,如第17.3.4款(生命线)中的注释所示(另见图17.21)

      如果部分分解在分解生命线下表示为内联,且分解子句为“严格”,则表明内联分解中所有子生命线上的构造都是按严格顺序排序的(参见17.6.4(严格交互运算符)

      图17.21零件分解-分解零件


    谢谢,太好了。我可以澄清一些事情吗?在我的序列图中,我不需要向我的专业演员(图书管理员)添加PartDecomposition除非我想表明时间线中的交互必须以特定的顺序发生……听起来正确吗?@sc0ttman分解对我来说是一个新发现。我的解释是:如果你不重新安排生命线的顺序,参考图可以粘贴(内联)在主图表中,从读者的角度(人类?)一切都将保持有意义(没有歧义),那么你根本不必关心分解语义等。是的,“认证专家”的澄清会很好…;)如果你看到我关于用例图的答案,我只是将其删除为无响应。正如xmojmr非常正确地指出的,您正在询问有关序列图的问题。对不起,有什么困惑。