Каждый прецедент — это сплетение первичных (нормальный поток для прецедента) и вторичных сценариев (логика ЧТО-ЕСЛИ в прецеденте). Это значит, что существует множество сценариев для системы — первичные и вторичные сценарии для всех прецедентов. На этапе анализа уже можно сказать, что определение первичного сценария для каждого выбранного прецедента будет достаточным. Когда вы обнаружите, что каждый новый сценарий повторяет большинство шагов из предыдущего, то вы добились цели. Данная фаза анализа должна завершаться по мере того, как разработчики продумают приблизительно 80 % первичных сценариев и выборочно коснутся вторичных. Если проработать больше сценариев, результаты анализа, вероятно, окажутся хуже; если меньше — не будет достаточного понимания поведения системы, чтобы правильно оценить риски.
По методологии Rational Unified Process реализации прецедентов (use case realizations) отражаются в логическом представлении модели. Обратимся к концепции стереотипов, чтобы показать, что прецеденты, созданные в логическом представлении, являются реализациями прецедентов из представления use case. Другими словами, прецеденты в логическом представлении имеют те же имена, что и в представлении use case, а также стереотип, указывающий на реализацию. В языке UML реализация прецедентов изображается в виде пунктирного овала (см. рис. 5.1). Логическое представление прецедентов обычно отображается на диаграмме прецедентов (или наборе диаграмм), содержащейся в логическом представлении модели.
Создание диаграммы прецедентов в логическом представлении модели в программе Rational Rose состоит из следующих шагов:
1. Щелкните правой кнопкой мыши по папке Logical View (Логическое представление) в окне браузера.
2. В появившемся контекстно-зависимом меню выберите команду New => Use Case (Создать => Прецедент). В раздел логического представления модели будет добавлена новая диаграмма прецедентов с названием New Diagram.
3. Введите для новой диаграммы название Realizations.
Окно браузера с диаграммой прецедентов Realizations показано на рис. 5.2.
Последовательность создания реализаций прецедентов в программе Rational Rose:
1. Дважды щелкните по диаграмме прецедентов Realizations в списке браузера, чтобы открыть диаграмму.
2. Щелкните по кнопке Use Case (Прецедент) на панели инструментов.
3. Щелкните по диаграмме прецедентов. В диаграмму и список браузера будет добавлен новый прецедент.
4. Дважды щелкните по изображению прецедента. На экране появится диалоговое окно Use Case Specification (Параметры прецедента).
5. Введите название прецедента (такое же, как у модели) в поле ввода Name (Имя). Заметьте, что вы должны указать название в диалоговом окне параметров прецедента или в браузере, чтобы сообщить программе Rational Rose об использовании другого пространства имен (namespace). Если вы введете название прецедента непосредственно на диаграмме, программа Rational Rose будет считать, что это тот же прецедент, что и в представлении use case.
6. В открывающемся списке Stereotype (Стереотип) выберите стереотип use-case realization.
7. Щелкните по кнопке OK, чтобы закрыть диалоговое окно.
Диаграмма прецедентов Realizations показана на рис. 5.3.
Связь между прецедентами в логическом и use case-представлении отражается путем добавления прецедентов из представления use case на диаграмму Realizations и соединения с их реализациями посредством однонаправленной ассоциативной связи с соответствующим стереотипом. (В языке UML используются стереотипные зависимости, но они пока не поддерживаются программой Rational Rose.)
На рис. 5.4 показана связь реализаций с представлением прецедентов на диаграмме функций Realizations.
Документирование сценариев
Поток событий для прецедента описывается словами, тогда как сценарии отображаются с помощью диаграмм взаимосвязи (interaction diagrams). Существует два типа диаграмм взаимосвязи — диаграммы последовательности действий (sequence diagrams) и диаграммы взаимодействий (collaboration diagrams). Каждая диаграмма является графическим представлением сценария.
Диаграммы последовательности действий