2014-12-09 7 views
2

У меня есть актер для - всего лишь пример - веб-сайт под названием «Посетитель» в диаграмме последовательности UML2. Этот актер взаимодействует с граничным объектом, отправляет учетные данные и возвращает токен сеанса. Когда это будет сделано, я хотел бы продвинуть этого актера в «Аутентифицированный пользователь».UML - Продвижение актера в диаграмме последовательности

Я хотел бы сохранить «посетителя» и «аутентифицированного пользователя», поскольку они представляют разные роли и имеют разные взаимодействия с системой. (Вариант использования посетителя не является подмножеством «Аутентифицированный пользователь», так как посетитель получает объявления и т. Д.)

Теперь я могу создать отдельную LifeLine для «Authenticated User» и создать для нее сообщение «Создать» и сообщение «Уничтожить» для «Посетителя» в нужном месте, но это действительно кажется неудобным.

Я также могу создать «стереотип« < < >>, но какой общепринятый способ сделать это?

ответ

0

Если вы моделируете их как разные актеры (и, следовательно, разные классификаторы), то вы можете переходить от одного к другому. Если вы являетесь определенным типом, вы не можете изменить этот тип в течение своей жизни. Итак, в этом случае у вас нет другого выбора, кроме как начать с нового «Аутентифицированного пользователя»

Стереотипы принадлежат к метаму миру. Поэтому, если вы не создаете собственный профиль UML для поддержки своего метода моделирования, вам не следует трогать стереотипы.

0

Исполняемый UML (nee Shlaer-Mellor) поддерживает концепцию миграции подтипов. Однако большинство объектно-ориентированных языков этого не делают. Хотя это полезная концепция, вам понадобится несколько строк кода для ее реализации. Я бы предложил конструктор «copy», который выполняет миграцию. См. Статью по адресу UML Subtype Migration.

Методика моделирования ОРМ имеет примеры в информационного моделирования и реляционных баз данных Терри Halpin, Тони Морган Найдено в Google Книги.

2

Думайте об этом, когда «посетитель» продвигается к «аутентифицированному пользователю», а затем где-то в системе на самом деле появляется аватар. Это не «посетитель», путешествующий в системе, это его/ее аватар. Поэтому создание другого объекта-актера со своей собственной линией жизни мне кажется вполне подходящим.

(Конечно, вы можете реализовать два различных «состояния» существования, используя простой boolean переключатель в общем User классе, но это не то, что вы просили ..)

я бы, вероятно, использовать

или что-то очень похожи

+0

Согласен, что «Актеры» также могут отображаться в виде объектов/классов, особенно когда подразумевается наследование – umlcat

0

Short Быстрый ответ

Применить "стереотипы" и "заметки", чтобы расширить U.M.L. Диаграммы

Длинного скучного Расширенного Ответ

Вы вопрос является допустимым.

Для этого на «диаграмме (-ях) последовательности» нет общего стандарта.

Косвенно, я видел много «диаграмм последовательности», как этот случай, разделил это на две или более диаграммы, где есть диаграмма для «Регистров посетителя на веб-сайт», а другая диаграмма «Посетитель становится User, loggin in Website ", который расширяет первую диаграмму.

Помните, что многие «диаграммы последовательности» представлены небольшой «Диаграммой использования» с «Актером (акторами)» и «Актер (ы)» и «Использовать диаграмму (ы) «может использовать стереотип <<extend>>.

Пример «Пользователь» Actor быть продлен еще на один Actor, [без Use Case (ы)], может быть что-то вроде этого:

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

Пример Use Case расширяется другой Use Case, [без Actor (s)], может быть что-то вроде этого:

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

и эта ситуация очень распространена, и, часто, чтобы рассмотреть «защиту acto ", стандарт.

Неплохо, и не является ошибкой, что вы переходите прямо к «Последовательной диаграмме».

Тем не менее, может быть, вы должны:

[1] Добавить "посетитель приходит на сайт" Use Case диаграммы, с актером под названием "Посетитель"

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

[2] Добавьте релевантная «Посетитель становится пользователь, зарегистрировавшись на веб-сайте»Use Case диаграммы, с актером под названием„Посетитель“

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

[3] Добавить соответствующие„журналы пользователя в веб-сайт“-схема, с актером под названием "Пользователь"

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

[4] Объединить предыдущие диаграммы, в один, с <<extends>> стереотипа

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

[EDIT: Добавлено несколько ASCII U.M.L. Схемы]

Выполнено.

+0

Где ваш знаменитый asciiart? – xmojmr

+0

@xmojmr Извините, я добавлю UML-диаграммы позже – umlcat

+0

Хорошая статья и красивые огромные диаграммы (у вас уже есть мой upvote). Но я не видел стереотип '<> ', который можно использовать между двумя актерами, до сегодняшнего дня. Пока это всегда выглядело как нормальная ссылка обобщения, как на этой картинке: http://stackoverflow.com/a/15019079/2626313. Вы уверены, что это синтаксически правильно? – xmojmr