- •Тема 1.4. (Продовження) Основи об'єктно-орієнтованого проектування мовою uml
- •1. Діаграми послідовності і кооперації.
- •Диаграммы последовательности
- •Диаграммы кооперации
- •Когда следует использовать диаграммы взаимодействия
- •2. Діаграми стану.
- •Диаграммы параллельных состояний
- •Когда использовать диаграммы состояний
- •3. Діаграми діяльності.
- •Декомпозиция деятельности
- •Динамическая параллельность
- •Дорожки
- •Когда использовать диаграммы деятельности
Тема 1.4. (Продовження) Основи об'єктно-орієнтованого проектування мовою uml
1. Діаграми послідовності і кооперації.
Диаграммы взаимодействия (interaction diagrams) представляют собой модели, предназначенные для описания поведения взаимодействующих групп объектов.
Как правило, диаграмма взаимодействия описывает поведение только одного варианта использования. На такой диаграмме отображаются только экземпляры объектов и сообщения, которыми они обмениваются между собой в рамках данного варианта использования.
Существует два вида диаграмм взаимодействия: диаграммы последовательности (sequence diagrams) и диаграммы кооперации (collaboration diagrams).
Диаграммы последовательности
На диаграмме последовательности объекты изображаются прямоугольниками на вершине вертикальной пунктирной линии жизни (lifeline) объекта. Она представляет собой жизненный цикл объекта в процессе взаимодействия.
Каждое сообщение представляется стрелкой между линиями жизни двух объектов.
Порядок следования сообщений устанавливается сверху вниз, то есть так, как они показываются на диаграмме.
Каждое сообщение помечается как минимум именем сообщения; можно также указать аргументы и некоторую управляющую информацию.
На диаграмме последовательности могут присутствовать рекурсивные вызовы - сообщения, которые объекты посылают самим себе. При передаче такого сообщения стрелка указывает на ту же самую линию жизни.
Чтобы показать период времени, в течение которого объект является активным, изображается прямоугольник активности.
Управляющая информация может быть представлена двумя способами.
Во-первых, существует некоторое условие, которое указывает, когда сообщение может быть передано (например, [нуженПовторныйЗаказ]). Сообщение посылается, только если это условие истинно.
Во-вторых, может оказаться полезным маркер итерации, показывающий, что сообщение посылается несколько раз для множества принимающих объектов. Такая итерация указывается в квадратных скобках с предшествующей звездочкой, например *[для всех позиций заказа].
Диаграммы последовательности также имеют большое значение для моделирования параллельных процессов.
Половина стрелки на конце сообщения служит для обозначения асинхронного сообщения. Асинхронное сообщение не блокирует вызывающий объект, то есть последний может продолжать выполнение своего собственного процесса. Асинхронное сообщение может выполнять одно из трех действий:
Создание нового потока, при этом сообщение соединяется с прямоугольником активизации.
Создание нового объекта.
Установление связи с потоком, который уже выполняется.
Удаление объекта изображается большой буквой X. Объекты могут самоуничтожаться либо могут быть уничтожены другим сообщением.
Диаграммы кооперации
Экземпляры объектов изображаются в виде пиктограмм.
Стрелки обозначают сообщения, обмен которыми осуществляется в рамках данного варианта использования. Их временная последовательность указывается посредством нумерации сообщений.
При отсутствии имени объекта необходимо оставить двоеточие, чтобы было понятно, что это имя класса, а не объекта.
CRC-карточки (Класс-Ответственность-Кооперация).
Использование CRC-карточек помогает моделировать взаимодействие между классами, в частности, показать особенности выполнения некоторого сценария. Выяснив для себя детали взаимодействия, можно приступить к его документированию в форме диаграмм взаимодействия.
Использование ответственностей поможет вам сформулировать основные ответственности класса. А они являются полезным средством для приведения в порядок описаний классов.