2. В даному модулі:
Діаграма послідовності (sequence diagram)
Діаграма кооперації (collaboration diagram)
Andrey Gladky
KspDevelop@gmail.com 2
3. sequence diagram
На дiаграмах послiдовностей буде показано обмiн
повiдомленнями (тобто виклик методiв) мiж декiлькома
об’єктами у окремiй обмеженiй часом ситуацiї. Об’єкти є
екземплярами класiв. Основний наголос на дiаграмах
послiдовностей робиться на порядок i моментах часу, у
якi повiдомлення надсилаються об’єктам.
На дiаграмах послiдовностей об’єкти буде показано
вертикальними штриховими лiнiями з назвою об’єкта над
ними. Вiсь часу також має вертикальний напрямок, її
спрямовано вниз, повiдомлення, якi надсилаються вiд
одного об’єкта до iншого, буде позначено стрiлками з
назвами операцiї i параметрiв.
Andrey Gladky
KspDevelop@gmail.com 3
5. sequence diagram
Повiдомлення можуть бути або синхронними, звичайного
типу повiдомленнями, за виклику яких керування
передається викликаному об’єкту до завершення
виконання методу, або асинхронними, за виклику яких
керування передається назад напряму об’єкту, який
здiйснював виклик.
За використання синхронного повiдомлення збоку вiд
викликаного об’єкта буде показано вертикальний блок,
який показуватиме перебiг виконання програми.
Andrey Gladky
KspDevelop@gmail.com 5
6. Collaboration diagram
Кооперація (collaboration) - специфікація безлічі об'єктів
окремих класів, спільно взаємодіють з метою реалізації
окремих варіантів використання в загальному контексті
модельованої системи.
На діаграмі кооперації розміщуються об'єкти, що
представляють собою екземпляри класів, зв'язки між ними, які
в свою чергу є екземплярами асоціацій та повідомлення.
Зв'язки доповнюються стрілками повідомлень, при цьому
показуються тільки ті об'єкти, які беруть участь у реалізації
модельованої кооперації. Далі, як і на діаграмі класів,
показуються структурні відносини між об'єктами у вигляді
різних з'єднувальних ліній.
Зв'язки можуть доповнюватися іменами ролей, які грають
об'єкти в даному взаємозв'язку.
Andrey Gladky
KspDevelop@gmail.com 6
8. Collaboration diagram
Об'єкт (object) - сутність з добре визначеними кордонами і
індивідуальністю, яка інкапсулює стан і поведінку.
На діаграмах кооперації можуть зустрітися наступні варіанти
можливих записів повного імені об'єкта:
о: C - об'єкт із власним ім'ям о, екземпляр класу С.
: C - анонімний об'єкт, екземпляр класу С.
о: (або просто о) - об'єкт сирота з власним ім'ям о.
о / R: C - об'єкт із власним ім'ям о, екземпляр класу С, який грає
роль R.
/ R: C - анонімний об'єкт, екземпляр класу С, який грає роль R.
о / R - об'єкт сирота з власним ім'ям о, який грає роль R.
/ R - анонімний об'єкт і одночасно об'єкт сирота, який грає роль
R.
Andrey Gladky
KspDevelop@gmail.com 8
10. Collaboration diagram
Активний об'єкт (active object) має власний процес управління і
може ініціювати діяльність з управління іншими об'єктами.
Активний об'єкт на діаграмі кооперації позначається
прямокутником з потовщеними межами. Кожен активний об'єкт
є власником певного процесу управління.
Andrey Gladky
KspDevelop@gmail.com 10
11. Collaboration diagram
Мультиоб'ект (multiobject) являє собою безліч анонімних
об'єктів, які можуть бути утворені на основі одного класу.
На діаграмі кооперації мультіоб'ект використовується для того,
щоб показати операції і сигнали, які адресовані всій множині
анонімних об'єктів. Мультіоб'ект зображується двома
прямокутниками, один з яких виступає через верхній правій
вершини іншого.
Andrey Gladky
KspDevelop@gmail.com 11
12. Collaboration diagram
Складений об'єкт (composite object) або об'єкт-композит
призначений для подання об'єкта, що має власну структуру і
внутрішні потоки (нитки) управління.
Складений об'єкт є екземпляром класу-композиту, який
пов'язаний ставленням композиції зі своїми частинами.
Аналогічні відносини пов'язують між собою і відповідні
об'єкти.
На діаграмах кооперації такий складений об'єкт зображується
як звичайний об'єкт, що складається з двох секцій: верхньої та
нижньої. У верхній секції записується ім'я складеного об'єкта, а
в нижній - його об'єкти-частини замість списку атрибутів. При
цьому допускається мати в якості частин інші складені об'єкти.
Andrey Gladky
KspDevelop@gmail.com 12
14. Collaboration diagram
Зв'язок (link) – будь яке семантичне відношення між деякою
сукупністю об'єктів.
Зв'язок як елемент мови UML є екземпляром або прикладом
довільної асоціації і може мати місце між двома і більше
об'єктами. Бінарний зв'язок на діаграмі кооперації
зображується відрізком суцільної лінії, що з'єднує два
прямокутника об'єктів. На кінцях цієї лінії додатково можуть
бути явно вказані імена ролей відповідної асоціації.
Зв'язки не мають власних імен, оскільки ідентичні як
екземпляри деякої асоціації. Іншими словами, всі зв'язки на
діаграмі кооперації можуть бути тільки анонімними і при
необхідності записуються без двокрапки перед ім'ям асоціації.
Andrey Gladky
KspDevelop@gmail.com 14
16. Collaboration diagram
Повідомлення (message) - специфікація передачі інформації від
одного елемента моделі до іншого з очікуванням виконання
певних дій з боку приймаючого елемента.
Суцільна лінія з трикутною стрілкою позначає виклик
процедури (операції) або передачу потоку управління.
Повідомлення цього типу можуть бути використані паралельно
активними об'єктами, коли один з них передає повідомлення
цього типу і очікує, поки не закінчиться деяка послідовність
дій, виконувана другим об'єктом. Зазвичай всі такі
повідомлення синхронні, тобто ініціюються по завершенні
діяльності або при виконанні певної умови.
Суцільна лінія з V-подібною стрілкою позначає асинхронне
повідомлення у простому потоці управління. У цьому випадку
клієнт передає асинхронне повідомлення і продовжує
виконувати свою діяльність, не чекаючи відповіді від сервера.
Andrey Gladky
KspDevelop@gmail.com 16
17. Collaboration diagram
Пунктирна лінія з V-подібною стрілкою позначає повернення з
виклику процедури. Стрілки цього типу часто відсутні на
діаграмах кооперації, оскільки неявно передбачається їх
існування після закінчення процесу виконання операції або
діяльності.
Кожне повідомлення може бути позначено рядком тексту, яка
має наступний формат:
Andrey Gladky
KspDevelop@gmail.com 17
<Попередні повідомлення> <Вираз послідовності> <значення
що повертається: = ім'я повідомлення> <(Список аргументів)>
18. Collaboration diagram
В UML визначені наступні стереотипи повідомлень:
<<Call>> (викликати) - повідомлення, що вимагає виклику
операції або процедури об'єкта-одержувача. Якщо
повідомлення з цим стереотипом рефлексивне, то воно ініціює
локальний виклик операції у пославшего це повідомлення
об'єкта.
<<Return>> (повернути) - повідомлення, яке повертає значення
виконаної операції або процедури викликав її об'єкту. Значення
результату може ініціювати розгалуження потоку управління.
<<Create>> (створити) - повідомлення, що вимагає створення
іншого об'єкта для виконання певних дій. Створений об'єкт
може стати активним (йому передається потік управління), а
може залишития пасивним.
Andrey Gladky
KspDevelop@gmail.com 18
19. Collaboration diagram
В UML визначені наступні стереотипи повідомлень:
<<Destroy>> (знищити) - повідомлення з явним вимогою
знищити відповідний об'єкт. Надсилається в тому випадку, коли
необхідно припинити небажані дії з боку існуючого в системі
об'єкта, або коли об'єкт більше не потрібен і повинен звільнити
задіяні ним системні ресурси.
<<Send>> (надіслати) - позначає посилку іншому об'єкту
сигналу, який асинхронно ініціюється одним об'єктом і
приймається (перехоплюється) іншим. Відмінність сигналу від
повідомлення полягає в тому, що сигнал повинен бути явно
описаний в тому класі, об'єкт якого ініціює його передачу.
Andrey Gladky
KspDevelop@gmail.com 19