Как графически представить точку расширения варианта использования UML? - PullRequest
1 голос
/ 29 февраля 2012

У меня есть сценарий использования, связанный с двумя действующими лицами в системе. Этот вариант использования расширяет другой вариант использования, но только один из участников может использовать расширенный вариант использования.

Есть ли способ представить условный характер расширения первого варианта использования? Или мне нужно указать в документации по прецедентам, что первоначальный прецедент может быть расширен только для одного типа актера?

Спасибо.

1 Ответ

2 голосов
/ 01 марта 2012

Если я понимаю вопрос, похоже, вам нужен актер двух видов. Вам (возможно) нужно сделать один тип актера обобщением посредством абстракции. Другими словами, вам нужно создать специализированный актер, который наследует разрешения более общего актера.

(Прошу прощения за мой ужасный аський народ и обобщение стрелка!)

    O                 __________________
   ---               /                  \
    |     -----------|   Use Case 1     |
   / \               |__________________|
                     | extension points |
   User              |   if Super User  |
    ^                \__________________/
   / \                        /\
  /___\                        | <<extend>>
    |                          | (if Super User)
    |                          |
    |                          |
    O                 _________________
   ---               /                 \
    |     -----------|   Use Case 2     |
   / \               \_________________/
 Super User         

Этот специализированный актер (Суперпользователь) может затем участвовать в обоих случаях использования, но обычный пользователь - только первый (нерасширенный вариант использования).

Обратите внимание, что Super User может или не может быть в состоянии инициировать непосредственно вариант использования два. Это зависит от варианта использования и проблемной области от того, имеет ли это смысл или нет.

Затем вы, вероятно, захотите использовать точку расширения (что-то вроде «Суперпользователь» или «Если суперпользователь») в расширенном сценарии использования, который создает точку принятия решения для расширенного варианта использования.

Здесь - пример более четкой диаграммы.

Также вот определение extension point из Справочного руководства UML (2-е издание) (p358):

Именованный маркер, который идентифицирует местоположение или набор местоположений в поведенческой последовательности для варианта использования, в который можно вставить дополнительное поведение.

Имя имени точки расширения может быть любым. Что бы ни имело для вас смысл. Там нет синтаксических правил. Все, что вы положили на диаграмму, должно появиться где-то в текстовом описании варианта использования (то есть, шаги варианта использования).

...