Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 1646 Лабораторна робота №6 на тему Діаграма кооперації (Collaboration Diagram)

Лабораторна робота №6 на тему Діаграма кооперації (Collaboration Diagram)

« Назад

Лабораторна робота №6

Діаграма кооперації (Collaboration Diagram) 

Мета роботи: для заданої предметної області побудувати діаграму кооперації.

 

Теоретичні відомості

Як наголошувалося у попередній лабораторній роботі, особливості взаємодії елементів модельованої системи можуть бути подані на діаграмах послідовності і кооперації. Якщо перша служить для візуалізації тимчасових аспектів взаємодії, то діаграма кооперації призначена для специфікації структурних аспектів взаємодії. Головна особливість діаграми кооперації полягає в можливості графічно зобразити не тільки послідовність взаємодії, але і всі структурні відношення між об'єктами, що беруть участь в цій взаємодії.

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

На відміну від діаграми послідовності, на діаграмі кооперації зображуються тільки відношення між об'єктами, що відіграють певні ролі у взаємодії. З іншого боку, на цій діаграмі не вказується час у вигляді окремого виміру. Тому послідовність взаємодій і паралельних потоків може бути визначена за допомогою порядкових номерів. Отже, якщ-о необхідно явно специфікувати взаємозв'язки між об'єктами в реальному часі, краще це робити на діаграмі послідовності.

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

Отже, за допомогою діаграми кооперації можна описати повний контекст взаємодій як своєрідний часовий "зріз" сукупності об'єктів, що взаємодіють між собою для виконання певного завдання або бізнес-мети програмної системи.

1. Кооперація

Поняття кооперації (collaboration) є одним із фундаментальних понять у мові UML. Воно слугує для позначення множини об'єктів, що взаємодіють з певною метою, в загальному контексті модельованої системи. Мета самої кооперації полягає в тому, щоб специфікувати особливості реалізації окремих найбільшзначущих операцій в системі. Кооперація визначає структуру поведінки системи в термінах взаємодії учасників цієї кооперації.

Кооперація може бути подана на двох рівнях:

  • на рівні специфікації – вказує ролі класифікаторів і ролі асоціацій в цій взаємодії;

  • на рівні прикладів – вказує екземпляри і зв'язки, створюючи окремі ролі в кооперації.

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

Діаграма кооперації рівня прикладів подається сукупністю об'єктів (екземпляри класів) і зв'язків (екземпляри асоціацій). При цьому зв'язки доповнюються стрілками повідомлень. На цьому рівні вказуються тільки релевантні об'єкти, тобто такі, що мають безпосереднє відношення до реалізації операції або класифікатора.

2. Об'єкти на діаграмі кооперації

Для графічного зображення об'єктів використовується такий самий символ прямокутника, як і для класів.

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

Мультиоб'єкт (multiobject) - це ціла множина об'єктів на одному з кінців асоціації. На діаграмі кооперації Мультиоб'єкт використовується для того, щоб показати операції і сиґнали, які адресовані всій множині об'єктів, а не тільки одному. Мультиоб'єкт зображається двома прямокутниками, один з яких виступає із-за верхньої правої вершини іншого (рис. 6.1, а). При цьому стрілка повідомлення відноситься до всієї множини об'єктів, які позначають такий мультиоб'єкт. На діаграмі кооперації може бути явно вказане відношення композиції між мультиоб'єктом і окремим об'єктом з його множини (рис. 6.1, б). 

Рис. 6.1. Графічне зображення мультиоб'єктів на діаграмі кооперації.

У контексті мови UML всі об'єкти діляться на дві категорії: пасивні і активні. Пасивний об'єкт оперує тільки даними і не може ініціювати діяльність із керування іншими об'єктами. Проте пасивні об'єкти можуть посилати сиґнали у процесі виконання запитів, які вони отримують.

Активний об'єкт (active object) має свою власну „нитку” (thread) керування і може ініціювати діяльність із керування іншими об'єктами. При цьому під „ниткою” розуміється деякий полегшений потік керування, який може виконуватися паралельно з іншими обчислювальними „нитками” або „нитками” керування в межах одного обчислювального процесу або процесу керування.

Активні об'єкти на канонічних діаграмах позначаються прямокутником з ширшими межами (рис. 6.2). Іноді може бути явно вказане ключове слово (позначене значення) {active}, щоб виділити активний об'єкт на діаграмі. Кожний активний об'єкт може ініціювати єдину „нитку” або процес керування і зображати початкову точку потоку керування. У наведеному фраґменті діаграми кооперації активний об'єкт "а: Абонент, який викликає" є ініціатором процесу встановлення з'єднання для обміну інформацією з іншим абонентом (на діаграмі не показаний). 

Рис. 6.2. Графічне зображення активного об'єкту (зліва) на діаграмі кооперації.

Складений об'єкт (composite object) або об'єкт-контейнер призначений для подання об'єкту, що має власну структуру і внутрішні потоки (нитки) керування.

На діаграмах кооперації такий складений об'єкт зображається як звичайний об'єкт, що складається із двох секцій: верхньої і нижньої. У верхній секції записується ім'я складеного об'єкту, а в нижній – його складові частини замість списку його атрибутів (рис. 6.3). При цьому допускається мати як частини інші складені об'єкти. 

