- •1. Знакомство с прецедентами
- •Что такое прецеденты
- •Зачем нужны прецеденты
- •Прецедент Покупка лимонада
- •Дополнительные прецеденты
- •Включение прецедента
- •Расширение прецедента
- •Анализ прецедента
- •Представление модели прецедента
- •Модель автомата по продаже лимонада
- •2. Использование диаграмм прецедентов
- •Отслеживание действий в сценариях
- •3. Визуализация взаимосвязей прецедентов
- •Включение
- •Расширение
- •Обобщение
- •Группировка
- •4. Роль диаграмм прецедентов в процессе анализа
- •5. Пример использования модели прецедентов
- •Изучение предметной области
- •Работа с пользователями
- •Описание прецедентов
- •Уточнение деталей
- •6. Резюме
- •Вопросы и ответы
- •Задание
Расширение
Прецедент Заправка автомата из рассмотренного примера может стать основой для другого прецедента — Заправка с учетом спроса. В отличие от равномерного пополнения запасов всех сортов сиропа, этот прецедент позволяет пополнять автомат с учетом спроса. Новый прецедент будет расширять исходный, называемый также базовым, за счет добавления новых шагов.
Расширение может происходить только в заданных точках последовательности шагов базового прецедента. Такие места называются точками расширения. В прецеденте Заправка автомата новые шаги (поставки соответственно спросу) могут добавляться, когда специалист по заправке открыл автомат и приступает к наполнению отсеков для разных марок лимонада. Для этого примера точка расширения будет "наполнять отсеки".
Подобно включению, расширение отображается линией зависимости (пунктир со стрелкой) со стереотипом «расширяет». Внутри базового прецедента под его именем располагается точка расширения. На рис. 5 показан пример расширения для прецедентов Заправка автомата и Заправка с учетом спроса, а также Пример включения для прецедентов Заправка автомата и Выход наружу.
Рис. 5. Диаграмма прецедентов с отношениями включения и расширения
Обобщение
Прецеденты, подобно классам, могут наследовать друг друга. При наследовании дочерний прецедент наследует последовательность действий (behavior) от базового и добавляет свою собственную очередность шагов. Дочерний прецедент можно применить там, где применяется родительский.
Возвращаясь к примеру автомата по продаже лимонада, можно описать прецедент Покупка стакана лимонада, который наследует свойства прецедента Покупка лимонада. В дочерний прецедент можно добавить новые действия, такие как добавить лед и смешать разные марки лимонада. Обобщение прецедентов, подобно обобщению классов, отображается на диаграмме сплошной линией с не закрашенным треугольником, указывающим на родителя (рис. 6).
Рис. 6. Один прецедент может наследовать смысловое значение и последовательность действий другого
Отношение обобщения может существовать также и между исполнителями. Специалиста по заправке автомата и инкассатора можно считать представителями поставщика. В терминах модели Специалист по заправке и Инкассатор являются дочерними объектами по отношению к объекту Представитель поставщика, что отображено на рис. 7.
Рис. 7. Подобно классам и прецедентам, исполнители могут находиться во взаимоотношениях обобщения
Группировка
Иногда диаграммы прецедентов получаются очень сложными, и возникает необходимость сгруппировать изображенные на них прецеденты. Такое может произойти, если система состоит из множества подсистем, или при интервьюировании пользователей во время формулировки требований к системе возникает потребность в систематизации требований тех из них, которые определяются прецедентами.
Наиболее подходящим способом организации в этих случаях является группировка связанных прецедентов в пакеты. Вспомним, что пакет изображается в виде папки с закладкой. Сгруппированные прецеденты размещаются внутри этой папки.
