2. Щелкните по кнопке Use Case (Прецедент) на панели инструментов.
3. Щелкните по диаграмме прецедентов. В диаграмму и список браузера будет добавлен новый прецедент.
4. Дважды щелкните по изображению прецедента. На экране появится диалоговое окно Use Case Specification (Параметры прецедента).
5. Введите название прецедента (такое же, как у модели) в поле ввода Name (Имя). Заметьте, что вы должны указать название в диалоговом окне параметров прецедента или в браузере, чтобы сообщить программе Rational Rose об использовании другого пространства имен (namespace). Если вы введете название прецедента непосредственно на диаграмме, программа Rational Rose будет считать, что это тот же прецедент, что и в представлении use case.
6. В открывающемся списке Stereotype (Стереотип) выберите стереотип use-case realization.
7. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно.
Диаграмма прецедентов Realizations показана на рис. 5.3.
Связь между прецедентами в логическом и use case-представлении отражается путем добавления прецедентов из представления use case на диаграмму Realizations и соединения с их реализациями посредством однонаправленной ассоциативной связи с соответствующим стереотипом. (В языке UML используются стереотипные зависимости, но они пока не поддерживаются программой Rational Rose.)
На рис. 5.4 показана связь реализаций с представлением прецедентов на диаграмме функций Realizations.
Рис. 5.3. Диаграмма реализаций прецедентов
Рис. 5.4. Связь реализаций с представлением прецедентов
Документирование сценариевПоток событий для прецедента описывается словами, тогда как сценарии отображаются с помощью диаграмм взаимосвязи (interaction diagrams). Существует два типа диаграмм взаимосвязи — диаграммы последовательности действий (sequence diagrams) и диаграммы взаимодействий (collaboration diagrams). Каждая диаграмма является графическим представлением сценария.
Диаграммы последовательности действийДиаграмма последовательности действий (sequence diagram) отображает взаимодействие объектов, упорядоченное по времени. На ней показаны объекты и классы, используемые в сценарии, и последовательность сообщений, которыми обмениваются объекты, для выполнения сценария. Диаграммы последовательности действий обычно соответствуют реализациям прецедентов в логическом представлении системы.
В языке UML объект на диаграмме последовательности действий выглядит как прямоугольник, содержащий подчеркнутое название объекта. Название может состоять только из имени объекта, из имени объекта и его класса или только имени класса (анонимный объект). Эти три вида наименований объекта показаны на рис. 5.5.
Рис. 5.5. Наименования объектов на диаграмме последовательности действий
Названия объектов могут быть конкретными (например, Алгебра 101, раздел 1) или общими (например, учебный курс). Часто анонимные объекты используются для представления любого объекта данного класса.
Каждый объект также имеет свою временную линию (timeline), изображаемую пунктиром под объектом. Сообщения, передаваемые между объектами, указываются стрелками, направленными от клиента (отправителя сообщения) к поставщику (получателю сообщения).
На рис. 5.6 представлена нотация языка UML для объектов и сообщений на диаграмме последовательности действий.
Для создания диаграммы последовательности действий в программе Rational Rose:
1. Щелкните правой кнопкой мыши по папке Logical View (Логическое представление) в окне браузера.
2. В появившемся контекстно-зависимом меню выберите команду New => Sequence Diagram (Создать => Диаграмма последовательности действий). В список браузера будет добавлена новая диаграмма.
3. Введите ее имя.
Рис. 5.6. Нотация языка UML для объектов и сообщений на диаграмме последовательности действий
Окно браузера с диаграммой последовательности действий показано на рис. 5.7.
Рис. 5.7. Окно браузера с диаграммой последовательности действий
Чтобы создать объекты и сообщения на диаграмме последовательности действий в программе Rational Rose:
1. Дважды щелкните по диаграмме последовательности действий в списке браузера, чтобы открыть диаграмму.
2. Выберите из списка актера, щелкнув по нему мышью.
3. Перетащите актера на диаграмму последовательности действий.
4. Щелкните по кнопке Object (Объект) на панели инструментов.
5. Щелкните по диаграмме последовательности действий, чтобы добавить новый объект.
6. Введите имя объекта.
7. Повторите предыдущие шаги для каждого объекта и актера в сценарии.
8. Щелкните по кнопке Object Message (Сообщение) на панели инструментов.
9. Щелкните по актеру или объекту-отправителю сообщения и проведите стрелку сообщения к актеру или объекту-получателю.
10. Введите название сообщения.
11. Повторите шаги с седьмого по девятый для каждого сообщения в сценарии.
Диаграмма последовательности действий для сценария создание учебного предмета (Create a Course) изображена на рис. 5.8.
Рис. 5.8. Диаграмма последовательности действий
Рис. 5.9. Диаграмма последовательности действий с объектом, присвоенным классу
IПрисваивание объектов соответствующим классам на диаграмме последовательности действий в программе Rational Rose предусматривает выполнение следующих шагов: 1. В списке браузера выберите класс, щелкнув по нему мышью. 2. Перетащите класс на объект на диаграмме последовательности действий. Программа Rational Rose автоматически добавит имя класса с предшествующим знаком двоеточия к названию объекта. Если у объекта нет имени, название примет вид:: имя класса. Если у стереотипа данного класса есть значок, то он будет использован для изображения объекта на диаграмме.
Диаграмма последовательности действий с объектом предмет (a course), присвоенным классу предмет (Course), показана на рис. 5.9.
Диаграммы последовательности действий и граничные классыГраничные классы добавляются на диаграмму последовательности действий для того, чтобы показать взаимодействие с пользователем или другой системой. На стадии анализа назначение граничных классов на диаграмме заключается в описании требований к интерфейсу, но не в описании реализации интерфейса.
Реальные сообщения, поступающие от актера граничному классу, и информация об их последовательности зависят от структуры приложения и определяются на стадии проектирования. Они могут изменяться, по мере того как в систему добавляется информация о способах реализации.
Сложность и диаграммы последовательности действийКаждый раз, когда я веду занятия, у слушателей возникает вопрос: «Насколько сложной может быть диаграмма последовательности действий?» Я отвечаю всегда одинаково: «Сохраняйте ее простой». Прелесть этой диаграммы в ее простоте — можно легко понять и увидеть объекты, взаимодействия объектов, сообщения между ними и функциональность, задаваемую сценариями.
Следующий вопрос выглядит так: «Что делать с условной логикой?» (с логикой ЕСЛИ-ТО-ИНАЧЕ, которая существует в реальном мире). Ответ на него также субъективен. Если логика проста и требует небольшого количества сообщений, я обычно добавляю ее к одной диаграмме и использую примечания и скрипты для указания выбора, который нужно сделать. С другой стороны, если логика ЕСЛИТО-ИНАЧЕ требует сложных сообщений, я обычно рисую отдельные диаграммы: одну для случая ЕСЛИ, одну для ТО и одну для ИНАЧЕ.
Это делается для сохранения простоты диаграмм. Если нужно, их можно связать друг с другом. Это позволит пользователям перемещаться по набору диаграмм.
Для связывания диаграмм в программе Rational Rose:
1. Щелкните по кнопке Note (Сноска) на панели инструментов.
2. Щелкните по диаграмме, чтобы поместить на нее сноску.
3. Выберите в списке браузера диаграмму, которую нужно связать с текущей, и перетащите ее на сноску.
4. Для перехода на связанную диаграмму необходимо дважды щелкнуть по сноске.
Диаграммы взаимодействийДиаграмма взаимодействий (collaboration diagram) — это альтернативный способ отображения сценариев. Такой тип диаграммы показывает взаимодействие объектов, организованное вокруг них, и их связи друг с другом. Диаграмма взаимодействий содержит:
□ объекты, изображаемые в виде прямоугольников;
□ связи между объектами, изображаемые в виде линий;
□ сообщения в виде текста и стрелки, направленной от клиента к поставщику.