Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектування інформаційних систем.doc
Скачиваний:
95
Добавлен:
21.09.2019
Размер:
28.77 Mб
Скачать

19.2. Відношення між класами

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

  • Відношення залежності (dependency relationship)

  • Відношення асоціації (association relationship)

  • Відношення узагальнення (generalization relationship)

  • Відношення реалізації (realization relationship)

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

19.2.1. Відношення залежності

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

Відношення залежності графічно зображається пунктирною лінією між відповідними елементами із стрілкою на одному з її кінців ("" або ""). На діаграмі класів таке відношення зв'язує окремі класи між собою, при цьому стрілка направлена від класу-клієнта залежності до незалежного класу або класу-джерела (рис. 14.3). На цьому рисунку зображено два класи: Клас_А і Клас_Б, при цьому Клас_Б є джерелом деякої залежності, а Клас_А – клієнтом цієї залежності.

Рис. 19.3. Графічне зображення відношення залежності на діаграмі класів

Як клас-клієнт і клас-джерело залежності можуть виступати ціла множина елементів моделі. У цьому випадку одна лінія із стрілкою, що виходить від джерела залежності, розщеплюється в деякій крапці на декілька окремих ліній, кожна з яких має окрему стрілку для класу-клієнта. Наприклад, якщо функціонування Класу_С залежить від особливостей реалізації Класу_А і Класу_Б>, то така залежність може бути зображена таким чином як на рис. 19.4.

Рис. 19.4. Графічне представлення залежності між класом-клієнтом (Клас_С) і класами-джерелами (Клас_А і Клас_Б)

Стрілка може позначатися необов'язковим, але стандартним ключовим словом у лапках і необов'язковим індивідуальним іменем. Для відношення залежності визначені ключові слова, які позначають деякі спеціальні види залежностей. Ці ключові слова (стереотипи) записуються в лапках поряд із стрілкою, яка відповідає даній залежності. Приклади стереотипів для відношення залежності представлені нижче:

  • "access" – служить для позначення доступності відкритих атрибутів і операцій класу-джерела для класів-клієнтів;

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

  • "derive" – атрибути класу-клієнта можуть бути обчислені згідно атрибутів класу-джерела;

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

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

Примітка

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