Диаграммы взаимодействия (диаграммы последовательности, диаграммы кооперации)
Основные вопросы Что такое диаграммы взаимодействия? Виды диаграмм взаимодействия Основные компоненты (для каждого вида диаграмм) Примеры Общее и различное между видами диаграмм взаимодействия
Что такое диаграммы взаимодействия? Диаграмма классов Диаграмма классов представляет собой логическую модель статического представления моделируемой системы Однако элементы системы всегда взаимодействуют между собой В языке UML это взаимодействие элементов рассматривается в информационном аспекте, т.е. объекты обмениваются некоторой информацией. => => Диаграммы взаимодействий являются моделями, описывающими поведение взаимодействующих групп объектов.
Виды диаграмм взаимодействия Существуют 2 вида диаграмм взаимодействий: sequence diagram 1) диаграммы последовательности действий – sequence diagram; collaboration diagram 2) диаграммы кооперации (кооперативные диаграммы) – collaboration diagram
Диаграммы последовательности действий Диаграммы последовательности действий отображают взаимодействие объектов, упорядоченное по времени. Основными компонентами диаграмм последовательности действий являются: - Объекты; - Линия жизни; - Сообщения.
Объекты Объект – экземпляр класса. объектА: КлассВ: КлассС объектD Имя класса Имя объекта Объект-сирота
Графические элементы диаграммы последовательности объектА: КлассВ объектС:КлассD Линия жизни Символ уничтожения объекта Фокус управления Сообщение
Линия жизни и фокус управления объектА: КлассВ объектС :КлассD Объект С инициирует создание анонимного объекта из класса D
Сообщение законченный фрагмент информации Представляет собой законченный фрагмент информации, который отправляется одним объектом другому; Прием сообщения инициирует выполнение определенных действий; 3 разновидности сообщений: а)б)в)
Сообщение Сообщение, отправленное самому себе – рефлексивное (саморегулирование).
Пример диаграммы последовательности b: Абонент уничтожить()повеситьТрубку() а: Абонент с: Телефонный аппарат d: Телефонный аппарат: Коммутатор поднятьТрубку()тонСигнал() *[i:=1..n] наборЦифры(i) наборНомера() [номер полный] вызовАбонента(b) звонок() поднятьТрубку() : Разговор создать() подтвердить() начатьРазговор() закончитьРазговор()
Диаграмма кооперации Поведение системы описывается на уровне отдельных объектов, которые обмениваются между собой сообщениями, чтобы достичь определенной цели или реализовать некоторый вариант использования. Кооперация. (collaboration) - служит для обозначения множества взаимодействующих с определенной целью объектов в общем контексте моделируемой системы.
Основные компоненты Основные компоненты диаграммы кооперации: - объекты; - связи; - сообщения.
Объекты Объект Объект является отдельным экземпляром класса, который создается на этапе реализации модели (выполнения программы) Виды объектов Мультиобъект Составной объект Пассивный объект Активный объект
Мультиобъект Представляет собой множество объектов, которые могут быть образованы на основе класса. : Мультиобъект
Активный объект В контексте языка UML объекты делятся на активные и пассивные. Активный объект имеет свой собственный поток управления и может инициировать деятельность по управлению другими объектами. : ТекстовыйРедактор : Принтер 1: выбратьПринтер() 2: печатать(документ)
Составной объект Предназначен для представления объекта, имеющего сложную структуру и внутренние потоки управления. а: Графическое окно : Строка заголовка : Полоса прокрутки : Рабочая область
Сообщение В общем смысле под сообщением понимается законченный фрагмент информации, посылаемый одним объектом другому. 1)2)3)
Пример диаграммы кооперации с: Телефонный аппарат d: Телефонный аппарат : Коммутатор : Разговор а: Абонент b: Абонент 1: поднятьТрубку() 3 *[i:=1..n]: наборЦифры(i) 10b: начатьРазговор() 10а: начатьРазговор() 7: поднять Трубку() 9:подтвердить() 8: создать() 4: наборНомера() 2: тонСигнал() 6: звонок() 5 [номер полный]: вызовАбонента(b)
Основное отличие между диаграммой последовательности и кооперации диаграмме кооперации На диаграмме кооперации изображаются только такие отношения между объектами, которые играют роль информационных каналов при взаимодействии. диаграмме кооперации На диаграмме кооперации не указывается время в виде дополнительного измерения. Таким образом, в диаграмме последовательности делается акцент на временной аспект, в диаграмме кооперации – на статическое взаимодействие объектов системы.
Изученные вопросы Назначение диаграмм взаимодействия Диаграмма последовательности (компоненты, назначение, пример) Диаграмма кооперации (компоненты, назначение, пример) Общее и различное в диаграммах последовательности и кооперации