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