Анализ требований клиента. Зачем нужны анализ и проектирование. Анализ проблемы, страница 5

Отношение расширения позволяет моделировать в прецеденте необязательное поведение. Иначе говоря, можно выразить некоторое поведение в отдельном прецеденте, а в другом прецеденте указать конкретные точки (называемые точками расширения), где может быть произвольно вызван первый прецедент. Отношение расширения моделируется как зависимость со стереотипом <<extend>>. Пример расширения показан на рис. 7.3.

На рис. 7.4 показана еще одна, более подробная диаграмма прецедентов "Просмотр счета" и "Список транзакций" для системы HomeDirect.

Окончательная модель прецедентов в практическом исследовании системы HomeDirect приводится в главе 16.

Ниже перечислены типичные ошибки, допускаемые теми, кто впервые сталкивается с моделированием прецедентов.

·  Создание слишком крупных прецедентов. Например, прецедент "Обработка заказа" может быть слишком крупным, если он с точки зрения пользователя объединяет ситуации "Создание нового заказа", "Отправка заказа" и "Изменение заказа".

·  Создание слишком мелких прецедентов. Продолжая предыдущий пример, прецедент "Изменение почтового индекса для заказа" может быть чересчур мелким.

·  Определение прецедентов с точки зрения системы. Например, "Получение катало га из базы данных" вместо "Просмотр каталога".

·  Чрезмерное использование отношений расширения в ущерб включению. Отношение расширения легко можно выразить через включение.

·  Чрезмерное увлечение обобщением прецедентов и исполнителей. Это не является необходимым, по крайней мере вначале. Следует помнить, что всегда можно про извести обобщение на какой-то последующей итерации, когда работа системы будет лучше изучена.

Диаграммы последовательностей

Прецедент остается текстовым описанием и поэтому допускает различные интерпретации. Диаграмма последовательностей позволяет выразить прецедент более точными, техническими средствами. Для этого прецедент изображается в терминах взаимодействия между исполнителем и системой.

Диаграмма последовательностей в языке UML представляет собой разновидность диаграммы взаимодействий. Другой тип диаграммы взаимодействий носит название диаграммы сотрудничества. Диаграмма последовательностей описывает определенный сценарий, причем прецедент обычно состоит из одного или нескольких сценариев (например, основного и дополнительных процессов). Главное значение в диаграмме последовательностей придается временной последовательности взаимодействий. Таким образом, вертикальная ось на диаграмме последовательностей изображает время.

Диаграмма последовательностей строится на базе описания прецедента. На рис. 7.5 показана диаграмма последовательностей для прецедента "Перевод денег", который рассматривался выше. В левой части этой диаграммы помещены последовательно все пункты текстового описания прецедента. Две вертикальные линии изображают линии существования исполнителя-клиента (Customer) и системы (System). Исполнитель изображается схематическим рисунком, а система — простым прямоугольником.


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

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