Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабUML.doc
Скачиваний:
30
Добавлен:
16.03.2015
Размер:
1.46 Mб
Скачать

<actor>

Заказчик

  1. Более стандартно: “человек” с надписью (символ человека)

Актант находится вне системы и его внутренняя структура не определяется. Он является источником/приемником сообщений.

Заказчик

Вариант использования (прецедент,usecase) – абстрактное описание класса сервиса (сервисных функций), предоставляемого актанту в ответ на его запросы.

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

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

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

Связь между актантом и вариантом использования показывается ассоциацией.

На диаграмме вариант использования изображается двумя способами:

1) эллипсом, внутри ставится имя

2) прямоугольником - как и любой класс

<use case>

Принять заказ

Ассоциация показывается линией:

Заказчик

Датчик

Между актантами и вариантами использования ассоциация – единственный вид связи. При этом он имеет семантику коммутативной связи, то есть передачи сообщений, поэтому обычно не помечается, так как контекст ясен из обозначений актанта и варианта использования. Но можно ее пометить, а также указать кратность связи:

1

*

Клиент банка

Кратность(multiplicity) характеризует количество конкретных экземпляров класса, участвующих в данной связи (один клиент может оформить неограниченное число кредитов).

Имя ассоциации, если оно есть, должно быть уникальным.

М

ежду собой варианты использования не обмениваются сообщениями и могут находиться только в отношениях (связях)расширения(extend),включения (include) иобобщения(generalization).

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

<extend>

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

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

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

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

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

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

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

П

1

*

ример.

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

«extend»

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

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

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

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

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

Пример.

«include» «include»

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

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

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

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

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