Лекция № 9. Виды диаграмм 1. Диаграммы взаимодействия 2. Другие виды диаграмм Вопрос №1 Диаграммы взаимодействия (interaction diagrams) являются моделями, описывающими поведение взаимодействующих групп объектов. Диаграмма взаимодействия охватывает поведение объектов в рамках только одного варианта использования. На такой диаграмме отображаются ряд объектов и те сообщения, которыми они обмениваются между собой. Вопрос №1 Существуют два вида диаграмм взаимодействия: диаграммы последовательности (sequence diagrams) и кооперативные диаграммы (collaboration diagrams). Вопрос №1 На диаграмме последовательности объект изображается в виде прямоугольника на вершине пунктирной вертикальной линии. Эта вертикальная линия называется линией жизни (lifeline) объекта. Она представляет собой фрагмент жизненного цикла объекта в процессе взаимодействия. Каждое сообщение представляется в виде стрелки между линиями жизни двух объектов. Вопрос №1 Сообщения появляются в том порядке, как они показаны на странице — сверху вниз. Каждое сообщение помечается, как минимум, именем сообщения; при желании можно добавить также аргументы и некоторую управляющую информацию и, кроме того, можно показать самоделегирование. Вопрос №1 Самоделегирование (self-delegation) - сообщение, которое объект посылает самому себе, при этом стрелка сообщения указывает на ту же самую линию жизни. Вопрос №1 Вопрос №1 Виды управляющей информации: 1. Условие, показывающее, когда посылается сообщение. Сообщение посылается только при выполнении данного условия. 2. Маркер итерации, показывающий, что сообщение посылается много раз для множества объектовадресатов. Вопрос №1 Диаграмма может содержать возврат, означающий не новое сообщение, а возврат из сообщения. На диаграмме возврат отличается от обычных сообщений тем, что его стрелка не сплошная, а имеет вид пары линий. Вопрос №1 Диаграммы последовательности можно также использовать для представления параллельных процессов. Вопрос №1 Другие элементы диаграммы последовательности: 1. Активизации, появляющиеся явно в том случае, когда метод становится активным либо во время его выполнения, либо при ожидании результата выполнения какой-либо процедуры. 2. Половинные стрелки обозначают асинхронные сообщения. Асинхронное сообщение не блокирует работу вызывающего объекта. 3. Удаление объекта показано с помощью большого знака "X". Вопрос №1 На кооперативной диаграмме экземпляры объектов показаны в виде пиктограмм. Как и на диаграмме последовательности, здесь стрелки обозначают сообщения, обмен которыми осуществляется в рамках данного варианта использования. Их временная последовательность, однако, указывается путем нумерации сообщений. Вопрос №1 Вопрос №1 Нумерация сообщений делает восприятие их последовательности более трудным, чем в случае расположения линий на странице сверху вниз. С другой стороны, такое пространственное расположение позволяет более легко отразить некоторые другие моменты, например можно показать взаимосвязь объектов, перекрывающиеся компоненты или другую информацию. Вопрос №1 В диаграмме последовательности делается акцент именно на последовательность сообщений: легче наблюдать порядок, в котором происходят различные события. На кооперативной диаграмме можно использовать пространственное расположение объектов для того, чтобы показать их статическое взаимодействие. Вопрос №2 Диаграммы состояний определяют все возможные состояния, в которых может находиться конкретный объект, а также процесс смены Состояний объекта в результате наступления некоторых событий. С состоянием можно связывать следующие данные: • деятельность, • входное действие, • выходное действие и • событие. Вопрос №2 Вопрос №2 Деятельность (activity) - это поведение, реализуемое объектом, пока он находится в данном состоянии. Деятельность - это прерываемое поведение. Оно может выполняться до своего завершения, пока объект находится в данном состоянии, или может быть прервано переходом объекта в другое состояние. Вопрос №2 Деятельность изображают внутри самого состояния; ее обозначению должно предшествовать слово do (делать) и двоеточие. Вопрос №2 Входное действие (entry action) - это поведение, которое выполняется, когда объект переходит в данное состояние. Входное действие также показывают внутри состояния, его обозначению предшествуют слово entry (вход) и двоеточие. Вопрос №2 Выходное действие (exit action) подобно входному. Однако оно осуществляется как составная часть процесса выхода из данного состояния. Выходное действие изображают внутри состояния, его описанию предшествуют слово exit (выход) и двоеточие. Вопрос №2 Переходом (transition) называется перемещение объекта из одного состояния в другое. На диаграмме все переходы изображают в виде стрелки, начинающейся на первоначальном состоянии и заканчивающейся последующим. Переходы могут быть рефлексивными. Объект может перейти в то же состояние, в котором он в настоящий момент находится. Рефлексивные переходы изображают в виде стрелки, начинающейся и завершающейся на одном и том же состоянии. Вопрос №2 Событие (event) - это то, что вызывает переход из одного состояния в другое. Ограждающие условия (guard conditions) определяют, когда переход может или не может осуществиться. Ограждающие условия изображают на диаграмме вдоль линии перехода после имени события, заключая их в квадратные скобки. Ограждающие условия задавать необязательно. Вопрос №2 Диаграммы деятельностей особенно полезны в описании поведения, включающего большое количество параллельных процессов. Самым большим достоинством диаграмм деятельностей является поддержка параллелизма. Вопрос №2 Диаграммы компонентов показывают, как выглядит модель на физическом уровне. На них изображены компоненты программного обеспечения и связи между ними. При этом на такой диаграмме выделяют два типа компонентов: исполняемые компоненты и библиотеки кода. Вопрос №2 Диаграмма размещения отражает физические взаимосвязи между программными и аппаратными компонентами системы. Она показывает размещение объектов и компонентов в распределенной системе.