Например, прецедент, контролирующий движение коробок на конвейере, может быть дополнен прецедентом сигнала тревоги при возникновении затора. Для системы регистрации курсов пока нельзя выделить каких-либо дополнительных прецедентов. Отношение дополняет изображается как отношение зависимости, которое направлено от дополнительного прецедента к базовому. (В программе Rational Rose 2000 необходимо использовать однонаправленную ассоциативную связь вместо отношения зависимости.)
В языке UML существует понятие стереотипа (stereotype), с помощью которого создаются новые элементы модели путем расширения функциональности базовых элементов. Таким образом, это понятие позволяет языку UML иметь минимальный набор символов, которые могут быть при необходимости дополнены для создания связующих элементов в разрабатываемой системе. Имя стереотипа заключается в двойные треугольные скобки и помещается рядом с линией связи. Стереотипы используются для создания нужных отношений между прецедентами. Стереотип <<communicate>> может добавляться к ассоциации, чтобы показать, что это коммуникативная ассоциация. Но в этом нет необходимости, поскольку ассоциация — это единственный допустимый тип связи между актером и прецедентом. Отношения включает и дополняет должны использовать стереотипы, потому что они отображаются как отношение зависимости.
Пример отношений прецедентов показан на рис. 3.8.
Рис. 3.8. Отношения прецедентов
Диаграммы прецедентов
Диаграмма прецедентов (use case diagram) — это графическое представление всех или части актеров, прецедентов и их взаимодействий в системе. В каждой системе обычно есть главная диаграмма прецедентов, которая отображает границы системы (актеров) и основное функциональное поведение системы (прецеденты). Другие диаграммы прецедентов могут создаваться при необходимости. Приведу некоторые примеры:
диаграмма, показывающая все прецеденты для определенного актера;
диаграмма, показывающая все прецеденты, реализованные на данной итерации;
диаграмма, показывающая определенный прецедент и все его отношения. Для создания главной диаграммы прецедентов в программе Rational Rose:
1. Дважды щелкните по пункту Main (Главная диаграмма) в разделе Use Case View (Представление прецедентов) в списке браузера, чтобы открыть диаграмму.
2. В списке браузера выберите актера и перетащите его на диаграмму с помощью мыши.
3. Аналогичным образом поместите на диаграмму других нужных актеров.
4. В списке браузера выберите прецедент и перетащите его на диаграмму с помощью мыши.
5. Аналогичным образом поместите на диаграмму другие требуемые прецеденты.
Актеры и прецедент могут быть получены прямо на диаграмме с использованием панели инструментов.
Чтобы создать коммуникативные ассоциации в программе Rational Rose:
1. На панели инструментов щелкните по кнопке Association (Ассоциативная связь) или по кнопке Unidirectional Association (Однонаправленная ассоциативная связь). Если нужная кнопка отсутствует, щелкните правой кнопкой мыши на панели инструментов, в появившемся контекстно-зависимом меню выберите команду Customize (Настройка), чтобы добавить кнопку.
2. Щелкните по актеру — инициатору связи — и перетащите возникшую линию связи на нужный прецедент.
Если нужно добавить стереотип, сделайте следующее:
1. Дважды щелкните по линии связи, чтобы открыть диалоговое окно Specification (Параметры).
2. В открывающемся списке Stereotype (Стереотип) выберите значение communicate.
3. Щелкните по кнопке OK, чтобы закрыть диалоговое окно.
4. Аналогичным образом добавьте стереотип к другим связям.
Для создания отношения включает в программе Rational Rose нужно:
1. На панели инструментов щелкнуть по кнопке Unidirectional Association.
2. Щелкнуть по использующему прецеденту и перетащить возникшую линию связи на используемый.
3. Дважды щелкнуть по линии связи, чтобы открыть диалоговое окно Specification.
4. В открывающемся списке Stereotype выбрать значение include.
5. Щелкнуть по кнопке OK, чтобы закрыть диалоговое окно.
Создание отношения дополняет в программе Rational Rose предусматривает выполнение следующих действий:
1. На панели инструментов щелкните по кнопке Unidirectional Association.
2. Щелкните по прецеденту с дополнительными возможностями и перетащите возникшую линию связи на базовый.