Что такое варианты использования?
Основная цель создания
любой программной системы - создание такого
программного продукта, который помогает
пользователю выполнять свои повседневные
задачи. Для создания таких программ первым
делом определяются требования, которым
должна удовлетворять система. Однако если
дать пользователям написать эти требования
на бумаге, то часто можно получить список
функций, по которому трудно судить будет ли
будущая система выполнять свое назначение
и сможет ли она облегчить пользователю
выполнение его работы вообще. Непонятно
какие из выполняемых функций более важны и
для кого.
Для того, чтобы более точно
понять как должна работать система, все
чаще используется описание
функциональности системы через варианты
использования (Use Case или прецеденты).
Варианты использования это - описание
последовательности действий, которые может
осуществлять система в ответ на внешние
воздействия пользователей или других
программных систем. Варианты использования
отражают функциональность системы с точки
зрения получения значимого результата для
пользователя, поэтому они точнее позволяют
ранжировать функции по значимости
получаемого результата.
Зачем нужны варианты использования?
Варианты использования
предназначены в первую очередь для
определения функциональных требований к
системе и управляют всем процессом
разработки. Все основные виды деятельности
такие как анализ, проектирование,
тестирование выполняются на основе
вариантов использования. Во время анализа и
проектирования варианты использования
позволяют понять как результаты, которые
хочет получить пользователь влияют на
архитектуру системы и как должны себя вести
компоненты системы, для того чтобы
реализовать нужную для пользователя
функциональность.
В процессе тестирования,
описанные ранее варианты использования
позволяют проще оценить точность
реализации требований пользователей и
позволяют провести пошаговую проверку этих
требований.
Стратегия использования
прецедентов при определении требований
определяет необходимость дополнительно к
вопросу "что пользователи ждут от
системы?" задавать вопрос "что система
должна сделать для конкретного
пользователя?". Такой подход позволяет
искать функции, которые нужны многим
пользователям и исключать те возможности,
которые не могут помочь пользователям
выполнять свои повседневные задачи.
Состав диаграммы Use Case
Диаграмма вариантов использования
состоит из актеров, для которых система
производит действие и собственно действия
Use Case, которое описывает то, что актер хочет
получить от системы. Актер обозначается
значком человечка, а Use Case - овалом.
Дополнительно в диаграммы могут быть
добавлены комментарии.
Ответы на следующие вопросы
позволят определить актеров,
взаимодействующих с системой:
-
кто взаимодействует
с системой или использует систему;
-
кто передает или
принимает информацию в/из системы;
-
кто является внешним
по отношению к системе.
Каждый вариант использования показывает,
как конкретный актер использует систему и в
дальнейшем расширяется диаграммами
состояний и последовательности действий.
Виды взаимодействий
Между актерами и вариантами
использования могут быть различные виды
взаимодействия. Основные виды
взаимодействия следующие:
- Простая ассоциация - отражается
линией между актером и вариантом
использования (без стрелки). Отражает
связь актера и варианта использования. На
рисунке между актером администратор
и вариантом использования просматривать
заказ.
- Направленная ассоциация - то же
что и простая ассоциация, но показывает,
что вариант использования
инициализируется актером. Обозначается
стрелкой.
- Наследование - показывает, что
потомок наследует атрибуты и поведение
своего прямого предка. Может применяться
как для актеров, так для вариантов
использования.
- Расширение (extend) - показывает, что
вариант использования расширяет базовую
последовательность действий и вставляет
собственную последовательность. При этом
в отличие от типа отношений "включение"
расширенная последовательность может
осуществляться в зависимости от
определенных условий.
- Включение - показывает, что
вариант использования включается в
базовую последовательность и
выполняется всегда (на рисунке не показан).
Существуют и другие виды взаимодействия,
но они, на мой взгляд менее важны и реже
применяются.