4.
UML. Диаграмма вариантов
использования и правила ее построения. Пример.
Модель вариантов использования включает диаграммы вариантов использования и
соответствующие сценарии, описывает функциональные требования к системе и ее
поведение при взаимодействии с пользователями.
Все диаграммы языка являются графами специального вида, содержат
вершины (геометрические фигуры), связанные ребрами (дугами). Связи обозначаются
различными линиями на плоскости, внутри фигур пишется текст, около вершин и
связей могут изображаться некоторые графические символы.
В целом процесс объектно-ориентированного проектирования происходит в
соответствии с основными принципами структурного системного анализа: нисходящее
проектирование с построением иерархии диаграмм, постепенно переводящих нас с
уровня на уровень: концептуальный – логический – физический (реализация).
Диаграммой самого верхнего уровня является диаграмма вариантов использования
системы в целом. Именно она является исходным концептуальным представлением системы
и строится с целью:
·
определить общие
границы и контекст моделируемой предметной области;
·
сформировать
общие требования к функциональному поведению и
интерфейсу системы;
·
подготовить
исходную документацию для взаимодействия разработчиков и заказчиков - пользователей
системы.
Точка зрения модели: внешний пользователь системы. В диаграмму вариантов
использования входят актанты (actors),
варианты использования (use case) и ассоциации (association).
Актант
(актер, внешняя сущность, actor) -
абстрактное описание класса источников/приемников сообщений, которые напрямую
взаимодействуют с системой, подсистемой или классом. Это-описание роли,
которую играет пользователь (человек или другая система, подсистема, класс) во
время взаимодействия с системой. На самом верхнем уровне, например, актантами могут
являться оператор, системный администратор, администратор базы данных, обычный
пользователь, какой-либо класс устройств.
Каждая роль требует для себя
вполне определенного сервиса (обслуживания).
Один человек или физический объект в зависимости от режима взаимодействия
может представлять собой несколько актантов (разные роли). Например, один и тот
же человек может быть оператором и администратором базы данных, продавцом и
покупателем и т.п. Актант обычно изображается на диаграммах как “человек” с
надписью (символ человека):
Заказчик
Актант находится вне системы и его внутренняя
структура не определяется. Он является источником/приемником сообщений.
Вариант использования (прецедент, use case) – абстрактное описание
класса сервиса (сервисных функций), предоставляемого актанту в ответ на его
запросы. Сервис могут предоставлять система в целом, подсистема или класс.
Таким образом, вариант использования означает моделирование некоторой части
функциональности или поведения системы. Вариант использования имеет имя и
означает некоторую последовательность действий, видимых внешнему
источнику/приемнику (актанту). Подробно этот процесс описывается сценарием,
построение которого рассматривается в следующей лабораторной работе.
Связь между актантом и вариантом использования показывается ассоциацией.
На диаграмме вариант использования изображается обычно эллипсом, внутри
ставится имя.
Ассоциация показывается линией:
Менеджер
6
Между актантами и вариантами использования ассоциация – единственный
вид связи. Можно ее пометить, а также указать кратность связи. Имя ассоциации,
если оно есть, должно быть уникальным.
Между собой варианты
использования не обмениваются сообщениями и могут находиться только в
отношениях (связях) расширения (extend), включения (include) и обобщения ( generalization).
В отношении расширения вариант использования – клиент вносит дополнительную
последовательность действий, начиная с некоторой точки основной последовательности,
при этом таких “вставок” может быть несколько. Все эти точки называются точками
расширения.
Направление стрелки имеет смысл: вариант “Запросить каталог” знает, в
какой точке расширения варианта “Принять заказ” он начинает выполняться (таких точек может быть несколько). Для
правильного определения направления стрелки следует задать вопрос по данному
варианту: «Расширяет что?». Каждая точка расширения имеет уникальное имя в
рамках варианта “Принять заказ”. Имена точек расширения можно указать в
специальном разделе в обозначении варианта использования.
Таким образом, все альтернативные отклонения от обычного хода протекания
процесса использования системы могут быть оформлены как расширения.
Один и тот же вариант использования может
использоваться как расширение для нескольких других вариантов.
В отношении включения один вариант использования включается в базовый
вариант использования, начиная с точки включения. Управление безусловное,
выполнение включения длится до полного его завершения. После этого продолжается
выполнение базового варианта, начиная с операции, следующей за точкой
включения.
В отличие от расширения, меняющего характер протекания основного
процесса и не обязательно передающего ему управление, включение является часто
повторяемым фрагментом, выполняющим некоторый типовой сервис. Точек включения
может быть несколько, причем в разных вариантах.
Таким образом, включение выгодно использовать, когда имеется какой-либо
фрагмент поведения системы, который повторяется многократно и обязательно в
вариантах использования и который не хотелось бы
копировать в каждом из вариантов.
Для правильного определения направления стрелки следует задать вопрос
по основным вариантам: «Включают что?».
Каждая точка включения имеет уникальное имя в рамках варианта использования.
Имена точек включения можно указать в специальном разделе в обозначении
варианта использования
7
Пример:
.
Третье отношение между вариантами использования – обобщение (use case generalization) в обычном смысле.
Прямой предок может иметь одного или нескольких прямых потомков:
Потомки наследуют все атрибуты и операции родителя. Однако, потомки могут вносить в последовательность действий
родителей свою специфику: дополнительное поведение. Вариант-потомок
является частным примером родительского варианта и участвует во всех его
отношениях.