UML-在序列图中提升参与者

UML-在序列图中提升参与者,uml,actor,sequence-diagram,promoting,Uml,Actor,Sequence Diagram,Promoting,我有一个参与者——只是一个例子——网站,在UML2序列图中称为“访问者”。此参与者与边界对象交互,发送凭据并获取会话令牌。完成后,我想将这个参与者提升为“经过身份验证的用户” 我希望保留“访问者”和“经过身份验证的用户”,因为它们代表不同的角色,并且与系统具有不同的交互。(访问者的用例不是“已验证用户”的子集,因为访问者会收到广告等。) 现在,我可以为“已验证用户”创建一条单独的生命线,并在适当的位置为其创建一条“创建”消息,为“访问者”创建一条“销毁”消息,但这看起来真的很尴尬 我也可以创建一

我有一个参与者——只是一个例子——网站,在UML2序列图中称为“访问者”。此参与者与边界对象交互,发送凭据并获取会话令牌。完成后,我想将这个参与者提升为“经过身份验证的用户”

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

现在,我可以为“已验证用户”创建一条单独的生命线,并在适当的位置为其创建一条“创建”消息,为“访问者”创建一条“销毁”消息,但这看起来真的很尴尬


我也可以创建一个“>”原型,但一般公认的方法是什么?

如果你将他们建模为不同的参与者(以及不同的分类器),那么你可以从一个角色移动到另一个角色。如果你是某种类型的人,你就不能在有生之年改变这种类型。 因此,在这种情况下,您别无选择,只能从一个新的“已验证用户”开始

刻板印象属于元世界。因此,除非您正在创建自己的UML概要文件来支持您的建模方法,否则您不应该触及原型。

可执行UML(nee Shlaer Mellor)支持子类型迁移的概念。然而,大多数面向对象语言都没有。虽然这是一个有用的概念,但您需要多行代码来实现它。我建议使用执行迁移的“复制”构造函数。见

ORM建模技术的例子如下 信息建模与关系数据库 作者:特里·哈尔平,托尼·摩根 可以在谷歌图书中找到。

想象一下,当“访问者”升级到“认证用户”时,系统中的某个地方实际上诞生了一个化身。它不是系统中的“访客”,而是他/她的化身。因此,在我看来,用自己的生命线创建另一个actor对象似乎没问题

(当然,您可以在泛型
User
类中使用一个简单的
boolean
开关来实现存在的两种不同的“状态”,但这不是您想要的….)

我可能会使用

  • 类图:

  • 序列图:


或者类似的东西

简短的快速回答

应用“原型”和“注释”扩展U.M.L.图表

冗长乏味的扩展答案

你的问题是正确的

在“序列图”中没有直接的通用标准

间接地,我看到许多“序列图”(如本例)将其拆分为两个或多个图,其中有一个图表示“访问者注册到网站”,另一个图表示“访问者通过登录到网站成为用户”,它扩展了第一个图

请记住,许多“序列图”由一个小的“用例图”表示,带有“参与者”,并且“参与者”和“用例图”都可以使用
原型

一个“用户”
Actor
被另一个
Actor
扩展的例子,[没有
用例]/code>,可以是这样的:

..................................
....(o)...................(o).....
.....|.....................|......
..---+---...............---+---...
.....|......<<extend>>.....|......
.....|<--------------------|......
.....^.....................^......
..../.\.................../.\.....
.../...\................./...\....
..................................
..Visitor.................User....
..................................
....................................................................
......------------------.....................------------------.....
..../...................\................../...................\....
.../.....................\................/.....................\...
..|......Visitor..........|..<<extend>>..|......Visitor..........|..
..|......Arrives To.......|<-------------|......Registers........|..
..|......Website..........|..............|......Into Website.....|..
...\...................../................\...................../...
....\.................../..................\.................../....
.....-------------------....................-------------------.....
....................................................................
这种情况很常见,而且经常被认为是“事实上的”、“标准”。 直接跳转到“序列图”并不坏,也不是一个错误

然而,也许你应该:

[1] 添加一个“访问者到达网站”
用例图,其中包含一个名为“访问者”的参与者

[2] 添加相关的“访问者成为用户,通过注册到网站”
用例图,参与者名为“访问者”

[3] 添加相关的“用户登录到网站”
用例
图,并添加一个名为“用户”的参与者

[4] 使用
原型将前面的图表合并为一个图表

