Практические рекомендации по применению расширения.

1. Зафиксировать в начале обычный, “нормальный” вариант использования

2. Анализировать каждый шаг этого варианта идти и задавать вопрос “Что в этом варианте может идти не так? Как иначе можно выполнить этот шаг?”

3. Определить все отклонения как расширения данного варианта использования.

 

Количество таких расширений может быть довольно большим, но их отделение способствует лучшему пониманию проблемы.

Таким образом, все альтернативные отклонения от обычного хода протекания процесса использования системы могут быть оформлены как расширения.

 
 


*
Пример.

                   
   
     
 
     
 
 
 
Оптовый торговец
   
 

 


В точке расширения такого вида проверяется условие О>=Оmax, где О – объём сделки, если оно истинно (превышение лимитов по объему сделок), активизируется вариант использования “Учесть превышение лимитов по объёму сделок”. Проверяемое условие называется сторожевым.

Один и тот же вариант использования может использоваться как расширение для нескольких других вариантов. Наоборот, для одной точки может быть несколько различных вариантов расширений, в этом случае они выбираются для выполнения случайно, либо их использование должно оговариваться сторожевым условием.

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

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

Таким образом, включение выгодно использовать, когда имеется какой-либо фрагмент поведения системы, который повторяется многократно и обязательно в вариантах использования и который не хотелось бы копировать в каждом из вариантов.

Пример.

 
 

 

 


Направление стрелки имеет смысл: варианты “Проанализировать риск” и «Договориться о цене покупки» знают, что в точках включения они должны выполнить вариант «Оценить стоимость» (он может включаться неоднократно). Для правильного определения направления стрелки следует задать вопрос по основным вариантам: «Включают что?». Каждая точка включения имеет уникальное имя в рамках варианта использования. Имена точек включения можно указать в специальном разделе в обозначении варианта использования.

Третье отношение между вариантами использования – обобщение (use case generalization) в обычном смысле. Прямой предок может иметь одного или нескольких прямых потомков:

 

       
   
 
 

 


Потомки наследуют все атрибуты и операции родителя. Однако, потомки могут вносить в последовательность действий родителей свою специфику: дополнительноеповедение. Потомок имеет доступ к атрибутам предка и может их менять. Однако, изменение действий предка не должно быть кардинальным, полностью изменяющим поведение родителя.

 

 

Вариант-потомок является частным примером родительского варианта и участвует во всех его отношениях.

Допускается множественное наследование: потомок может иметь несколько родителей, соответственно он наследует все их атрибуты, связи и участвует во всех их отношениях. Потомок в обобщении имеет свои собственные атрибуты и операции и осуществляет вставки своих последовательностей действий, изменяя поведение родителя. Однако, необходимо делать это достаточно осторожно, так как полное изменение поведения родителя ликвидирует саму идею обобщения и делает использование обобщения неэффективным.

 

Упражнение 1 . Создание диаграммы вариантов использования

 

В качестве примера рассмотрим построение модели системы учёта заказов клиентов.