Рис. 6.3. Графічне зображення складеного об'єкту на діаграмі кооперації.

3. Стереотипи зв’язків

Зв'язок (link) є екземпляром або прикладом довільної асоціації. Зв'язок як елемент мови UML може мати місце між двома і більше об'єктами. Бінарний зв'язок на діаграмі кооперації зображається відрізком прямої лінії, що з’єднує два прямокутники об'єктів.

Зв'язок може мати деякі стереотипи, які записуються поряд з одним з його кінців і вказують на особливість реалізації цього зв'язку. У мові UML з цією метою можуть використовуватися такі стереотипи:

  • "association" – асоціація (передбачається за замовчуванням, тому цей стереотип можна не вказувати);

  • "parameter" – параметр методу; відповідний об'єкт може бути тільки параметром деякого методу;

  • "local" – локальна змінна методу; її область видимості обмежена тільки сусіднім об'єктом;

  • "global" – глобальна змінна; її область видимості розповсюджується на всю діаграму кооперації;

  • "self" – рефлексивний зв'язок об'єкту із самим собою, який допускає передавання об'єктом повідомлення самому собі; на діаграмі кооперації зв'язок рефлексії зображається петлею у верхній частині прямокутника об'єкту.

4. Повідомлення

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

На діаграмах кооперації може використовуватися один із чотирьох типів стрілок для позначення повідомлень (рис. 6.4). 

Рис. 6.4. Графічне зображення різних типів повідомлень на діаграмі кооперації.

  • Суцільна лінія з трикутною стрілкою (рис. 6.4, а) позначає викликання процедури або іншого вкладеного потоку керування. Може бути також використана спільно з паралельно активними об'єктами, коли один з них передає сиґнал і чекає, поки не закінчиться деяка вкладена послідовність дій. Зазвичай всі такі повідомлення є синхронними, тобто ініціюються після закінчення деякої діяльності або при виконанні деякої умови.

  • Суцільна лінія з V-подібною стрілкою (рис. 6.4, б) позначає простий потік керування. Кожна така стрілка зображає один етап в послідовності потоку керування. Зазвичай всі такі повідомлення є асинхронними.

  • Суцільна лінія з напівстрілкою (рис. 6.4, в) використовується для позначення асинхронного потоку керування. Відповідні повідомлення формуються в довільні, заздалегідь не відомі моменти часу, як правило, активними об'єктами. Зазвичай повідомлення цього типу є початковими у послідовності потоку керування і найчастіше ініціюються акторами.

  • Пунктирна лінія з V-подібною стрілкою (рис. 6.4, г) позначає повернення процедури з виклику. Стрілки цього типу часто відсутні на діаграмах кооперації, оскільки неявно передбачається їх існування після закінчення процесу активізації деякої діяльності.

 

Хід роботи

  1. Ознайомитися з теоретичними відомостями.

  2. Побудувати відповідну діаграму за допомогою UML згідно до своєї предметної області (варіанти предметних областей наведені у додатку).

  3. Оформити звіт за результатами лабораторної роботи.

Зміст звіту

  1. Мета роботи

  2. Короткі теоретичні відомості.

  3. Хід роботи.

  4. Висновки.

 Література

  1. Кальянов  Г.Н. Case -  технологии.  Консалтинг  при  автоматизации бизнес-процессов. - 15.е изд. М.: Горячая линия – Телеком, 2002. - 320 с.

  2. Кирстен В. Объектно-ориентированная разработка приложений в среде постреляционной СКБД CACHE / Кирстен В., Ирингер М., Шульте П  - СП-б: АОЗТ “СП. АРМ”,  2000.

  3. Пасічник В.В. Організація баз даних та знань / В.В.Пасічник, В.А.Резніченко. – Київ: BHV „ПИТЕР”, 2006. – 460с.

  4. Крэг Ларман Применение UML 2.0 и шаблонов проектирования = Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development. — 3-е изд. — М.: «Вильямс», 2006. — 736 с. — ISBN 0-13-148906-2

  5. Джозеф Шмуллер Освой самостоятельно UML 2 за 24 часа. Практическое руководство = Sams Teach Yourself UML in 24 Hours, Complete Starter Kit. — М.: «Вильямс», 2005. — 416 с. — ISBN 0-672-32640-X

  6. Грейди Буч. Язык UML. Руководство пользователя = The Unified Modeling Language user guide / Грейди Буч, Джеймс Рамбо, Айвар Джекобсон. — 2. — М., СПб.: «ДМК Пресс», «Питер», 2004. — 432 с. — ISBN 5-94074-260-2

  7. Буч Г. UML. Классика CS. 2-е изд. / Буч Г., Якобсон А., Рамбо Дж. / Пер. с англ.; Под общей редакцией проф. С. Орлова — СПб.: Питер, 2006. — 736 с.

  8. Нікольський Ю.В. Дискретна математика / Ю.В.Нікольський, В.В.Пасічник, Ю.М.Щербина – Львів: Магнолія Плюс, 2007. – 608 с.

  9. Шаховська Н.Б. Сховища даних / Шаховська Н.Б., Пасічник В.В. – Львів: «Магнолія-2006», 2008. – 485 с.

З повагою ІЦ "KURSOVIKS"!