.....................................................................................
....................-------------------..............................................
.................../....................\............................................
....(o).........../......................\...........................................
.....|.........../........................\..........................................
..---+---.......|........Visitor...........|.........................................
.....|..........|........Arrives To........|.........................................
.....|.=========|........Website...........|.........................................
.....^..........|..........................|.........................................
..../.\.........|..........................|.........................................
.../...\.........\......................../..........................................
..................\....................../...........................................
..Visitor..........\..................../............................................
....................--------------------.............................................
.............................^.......................................................
.............................|.......................................................
.............................|..<<extends>>..........................................
.............................|.......................................................
....................-------------------..............................................
.................../....................\............................................
....(o).........../......................\...........................................
.....|.........../........................\..........................................
..---+---.......|......Visitor.............|.........................................
.....|..........|......becomes.User........|.........................................
.....|.=========|......by.registering......|.........................................
.....^..........|......Into.Website........|.........................................
..../.\.........|..........................|.........................................
.../...\.........\......................../..........................................
..................\......................O...........................................
...Visitor.........\..................../.\..........................................
.....^..............--------------------...\....+------------------------------+--+..
.....|...................^..................\...| "Visitor" becomes "User",     \ |..
.....|...................|...................\..| by registering,                \|..
.....|..<<extends>>......|..<<extends>>......+--O into website                    +..
.....|...................|................../...|                                 |..
.....|..............-------------------..../....+---------------------------------+..
.....|............./....................\./..........................................
....(o).........../......................O...........................................
.....|.........../........................\..........................................
..---+---.......|.....User Logs............|.........................................
.....|..........|......Into.Website........|.........................................
.....|.=========|..........................|.........................................
.....^..........|..........................|.........................................
..../.\.........|..........................|.........................................
.../...\.........\......................../..........................................
..................\....................../...........................................
....User...........\..................../............................................
....................-------------------..............................................
.....................................................................................
[7] 向每个
序列
图添加注释,表明它描述了一个
用例

