- •Методичні вказівки
- •Частина 1
- •1 Лабораторна робота №1
- •2 Лабораторна робота № 2
- •2.1 Мета роботи....................................................................46
- •3 Лабораторна робота № 3
- •3.1 Мета роботи....................................................................66
- •1.2 Основні теоретичні відомості
- •1.2.1 Призначення діаграми класів
- •1.2.2 Концепція об’єкту та класу
- •1 Лабораторна робота № 1 Діаграми класів
- •1.1 Мета роботи
- •1.2.2.2 Класи
- •1.2.2.2.3 Атрибути класу
- •1.2.2.2.4 Операції класу
- •1.2.3 Концепція зв’язку та асоціації
- •1.2.3.1 Зв’язки та асоціації
- •1.2.3.2 Види асоціацій
- •1.2.3.3 Кратність
- •1.2.3.4 Ім’я полюсів асоціації
- •1.2.3.5 Упорядкування
- •1.2.3.6 Мультимножини та послідовності
- •1.2.3.7 Кваліфіковані асоціації
- •1.2.4 Створення діаграми класів
- •1.2.4.1 Строка інструментів
- •Interface (інтерфейс)
- •1.2.4.2 Контекстне меню класу
- •1.2.4.3 Специфікації класу
- •1.2.5 Приклад виконання
- •1.3 Завдання на лабораторну роботу
- •1.5 Приклади індивідуальних завдань
- •1.6 Контрольні запитання
- •Лабораторна робота № 2 Діаграми послідовностей
- •2.1 Мета роботи
- •2.2 Основні теоретичні відомості
- •2.2.1 Призначення діаграми послідовностей
- •2.2.2.1 Лінія життя об’єкта
- •2.2.2.2 Налаштування часу життя об’єкту
- •2.2.3 Фокус керування
- •2.2.4 Створення повідомлень
- •2.2.4.1 Властивості повідомлень
- •2.2.5 Створення діаграми послідовностей
- •2.2.5.1 Строка інструментів
- •2.2.6 Приклад виконання
- •2.3 Завдання на лабораторну роботу
- •2.5 Контрольні запитання
- •3 Лабораторна робота № 3 Діаграми кооперації
- •Мета роботи
- •Основні теоретичні відомості
- •3.2.1 Призначення діаграми кооперації
- •3.2.2.1 Мультиоб’єкт
- •3.2.2.2 Активні та пасивні об’єкти
- •3.2.2.3 Контекстне меню об’єкту
- •3.2.2.4 Налаштування області видимості об’єктів
- •3.2.3 Зв’язки
- •3.2.3.1 Стереотипи зв’язків
- •3.2.4 Повідомлення
- •3.2.5 Створення діаграми кооперації
- •3.2.5.1 Строка інструментів
- •3.2.6 Приклад виконання
- •3.3 Завдання на лабораторну роботу
- •3.5 Контрольні запитання
- •Рекомендована література
1.2.3.3 Кратність
Кратність (multiplicity) - це кількість примірників одного класу, які можуть бути пов'язані з одним примірником іншого класу через одну асоціацію. Кратність обмежує кількість пов'язаних між собою об'єктів. У літературі найчастіше розглядаються два значення кратності: «1» і «багато», але в загальному випадку кратність може бути потенційно нескінченною підмножиною невід'ємних цілих чисел. На діаграмах UML кратність вказується явно біля кінця лінії, якою позначається асоціація. Значення кратності вказується у вигляді діапазону, наприклад «1» (рівно один), «1 ..*» (один і більше) або «3 .. 5» (від трьох до п'яти включно). Спеціальний символ «*» позначає слово «багато» (many) - нуль і більше. На рис. 1.2.18 наведено приклад, коли один примірник класу Class1 може бути пов'язаний з одним або більше примірниками класу Class2.
Рисунок 1.2.18 – Приклад використання кратності примірників різних класів
1.2.3.4 Ім’я полюсів асоціації
Кратність неявно має на увазі наявність полюсів асоціації (association end). Наприклад, асоціація один-до-багатьох має два полюси, в одного з яких зазначена кратність «один», а у іншого - «багато». Концепція полюса асоціації - одна з найважливіших в UML. Полюс асоціації може мати не тільки кратність, але й своє власне ім'я. Імена полюсів асоціацій часто присутні в описах завдань у вигляді іменників. Ім'я полюса вказується близько до кінця асоціації. Використання імен полюсів асоціацій не є обов'язковим, але найчастіше виявляється простіше вказувати імена полюсів замість імен асоціацій або, принаймні, разом з ними (рис. 1.2.19).
Рисунок 1.2.19 – Приклад використання полюсів асоціації
Імена полюсів асоціацій особливо зручні для простежування асоціацій, тому що кожен з них може розглядатися як псевдоатрибут. Кожен полюс бінарної асоціації посилається на об'єкт або множину об'єктів, пов'язаних з вихідним об'єктом. З точки зору вихідного об'єкта, простежування асоціації - це операція, яка повертає пов'язані з ним об'єкти. Ім'я полюса асоціації - це засіб для простежування асоціації без явної її вказівки.
Імена полюсів асоціацій обов'язкові для встановлення асоціацій між двома об'єктами одного і того ж класу. Імена полюсів асоціацій дозволяють розрізняти між собою різні асоціації між одними і тими ж класами. Якщо між парою класів існує тільки одна асоціація, імені класів може бути цілком достатньо, тому імена полюсів можна не вказувати.
Імена полюсів дозволяють уніфікувати кілька посилань на один і той же клас. При побудові діаграм класів слід коректно використовувати імена полюсів асоціацій і не вводити окремий клас для кожного посилання.
Оскільки імена полюсів асоціації дозволяють відрізняти об'єкти один від одного, всі імена на дальньому полюсі асоціації, прикріпленої до певного класу, повинні бути унікальними. Хоча ім'я ставиться близько цільового об'єкта асоціації, фактично воно є псевдоатрибутом вихідного класу, а тому повинно бути унікальним всередині нього. З тієї ж причини ім'я полюса асоціації не має збігатися з ім'ям будь-якого атрибуту вихідного класу.
