- •2.5. Диаграммы пакетов
- •2.6.1. Общая характеристика
- •2.6.2. Диаграммы последовательностей.
- •2.6.3. Кооперативные диаграммы.
- •2.6.4. Рекомендации по использованию диаграмм взаимодействия.
- •2.7. Диаграммы деятельностей.
- •2.7.1. Простые диаграммы деятельностей
- •2.7.2. Диаграммы деятельностей для вариантов использования
- •2.7.3. «Плавательные дорожки»
- •2.7.5. Применение диаграмм деятельностей
- •2.5. Диаграммы пакетов
2.6.1. Общая характеристика
Взаимодействие – это поведение, выражающееся в обмене сообщениями между объектами, в результате чего достигается определенная цель. Чаще всего сообщение сводится к вызову операции или посылке сигнала, но оно может также создавать и уничтожать другие объекты.
Для моделирования динамических аспектов системы используют диаграммы взаимодействия. Диаграммы взаимодействия – это модели, которые описывают поведение взаимодействующих групп объектов.
Обычно диаграмма взаимодействия (ДВ) охватывает поведение только одного варианта использования. На ДВ отображается ряд объектов и те сообщения, которыми они обмениваются между собой в рамках данного ВИ.
Существует 2 вида ДВ: 1 – диаграммы последовательностей;
2 – кооперативные диаграммы.
2.6.2. Диаграммы последовательностей.
Диаграммы последовательностей акцентируют внимание на временной упорядоченности сообщений. На диаграмме последовательностей объект изображается в виде прямоугольника на вершине пунктирной вертикальной линии. Она называется линией жизни объекта. Линия жизни описывает существование объекта в определенный промежуток времени, возможно, включая моменты создания и уничтожения объекта. Объекты на диаграмме располагаются по горизонтали, слева располагается объект, инициирующий взаимодействие. Сообщения, посылаемые объектами друг другу, размещаются по вертикали, сверху вниз, в порядке их появления.
Пример диаграммы последовательностей приведен на рисунке 2.11.
Эта диаграмма изображает следующий ВИ:
1. объект Окно Ввода Заказа посылает объекту Заказ сообщение «приготовиться»;
2. объект Заказ посылает данное сообщение каждой Строке Заказа в данном Заказе;
3. каждая Строка Заказа проверяет состояние определенного Запаса Товара. Если проверка удовлетворяется (true), то Строка Заказа удаляет соответствующее количество товара из Запаса. В противном случае количество Запаса снижается до уровня Повторного Заказа и Запас запрашивает новую поставку товара.
Каждое сообщение представляется в виде стрелки между линиями жизни двух объектов.
Рисунок 2.11. Диаграмма последовательностей.
Сообщения появляются в том порядке, как они показаны (сверху вниз). Каждое сообщение имеет имя, можно добавить также аргументы и некоторую управляющую информацию. На диаграмме показано самоделегирование – это сообщение, которое объект посылает самому себе. В качестве управляющей информации может быть:
условие, показывающее, в каком случае посылается сообщение (например, нужен Повторный Заказ ()= true);
маркер итерации, показывающий, что сообщение посылается много раз для множества объектов (например, * приготовиться).
На одной диаграмме последовательностей можно показать только один поток управления (хотя с помощью нотации UML для итераций и ветвлений можно проиллюстрировать простые вариации). Поэтому, как правило, создают несколько диаграмм взаимодействий, одни из которых считаются основными, а другие описывают альтернативные пути и исключительные условия. Такой набор диаграмм последовательностей можно организовать в пакет, дав каждой диаграмме подходящее имя, отличающее ее от остальных.