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

Множество ассоциаций - агрегация

Бинарная ассоциация

Работает_ в

*

Сотрудник

Сотрудник

*

1

Отдел

*

ФИО

Адрес

Место работы

1

1

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

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

<extend>

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

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

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

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

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

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

П

1

*

ример.

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

«extend»

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

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

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

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

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

Пример.

«include» «include»

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

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

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

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

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

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

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

Примеры построения диаграмм вариантов использования.

Пример 1. АС продаж товаров по каталогу.

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

Разработать диаграмму вариантов использования АС при продажах.

Разработку диаграммы вариантов использования проведем в несколько этапов.

Шаг 1. Предварительный набросок.

Актантами данной системы являются, очевидно, Продавец и Покупатель, каждому из которых должен быть обеспечен определенный сервис. В данном случае можно считать, что они обращаются к общему сервису “Оформить заказ на покупку товара”. Множественность ассоциаций проставляется по описанию предметной области.