UML-在序列图中提升演员

问题描述 投票:2回答:5

我有一个演员,仅作为示例,该网站在UML2序列图中称为“访问者”。该参与者与边界对象进行交互,发送凭据并获取会话令牌。完成此操作后,我想将此演员提升为“授权用户”。

我想保留“访问者”和“授权用户”,因为它们代表不同的角色并且与系统具有不同的交互。 (访问者的用例不是“经过身份验证的用户”的子集,因为访问者会收到广告,等等。)

现在,我可以在适当的位置为“经过身份验证的用户”创建单独的生命线,并为其创建“创建”消息,并为“访客”创建“销毁”消息,但这确实很尴尬。

我也可以创建一个“ << Promotion >>”构造型,但是通常采用的方法是什么?

uml actor sequence-diagram promoting
5个回答
2
投票

例如,当“访问者”晋升为“授权用户”时,实际上是在系统中的某个虚拟人物诞生了。它不是系统中运行的“访客”,而是他/她的化身。因此,用自己的生命线创建另一个actor对象对我来说似乎可以。

(当然,您可以使用通用boolean类中的简单User开关,<两种不同的存在状态,但这不是您想要的。)

我可能会使用


0
投票
如果将它们建模为不同的参与者(以及不同的分类器),则可以从一个转移到另一个。如果您是特定类型,则一生中无法更改该类型。因此,在这种情况下,您别无选择,只能以新的“经过身份验证的用户”开始]

0
投票
可执行UML(nee Shlaer-Mellor)支持子类型迁移的概念。但是,大多数面向对象的语言却没有。尽管这是一个有用的概念,但是您将需要多行代码来实现这一点。我建议执行迁移的“复制”构造函数。请参阅以下文章UML Subtype Migration

0
投票

简短快速解答


0
投票
你好,我有类图,我需要从类图绘制序列图。我有用户,uder可以是客户或农民。有人可以帮助我如何在顺序图中绘制它吗?
© www.soinside.com 2019 - 2024. All rights reserved.