Рекомендации по написанию спецификаций вариантов использования

UML не определяет единых правил для создания спецификации вариантов использования или прецедентов (кому, что нравится). Однако существует ряд шаблонов, которыми Вы можете воспользоваться. Шаблон от Алистера Коберна. Шаблон от Карла Вигерса. Шаблон от RUP. Шаблон от ICONIX. Шаблон от OpenUP. И т.п. В конце концов Вы можете изобрести свой собственный шаблон. Нужно лишь придерживаться максимальной простоты.

Ниже будут представлены рекомендации и примеры вариантов использования на базе следующего шаблона:

Имя варианта использования

Нет стандарта.
Рекомендуем начинать с глагола или глагольной группы (отглагольного существительного). Например, Выплатить налог с оборота или Выплата налога с оборота.
Не смешивайте оба стиля в одной модели.
Является уникальным идентификатором в рамках модели ВИ

ID варианта использования

Суррогат идентификатора. Используется для облегчения и краткости при описании ссылок

Краткое описание

Изложение цели или сути варианта использования.
Один абзац.

Действующие лица

Каждый ВИ всегда инициируется одним ДЛ.
Но в разные моменты времени один и тот же вариант использования может быть инициирован разными ДЛ.
Любое действующее лицо, которое может инициировать вариант использования, является основным действующим лицом. Все остальные ДЛ — второстепенные.

Предусловия и постусловия

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

Основной поток

«Идеальный» ход развития событий.
Все идет, как ожидается и хочется
Нет ошибок, отклонений, прерываний или ответвлений
Первый шаг рекомендуем записывать, так: 1. ВИ начинается, когда <действующее лицо> <действие>
Шаблон записи шага — <номер> <кто-либо> <совершает некоторое действие>

Пример 1

ВИ: Оплатить налог с оборота
ID: 1
Краткое описание:
Выплата налога с оборота в Налоговое управление по окончанию налогового периода
Основное действующее лицо:
Время (Таймер)
Второстепенные действующие лица:
Налоговое управление
Предусловия:
1. Конец налогового периода
Основной поток:
1. ВИ начинается в конце налогового периода
2. Система определяет сумму Налога с оборота, которую необходимо выплатить Налоговому управлению
3. Система посылает электронный платеж в Налоговое управление.
Постусловия:
1. Налоговое управление получает соответствующую сумму Налога с оборота
Альтернативные потоки:
Нет.

Если использование времени (или таймера) в качестве действующего лица вызывает затруднение в понимании, мы предлагаем другой вариант примера 1

 

Пример 1а

ВИ: Оплатить налог с оборота
ID: 1
Краткое описание:
Выплата налога с оборота в Налоговое управление по окончанию налогового периода
Основное действующее лицо:
Бухгалтер
Второстепенные действующие лица:
Налоговое управление
Предусловия:
1. Конец налогового периода
Основной поток:
1. ВИ начинается, когда Бухгалтер выбирает опцию «оплатить налог с оборота»
2. Система определяет сумму Налога с оборота, которую необходимо выплатить Налоговому управлению
3. Система посылает электронный платеж в Налоговое управление.
Постусловия:
1. Налоговое управление получает соответствующую сумму Налога с оборота
Альтернативные потоки:
Нет.

 

Альтернативные потоки (ветвления и повторения)

Сначала рассмотрим ситуацию простых ветвлений и повторений. Стоит отметить, что спецификация UML не определяет способа представления ветвления и повторения в потоке.

Ветвления потока или повторения в потоке можно сократить, уменьшая число вариантов использования, но пользоваться этим надо умеренно!

Условный выбор — Если

Пример 2

ВИ: Управлять торговой корзиной
ID: 2
Краткое описание:
Покупатель меняет количество товаров в корзине
Основные действующие лица:
Покупатель
Второстепенные действующие лица:
Нет
Предусловия:
1. Содержимое корзины для покупок является видимым
Основной поток:
1. ВИ начинается, когда Покупатель выбирает товарную позицию в корзине
2. Если Покупатель выбирает «удалить позицию»
2.1. Система удаляет позицию из корзины
3. Если Покупатель вводит новое количество
3.1. Система обновляет количество товаров в корзине
Постусловия:
Нет
Альтернативные потоки:
Нет.

Повторение в потоке

Пример 3

