Включение вариантов использования

Иногда в вариантах использования присутствует многократное описание одних и тех же действий.
Рассмотрим, к примеру, систему «Кадры» (рис.1)

Рис.1. Фрагмент функциональности системы «Кадры»

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

Отношение включения («include»), устанавливаемое между вариантами использования, позволяет включить поведения одного варианта использования в поток другого варианта использования.

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

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

Отношение включения имеет простую семантику. Базовый ВИ выполняется до момента включения. Затем выполнение переходит на включаемый ВИ. После завершения включаемого ВИ управление вновь возвращается в базовый ВИ.

Пример 1

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

Постусловия:
1.Данные служащего изменены
Альтернативные потоки:
Нет.

Пример 2

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

Постусловия:
1.Система вывела на экран данные служащего
Альтернативные потоки:
Нет.

Пример 3

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

Постусловия:
1.Данные служащего удалены
Альтернативные потоки:
Нет.

Пример 4

ВИ: Найти данные служащего
ID:4
Краткое описание:
Менеджер ищет данные служащего
Основное действующее лицо:
Менеджер
Второстепенные действующие лица:
Нет
Предусловия:
1. Менеджер входит в систему
Основной поток:
1. Менеджер вводит номер служащего
2. Система ищет данные служащего

Постусловия:
1.Система нашла данные служащего
Альтернативные потоки:
Нет.

Базовый ВИ является незавершенным без всех своих включаемых ВИ. Вместе с тем включаемый ВИ может быть как полным, так и неполным.

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

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

В приведенном мною примере, вариант использования «Найти данные служащего» является неполным.

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

{smfdispute}