...................................................................
..................+------------------------------+--+..............
..Visitor.........|  "Visitor" arrives            \ |..............
..................|  to website                    \|..............
....(o)..O--------O                                 +..............
..---+---.........|                                 |..............
.....|............+---------------------------------+..............
.....|.............................................................
.....^..............+---------+..........+-----------+.............
..../.\.............| Website |..........|  Database |.............
.../...\............+----+----+..........+-----+-----+.............
.....|...................|.....................|...................
....+-+-+..............+-+-+.................+-+-+.................
....|   |..Arrives.....|   |..DoSomething()..|   |..DoSomething()..
....|   +=============>+   +---------------->+   +---+.............
....|   |..............|   |.................|   |...|.............
....|   +<-------------+   +<----------------+   +<--+............. 
....|   |..............|   |.................|   |.................
....+-+-+..............+-+-+.................+-+-+.................
...................................................................
.....................................................................................
....................-------------------..............................................
.................../....................\............................................
....(o).........../......................\...........................................
.....|.........../........................\..........................................
..---+---.......|........Visitor...........|....+------------------------------+--+..
.....|..........|........Arrives To........|....|                               \ |..
.....|.=========|........Website...........|....| Detailed by corresponding      \|..
.....^..........|..........................O----O Sequence Diagram                +..
..../.\.........|..........................|....|                                 |..
.../...\.........\......................../.....+---------------------------------+..
..................\....................../...........................................
..Visitor..........\..................../............................................
....................--------------------.............................................
.............................^.......................................................
.............................|.......................................................
.............................|..<<extends>>..........................................
.............................|.......................................................
....................-------------------..............................................
.................../....................\............................................
....(o).........../......................\...........................................
.....|.........../........................\..........................................
..---+---.......|......Visitor.............|....+------------------------------+--+..
.....|..........|......becomes.User........|....|                               \ |..
.....|.=========|......by.registering......|....| Detailed by corresponding      \|..
.....^..........|......into.Website........O----O Sequence Diagram                +..
..../.\.........|..........................|....|                                 |..
.../...\.........\......................../.....+---------------------------------+..
..................\......................O...........................................
...Visitor.........\..................../.\..........................................
.....^..............--------------------...\....+------------------------------+--+..
.....|...................^..................\...| "Visitor" becomes "User",     \ |..
.....|...................|...................\..| by registering,                \|..
.....|..<<extends>>......|..<<extends>>......+--O into website                    +..
.....|...................|................../...|                                 |..
.....|..............-------------------..../....+---------------------------------+..
.....|............./....................\./..........................................
....(o).........../......................O...........................................
.....|.........../........................\..........................................
..---+---.......|.....User Logs............|....+------------------------------+--+..
.....|..........|......into.Website........|....|                               \ |..
.....|.=========|..........................|....| Detailed by corresponding      \|..
.....^..........|..........................O----O Sequence Diagram                +..
..../.\.........|..........................|....|                                 |..
.../...\.........\......................../.....+---------------------------------+..
..................\....................../...........................................
....User...........\..................../............................................
....................-------------------..............................................
.....................................................................................
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
....................-------------------..............................................
.................../....................\............................................
…(o)…/。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
.....|.........../........................\..........................................
…--+--…。|……..访客………..+-----------------------------------+--+。。
…到达…到达…到达…到达…到达。。
…..|..=============|..网站……..|..详细信息由相应\|。。
O---O序列图+。。
..../.\.........|..........................|....|                                 |..
.../...\.........\......................../.....+---------------------------------+..
..................\....................../...........................................
访客。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
....................--------------------.............................................
.............................^.......................................................
.............................|.......................................................
.............................|............................................
.............................|.......................................................
....................-------------------..............................................
.................../....................\............................................
…(o)…/。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
.....|.........../........................\..........................................
..---+---.
.....................................................................................
....................-------------------..............................................
.................../....................\............................................
....(o).........../......................\...........................................
.....|.........../........................\..........................................
..---+---.......|........Visitor...........|.........................................
.....|..........|........Arrives To........|.........................................
.....|.=========|........Website...........|.........................................
.....^..........|..........................|.........................................
..../.\.........|..........................|.........................................
.../...\.........\......................../..........................................
..................\....................../...........................................
..Visitor..........\..................../............................................
....................--------------------.............................................
.............................^.......................................................
.............................|.......................................................
.............................|..<<extends>>..........................................
.............................|.......................................................
....................-------------------..............................................
.................../....................\............................................
....(o).........../......................\...........................................
.....|.........../........................\..........................................
..---+---.......|......Visitor.............|.........................................
.....|..........|......becomes.User........|.........................................
.....|.=========|......by.registering......|.........................................
.....^..........|......Into.Website........|.........................................
..../.\.........|..........................|.........................................
.../...\.........\......................../..........................................
..................\......................O...........................................
...Visitor.........\..................../.\..........................................
.....^..............--------------------...\....+------------------------------+--+..
.....|...................^..................\...| "Visitor" becomes "User",     \ |..
.....|...................|...................\..| by registering,                \|..
.....|..<<extends>>......|..<<extends>>......+--O into website                    +..
.....|...................|................../...|                                 |..
.....|..............-------------------..../....+---------------------------------+..
.....|............./....................\./..........................................
....(o).........../......................O...........................................
.....|.........../........................\..........................................
..---+---.......|.....User Logs............|.........................................
.....|..........|......Into.Website........|.........................................
.....|.=========|..........................|.........................................
.....^..........|..........................|.........................................
..../.\.........|..........................|.........................................
.../...\.........\......................../..........................................
..................\....................../...........................................
....User...........\..................../............................................
....................-------------------..............................................
.....................................................................................
...................................................................
..................+------------------------------+--+..............
..Visitor.........|  "Visitor" arrives            \ |..............
..................|  to website                    \|..............
....(o)..O--------O                                 +..............
..---+---.........|                                 |..............
.....|............+---------------------------------+..............
.....|.............................................................
.....^..............+---------+..........+-----------+.............
..../.\.............| Website |..........|  Database |.............
.../...\............+----+----+..........+-----+-----+.............
.....|...................|.....................|...................
....+-+-+..............+-+-+.................+-+-+.................
....|   |..Arrives.....|   |..DoSomething()..|   |..DoSomething()..
....|   +=============>+   +---------------->+   +---+.............
....|   |..............|   |.................|   |...|.............
....|   +<-------------+   +<----------------+   +<--+............. 
....|   |..............|   |.................|   |.................
....+-+-+..............+-+-+.................+-+-+.................
...................................................................
.....................................................................................
....................-------------------..............................................
.................../....................\............................................
....(o).........../......................\...........................................
.....|.........../........................\..........................................
..---+---.......|........Visitor...........|....+------------------------------+--+..
.....|..........|........Arrives To........|....|                               \ |..
.....|.=========|........Website...........|....| Detailed by corresponding      \|..
.....^..........|..........................O----O Sequence Diagram                +..
..../.\.........|..........................|....|                                 |..
.../...\.........\......................../.....+---------------------------------+..
..................\....................../...........................................
..Visitor..........\..................../............................................
....................--------------------.............................................
.............................^.......................................................
.............................|.......................................................
.............................|..<<extends>>..........................................
.............................|.......................................................
....................-------------------..............................................
.................../....................\............................................
....(o).........../......................\...........................................
.....|.........../........................\..........................................
..---+---.......|......Visitor.............|....+------------------------------+--+..
.....|..........|......becomes.User........|....|                               \ |..
.....|.=========|......by.registering......|....| Detailed by corresponding      \|..
.....^..........|......into.Website........O----O Sequence Diagram                +..
..../.\.........|..........................|....|                                 |..
.../...\.........\......................../.....+---------------------------------+..
..................\......................O...........................................
...Visitor.........\..................../.\..........................................
.....^..............--------------------...\....+------------------------------+--+..
.....|...................^..................\...| "Visitor" becomes "User",     \ |..
.....|...................|...................\..| by registering,                \|..
.....|..<<extends>>......|..<<extends>>......+--O into website                    +..
.....|...................|................../...|                                 |..
.....|..............-------------------..../....+---------------------------------+..
.....|............./....................\./..........................................
....(o).........../......................O...........................................
.....|.........../........................\..........................................
..---+---.......|.....User Logs............|....+------------------------------+--+..
.....|..........|......into.Website........|....|                               \ |..
.....|.=========|..........................|....| Detailed by corresponding      \|..
.....^..........|..........................O----O Sequence Diagram                +..
..../.\.........|..........................|....|                                 |..
.../...\.........\......................../.....+---------------------------------+..
..................\....................../...........................................
....User...........\..................../............................................
....................-------------------..............................................
.....................................................................................