ВИ: Найти продукт
ID: 3
Краткое описание:
Система ищет некоторые продукты на основании критерия поиска, заданного Покупателем, и выводит их на экран для Покупателя
Основные действующие лица:
Покупатель
Второстепенные действующие лица:
Нет
Предусловия:
Нет
Основной поток:
1. ВИ начинается, когда Покупатель выбирает опцию «найти продукт»
2. Система запрашивает у Покупателя критерий поиска.
3. Покупатель вводит запрашиваемый критерий.
4. Система ищет продукты, соотвествующие критерию Покупателя.
5. Если система находит соответствующие продукты, тогда
5.1. Для каждого найденного продукта
5.1.1. система выводит на экран миниатюрное представление продукта
5.1.2. система выводит на экран краткое описание продукта
5.1.3. система выводит на экран цену продукта
6. Иначе
6.1. Система сообщает Покупателю о том, что соответствующие продукты не найдены.
Постусловия:
Нет
Альтернативные потоки:
Нет

Пример 4

ВИ: Показать данные о компании
ID: 4
Краткое описание:
Система выводит данные о компании для Покупателя
Основные действующие лица:
Покупатель
Второстепенные действующие лица:
Нет
Предусловия:
Нет
Основной поток:
1. ВИ начинается, когда Покупатель выбирает опцию «показать данные о компании»
2. Система выводит на экран веб-страницу с данными о компании.
3. Пока Покупатель просматривает данные о компании
3.1. Система воспроизводит некоторую фоновую мелодию
3.2. Система отображает специальные предложения в баннере
Постусловия:
1. Система показала данные о компании
2. Система воспроизвела фоновую мелодию
3. Система показала специльные предложения
Альтернативные потоки:
Нет

Моделирование альтернативных потоков

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

Альтернативные потоки могут быть инициированы тремя разными способами:

1. вместо основного потока. Такая ситуация часто возникает в вариантах использования типа CRUD (Create, Read, Update, Delete)

2. после определенного этапа основного потока

3. в любой момент в ходе выполнения основного потока

Пример 5

ВИ: Создать новую учетную запись Покупателя
ID: 5
Краткое описание:
Система создает новую учетную запись для Покупателя
Основные действующие лица:
Покупатель
Второстепенные действующие лица:
Нет
Предусловия:
Нет
Основной поток:
1. ВИ начинается, когда Покупатель выбирает опцию «создать новую учетную запись Покупателя»
2. Пока данные Покупателя недействительны
2.1. Система просит Покупателя ввести его данные, включая адрес электронной почты, пароль и еще раз пароль для его подтверждения
2.2. Система проверяет действительность данных Покупателя
3. Система создает новую учетную запись для Покупателя
Постусловия:
Новая учетная запись создана для Покупателя
Альтернативные потоки:
Неверный email адрес
Неверный пароль
Отмена

Пример 6

Альтернативный поток: Создать новую учетную запись Покупателя:Неверный email адрес
ID: 5.1
Краткое описание:
Система сообщает Покупателю, что он ввел недействительный адрес электронной почты
Основные действующие лица:
Покупатель
Второстепенные действующие лица:
Нет
Предусловия:
Покупатель ввел недействительный адрес электронной почты
Альтернативные потоки:
1. АП начинается после шага 2.2 основного потока
2. Система сообщает Покупателю, что он ввел недействительный адрес электронной почты
Постусловия:
Нет

Пример 7

Альтернативный поток: Создать новую учетную запись Покупателя:Отмена
ID: 5.2
Краткое описание:
Покупатель отменяет процесс создания учетной записи
Основные действующие лица:
Покупатель
Второстепенные действующие лица:
Нет
Предусловия:
Нет
Альтернативные потоки:
1. АП начинается в любой момент времени
2. Покупатель отменяет создание учетной записи
Постусловия:
1. Новая учетная запись не была создана для Покупателя

Выявление альтернативных потоков

Изучите каждый шаг основного потока

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

Документируйте только самые важные альтернативные потоки

Материал подготовлен по книге Джима Арлоу и Айлы Нейштадта «UML 2 и Унифицированный процесс: практический объектно-ориентированный анализ и проектирование, 2-е издание»

Данную статью оформил участник Сообщества Системных Аналитиков Эдуард Галиаскаров.

{smfdispute}