На этом шаге рассмотрим сценарии и варианты использования.
Обычно в начале работы вы будете описывать поток событий варианта использования в текстовой форме. Однако по мере уточнения требований к системе вам при изображении потоков понадобятся диаграммы взаимодействий, позволяющие представить их графически. Как правило, вы будете применять диаграмму последовательности для описания основного потока варианта использования, а ее вариации – для исключительных потоков.
Желательно отделять основной поток от альтернативных, поскольку вариант использования описывает не одну, а множество последовательностей, и выразить все детали интересующего вас варианта использования в виде одной последовательности невозможно. Например, в системе управления человеческими ресурсами присутствует вариант использования Hire employee (Нанять работника). Существует множество разновидностей этой основной бизнес-функции. Вы можете переманить работника из другой компании (наиболее общий сценарий), перевести сотрудника из одного подразделения в другое (что часто случается в транснациональных компаниях) или нанять иностранца (особый случай, регулируемый специальными правилами). Каждый из этих вариантов описывается своей последовательностью.
Hire employee описывает набор последовательностей, каждая из которых представляет один поток из всех возможных вариаций. Такая последовательность называется сценарием. Сценарий (scenario) – это конкретная последовательность действий, иллюстрирующих поведение. Сценарии по отношению к вариантам использования – то же самое, что экземпляры по отношению к классам, поскольку сценарий – это в основном один экземпляр варианта использования.
Существует фактор количественного роста от вариантов использования к сценариям. Система относительно небольшой сложности может включать несколько десятков вариантов использования, определяющих ее поведение, и каждый вариант использования может включать до нескольких десятков сценариев. У каждого варианта использования вы найдете главные сценарии (которые определяют существенные последовательности) и второстепенные (определяющие альтернативные последовательности).
На следующем шаге рассмотрим кооперации в вариантах использованиия в UML.