- •Методичні вказівки
- •Частина 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.2.2 Класи
Клас (class) описує групу об'єктів з однаковими властивостями (атрибутами), однаковою поведінкою (операціями), типами відносин і семантикою. Як приклади класів можна навести такі: людина, компанія, процес і вікно. Кожна людина має ім'я і дату народження, а також може де-небудь працювати. Кожен процес має власника, пріоритет і список необхідних ресурсів. Класи часто бувають іменами загальними і іменними групами, які використовуються в описі завдань або при спілкуванні з користувачами.
Об'єкти одного класу мають однакові атрибути і форми поведінки. Більшість об'єктів відрізняються один від одного значеннями своїх атрибутів і відносинами з іншими об'єктами. Однак можливе існування різних об'єктів з однаковими значеннями атрибутів, що знаходяться в однакових відносинах з іншими об'єктами. Вибір класів залежить від природи і області застосування програми і часто є суб'єктивним.
Операції можуть бути написані один раз для цілого класу, завдяки чому всі об'єкти класу отримують можливість повторно використовувати написаний код. Наприклад, всі еліпси мають спільні процедури промальовування, обчислення площі та перевірки на наявність перетину з деякою прямою.
Графічне зображення. Клас графічно зображуєтся у вигляді прямокутника, який може бути розділений горизонтальними лініями на розділи або секції (рис. 1.2.1), в яких можуть вказуватися ім’я класу (рис. 1.2.1, а), атрибути (змінні) (рис. 1.2.1, б) і операції (методи) (рис. 1.2.1, в).
Ім’я класу. Ім’я класу є обов’язковим елементом позначення класа і повинно бути унікальним в рамках пакету. У кожного класу має бути ім'я (текстовий рядок), який унікально відрізняє його від усіх інших класів. При формуванні імен класів в UML допускається використання довільної комбінації букв, цифр і навіть розділових знаків. Однак на практиці рекомендується використовувати як імена класів короткі і осмислені прикметники та іменники, кожен з яких починається з великої літери.
Рисунок 1.2.1 – Графічне зображення класу на діаграмі класів
1.2.2.2.3 Атрибути класу
Атрибути класу записуються у другій зверху секції прямокутника класу. Обов’язковим елементом синтаксичного значення атрибуту є ім’я атрибуту. Атрибут класу може мати квантор видимості, який визначає можливість доступу до атрибуту та може приймати наступні значення:
Public (відкритий доступ);
Protected (доступ за спадкуванням);
Private (закритий доступ – встановлюється за замовчуванням);
Implementation (доступ за реалізацією).
Атрибут класу може мати кратність атрибуту, яка позначає кількість атрибутів, що входить до складу певного класу. Для позначення кратності часто використовується діапазон з двох додатніх цілих чисел, перше з яких позначає нижню границю кількості атрибутів, а друге – верхню границю кількості атрибутів. Щоб вказати будь-яке додатне ціле число, використовується спеціальний символ «*».
1.2.2.2.4 Операції класу
Операції класу – це певні функціональні можливості, які має кожен екземпляр класу. Операції класу позначаються у третій зверху секції прямокутника класу.
Операція класу може мати квантор видимості (значення аналогічні розглянутим для класів), який визначає можливість доступу до операції. На відміну від класів, для операцій за замовчуванням встановлюється значення Public.
Операція класу може містити рядок-параметр, який виначає паралельність виконання операції та записується у вигляді «{concurrency=значення}», де значення може бути наступним:
Sequential (послідовне виконання – встановлюється за замовчанням) – необхідно, щоб одночасно у системі не виконувалися інші операції поряд з даною, бо це може призвести до помилки, тобто дана операція повинна бути єдиною виконуваною операцією у системі на данний момент;
Guarded (захищене виконання) – необхідно, щоб виклики операції були впорядковані за часом для збереження цілостності об’єктів класу;
Synchronous (синхронізоване виконання) – допускає можливість одночасного виконання даної операції з іншими операціями.
