клас асоціацій
Клас асоціацій (Асоціативний клас) - приєднується до лінії асоціації пунктирною лінією і розглядається як клас з властивостями асоціацій або як асоціації з властивостями класу.
Класи асоціацій дозволяють визначати для асоціацій атрибути, операції та інші властивості, як це показано на рис.4.12.
Мал. 4.12. клас асоціацій
З даної діаграми видно, що Особистість може працювати тільки в одній Компанії. Для того, щоб зберігати інформацію щодо періоду роботи службовця в Компанії. потрібно доповнити асоціацію атрибутом «інтервалВремені». Властивості класу-асоціації характеризують не один, а пару об'єктів, в даному випадку - пару примірників класів Особистість і Компанія.
На рис. 4.13 показаний інший спосіб представлення даної інформації: перетворення Роботи в звичайний клас (відзначимо при цьому, що множинність також піддається відповідному перетворенню). В даному прикладі кожен з класів в початковій асоціації володів однозначної роллю по відношенню до класу Робота. Після перетворення роль «роботодавець» стає похідною, хоча немає необхідності явно її показувати.
Мал. 4.13. Перетворення асоціативного класу в звичайний клас
Тепер клас асоціацій дає можливість визначити додаткове обмеження, згідно з яким двом беруть участь в асоціації об'єктів може відповідати тільки один екземпляр класу асоціації.
Діаграма на рис. 4.12 не допускає, щоб Особистість могла більше одного разу працювати в одній і тій же компанії. Якщо все ж в цьому є необхідність, то Роботу слід перетворити в звичайний клас, як це зроблено на рис. 4.13 (Особистість може мати більш ніж одну асоціацію Робота з однієї і тієї ж Компанією).
На рис. 4.14 показаний асоціативний клас Оцінка. Об'єкт класу Оцінка зберігає список балів, загальний бал і оцінку, отриману студентом) за пропонованим курсу.
Мал. 4.14. асоціативний клас
Атрибут «спісокбаллов» має параметризрвані тип List (Number), де List визначає впорядкована множина значень - список всіх балів, отриманих студентом за даним курсом. Тобто, якщо студент «Ахметов» проходить курс навчання з дисципліни «Інформатика», згодом заповнюється список (впорядкована множина) балів, отриманих ним в ході навчання за цим курсом. Цей список балів запам'ятовується в об'єкті Оцінка. який представляє собою асоціацію між об'єктами «Ахметов» і «Інформатика».