Лабораторна робота №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 з цією метою можуть використовуватися такі стереотипи:
4. ПовідомленняПовідомлення на діаграмі кооперації специфікує комунікацію між двома об'єктами, один з яких передає іншому деяку інформацію. При цьому перший об'єкт чекає, що після отримання повідомлення іншим об'єктом відбувається виконання деякої дії. На діаграмах кооперації може використовуватися один із чотирьох типів стрілок для позначення повідомлень (рис. 6.4). Рис. 6.4. Графічне зображення різних типів повідомлень на діаграмі кооперації.
Хід роботи
Зміст звіту
Література
З повагою ІЦ "KURSOVIKS"! |