2

I have an actor for - just an example - web site, called "Visitor" in an UML2 sequence diagram. This actor interacts with a boundary object, sends credentials and gets back a session token. When this is done, I would like to promote this actor to "Authenticated User".

I would like to keep "Visitor" and "Authenticated User" as they represent different roles and have different interactions with the system. (Visitor's use case is not a subset of "Authenticated User"'s, as Visitor gets ads, etc.)

Now, I can create a separate LifeLine for "Authenticated User" and create a "Create" message for it and a "Destroy" message for "Visitor" at the proper place, but this really seems awkward.

I can also create a "<< promote >>" stereotype but what is the generally accepted method of doing this?

4

4 に答える 4

0

それらを異なるアクター (および異なる分類子) としてモデル化すると、あるものから別のアクターに移動できます。あなたが特定のタイプである場合、生涯そのタイプを変更することはできません。その場合、新しい「認証済みユーザー」から始めるしかありません。

ステレオタイプはメタ世界に属します。したがって、独自の UML プロファイルを作成してモデリング手法をサポートする場合を除き、ステレオタイプに触れるべきではありません。

于 2014-12-09T14:57:58.057 に答える
0

実行可能 UML (旧称 Shlaer-Mellor) は、サブタイプの移行の概念をサポートしています。ただし、ほとんどのオブジェクト指向言語はそうではありません。これは便利な概念ですが、これを実装するには複数行のコードが必要になります。移行を実行する「コピー」コンストラクターをお勧めします。UML サブタイプの移行の記事を参照してください 。

ORM モデリング手法の例は、Terry Halpin、Tony Morgan による Information Modeling and Relational Databases にあり、Google ブックスにあります。

于 2014-12-09T17:14:53.003 に答える
0

簡単なクイックアンサー

「ステレオタイプ」と「メモ」を適用して UML 図を拡張する

退屈な拡張回答

あなたの質問は有効です。

「シーケンス図」には、これに関する一般的な基準はありません。

間接的に、私は多くの「シーケンス図」を見てきました。この場合のように、これを 2 つ以上の図に分割し、「訪問者が Web サイトに登録する」ための図と、「訪問者がユーザーになる」という別の図があります。これは最初の図を拡張したものです。

多くの「シーケンス図」は、「アクター」を含む小さな「ユース ケース図」で表され、「アクター」と「ユース ケース図」の両方で、<<extend>>固定観念。

[(s) なしで]Actor別の によって拡張される「ユーザー」の例は、次のようになります。ActorUse Case

..................................
....(o)...................(o).....
.....|.....................|......
..---+---...............---+---...
.....|......<<extend>>.....|......
.....|<--------------------|......
.....^.....................^......
..../.\.................../.\.....
.../...\................./...\....
..................................
..Visitor.................User....
..................................

[(s) なしで]Use Case別の によって拡張される例は、次のようになります。Use CaseActor

....................................................................
......------------------.....................------------------.....
..../...................\................../...................\....
.../.....................\................/.....................\...
..|......Visitor..........|..<<extend>>..|......Visitor..........|..
..|......Arrives To.......|<-------------|......Registers........|..
..|......Website..........|..............|......Into Website.....|..
...\...................../................\...................../...
....\.................../..................\.................../....
.....-------------------....................-------------------.....
....................................................................

そして、この状況は非常に一般的であり、「事実上の」標準と見なされることがよくあります。

そのまま「シーケンス図」に飛びつくのも悪くないし、間違いでもない。

それでも、次のことを行う必要があります。

Use Case[1] 「訪問者」と呼ばれるアクターを使用して、「訪問者が Web サイトに到着する」図を追加します。

..............................................
....................-------------------.......
.................../....................\.....
....(o).........../......................\....
.....|.........../........................\...
..---+---.......|........Visitor...........|..
.....|..........|........Arrives To........|..
.....|.=========|........Website...........|..
.....^..........|..........................|..
..../.\.........|..........................|..
.../...\.........\......................../...
..................\....................../....
..Visitor..........\..................../.....
....................--------------------......
..............................................

[2] 関連する「訪問者が Web サイトに登録してユーザーになる」Use Case図を追加し、「訪問者」というアクターを追加します。

.........................................................
....................-------------------..................
.................../....................\................
....(o).........../......................\...............
.....|.........../........................\..............
..---+---.......|......Visitor.............|.............
.....|..........|......becomes.User........|.............
.....|.=========|......by.registering......|.............
.....^..........|......Into.Website........|.............
..../.\.........|..........................|.............
.../...\.........\......................../..............
..................\....................../...............
...Visitor.........\..................../................
....................--------------------.................
.........................................................

[3] 関連する「ユーザーが Web サイトにログインする」Use Case図を追加し、「ユーザー」という名前のアクターを追加します。

.........................................................   
....................-------------------..................
.................../....................\................
....(o).........../......................\...............
.....|.........../........................\..............
..---+---.......|.......User Logs..........|.............
.....|..........|........Into.Website......|.............
.....|.=========|..........................|.............
.....^..........|..........................|.............
..../.\.........|..........................|.............
.../...\.........\......................../..............
..................\....................../...............
....User...........\..................../................
....................-------------------..................
.........................................................

<<extends>>[4]ステレオタイプを使用して、前の図を 1 つにマージします。

.....................................................................................
....................-------------------..............................................
.................../....................\............................................
....(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...........\..................../............................................
....................-------------------..............................................
.....................................................................................

[5] ネストされた各Use Caseダイアグラムを対応するダイアグラムでSequence記述します

[6] ネストされた各Use Caseダイアグラムにメモを追加し、Sequenceダイアグラムがあることを示します

...................................................................
..................+------------------------------+--+..............
..Visitor.........|  "Visitor" arrives            \ |..............
..................|  to website                    \|..............
....(o)..O--------O                                 +..............
..---+---.........|                                 |..............
.....|............+---------------------------------+..............
.....|.............................................................
.....^..............+---------+..........+-----------+.............
..../.\.............| Website |..........|  Database |.............
.../...\............+----+----+..........+-----+-----+.............
.....|...................|.....................|...................
....+-+-+..............+-+-+.................+-+-+.................
....|   |..Arrives.....|   |..DoSomething()..|   |..DoSomething()..
....|   +=============>+   +---------------->+   +---+.............
....|   |..............|   |.................|   |...|.............
....|   +<-------------+   +<----------------+   +<--+............. 
....|   |..............|   |.................|   |.................
....+-+-+..............+-+-+.................+-+-+.................
...................................................................

[7] 各図に注記を追加し、図Sequenceを説明することを示しますUse Case

.....................................................................................
....................-------------------..............................................
.................../....................\............................................
....(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...........\..................../............................................
....................-------------------..............................................
.....................................................................................

[編集: いくつかの ASCII UML 図を追加]

終わり。

于 2014-12-10T19:41:20.283 に答える