Повідомлення і їх графічне зображення

Зв’язки на діаграмі кооперацій

Зв'язок(Link) – це будь яке семантичне відношення між деякою сукупністю об’єктів. Зв'язок як елемент UML є екземпляром або прикладом довільної асоціації, і може мати місце між двома або більшою кількістю об’єктів. бінарний зв'язок на діаграмі кооперації зображується відрізком суцільної лінії, який з’єднує 2 прямокутники об’єктів. На кінцях цієї лінії можна явно вказувати імена ролей відповідної асоціації. Всі зв’язки на діаграмі кооперації можуть бути лише анонімними і при необхідності записується без двокрапки перед іменем асоціації.

Повідомлення – специфікація передачі інформації від одного елемента моделі до іншого з очікуванням виконання певних дій з боку елемента отримувача. Інколи відправника повідомлення називають клієнтом, а отримувача – сервер. Повідомлення в UML також специфікують ролі, які відіграють об’єкти «відправник – отримувач». Повідомлення на діаграмі кооперації зображується додатковими стрілками поруч з відповідним зв’язком або роллю асоціації. Напрямок стрілки вказує на отримувача повідомлення, але стрілка може мати теж певний зміст в залежності як її зобразити.

Типи стрілок:

1) (кінець замальований) Позначає виклик процедури(операції) або передачу потока управління. Повідомлення цього типу можуть бути використані паралельно активними об’єктами , коли один із них передає повідомлення цього типу і очікує поки не закінчиться деяка послідовність дій. Що виконується другим об’єктом. Зазвичай всі такі повідомлення синхронні, тобто ініціюються по завершенні діяльності, або при виконанні певних умов.

2) Позначає асинхронне повідомлення в простому потоці управління.

3) - - - - - - - - > означає повернення з виклику процедури. Зазвичай відсутні на діаграмах кооперації. Оскільки неявно передбачається існування після закінчення процесу, виконання операції або діяльності.

Кожне повідомлення може бути відмічене рядком тексту у форматі:

<інтерфейс повідомлення> <вираз послідовності> <значення, яке повертається,:= імя повідомлення > <(список аргументів)>

Попереднє повідомлення – це розділені комою номери повідомлень записані перед похилою рискою. Попередні повідомлення вказуються для того, щоб зазначити, що дане повідомлення не може бути передано доки не будуть передані своїм адресатам всі повідомлення номери яких записані в даному списку.

Вираз послідовності – це розділений крапками список окремих термів послідовності, після якого записується двокрапка. Кожен терм послідовності має такий синтаксис: [ціле число ім’я] [рекурентність]. Ціле число вказує на порядок і номер повідомлення.

Ім’я - у формі букви алфавіту використовується для специфікації паралельних потоків управління. Повідомлення які відрізняються лише іменем є паралельними на даному рівні вкладеності.

Рекурентність – використовується для вказівки ітеративного чи умовного характеру виконання передачі повідомлень. Ітерація являє послідовність повідомлень одного рівня вкладеності. Найчастіше речення ітерація записується на псевдо коді або мові програмування.

Речення умова може бути записані звичайним текстом або псевдокодом.

Ім’я повідомлення - означає ім’я події, яка ініціюється об’єктом отримувача в повідомленнях після його прийому. Список аргументів – розділені комами фактичні параметри операції, виклик якої ініціюється даним повідомленням. В UML передбачені стандарті дії, які виконуються у відповідь на отримання відповідного повідомлення. Можуть бути вказані явно у формі стереотипу перед іменем повідомлення до якого вони відносяться або вище нього.

Види стереотипів:

1) <<call>>(викликати)

2) <<return>>(повернути)

3) <<create>>(створити) – повідомлення яке вимагає створення іншого об’єкта для виконання певних дій. Створений об’єкт може стати активним(потік управління) а може залишатися пасивним.

4) <<destroy>>(знищити)

5) <<send>>(відіслати)

Відмінність сигналу від повідомлення полягає у тому що сигнал повинен бути описаний у тому класі, об’єкт якого сигналізує його передачу.