Ідентифікація класів; UML-діаграми ієрархії класів

Розділ: Інженерія систем і програмного забезпечення

📌 Про що ця тема

Тут перевіряють уміння виділити класи предметної області з опису задачі та правильно зобразити їхні звʼязки на UML-діаграмі класів. Ключові поняття: клас, обʼєкт, атрибут, метод, а також відношення між класами (наслідування, асоціація, агрегація, композиція).


📖 Головне

• Клас — це шаблон (опис) обʼєктів із спільними властивостями та поведінкою. Обʼєкт — конкретний екземпляр класу.

• Атрибут — властивість класу (дані), метод — дія (операція), яку обʼєкт уміє виконувати.

• Ідентифікація класів: читаємо опис задачі й шукаємо іменники — це кандидати в класи та атрибути; дієслова — кандидати в методи.

• Не кожен іменник стає класом: прибирають синоніми, надлишкові, надто загальні та ті, що є лише атрибутом (наприклад «колір» — це атрибут, а не клас).

• UML-клас зображають прямокутником із трьох частин: назва, атрибути, методи.

• Видимість членів: + public (доступний усім), – private (лише всередині класу), # protected (клас і нащадки).

• Наслідування (узагальнення) — відношення «є різновидом» (is-a). Стрілка з порожнім трикутником спрямована ВІД нащадка ДО батьківського (базового) класу. Нащадок успадковує атрибути й методи предка.

• Асоціація — проста структурна звʼязь між класами (звичайна лінія), наприклад «Студент навчається у Групі».

• Агрегація — відношення «частина-ціле», де частина існує окремо від цілого (порожній ромб біля цілого). Приклад: Група і Студент.

• Композиція — сильніше «частина-ціле»: частина не існує без цілого (зафарбований ромб). Приклад: Будинок і Кімната.

• Кратність (множинність) біля кінців звʼязку: 1, 0..1, 1..*, * — скільки обʼєктів бере участь.


🔢 Як це працює на прикладі

Опис: «Бібліотека містить книги. Читач бере книгу. У книги є назва й автор».

Крок 1. Іменники → кандидати: Бібліотека, Книга, Читач, Автор, назва.

Крок 2. Відсіюємо: «назва» — це атрибут Книги, не клас. «Автор» можна зробити класом або атрибутом (залежно від задачі).

Крок 3. Дієслова → методи: «бере» → метод узятиКнигу() у Читача.

Крок 4. Звʼязки: Бібліотека ◆— Книга (композиція: книга належить бібліотеці), Читач —— Книга (асоціація з кратністю: один читач бере 0..* книг).

Результат: класи Бібліотека, Книга, Читач; Книга має атрибути назва, автор.


⚠️ Типові помилки

• Плутають напрям стрілки наслідування: трикутник завжди вказує на БАТЬКІВСЬКИЙ клас, а не на нащадка.

• Плутають агрегацію й композицію: ромб біля ЦІЛОГО; порожній — частина живе окремо, зафарбований — ні.

• Роблять класом те, що є атрибутом (вік, колір, назва) — зайві класи.

• Плутають клас і обʼєкт: клас — опис, обʼєкт — конкретний екземпляр.

• Забувають кратність або ставлять її не з того боку звʼязку.


🎯 Що завчити напамʼять

• Трикутник (порожній) = наслідування, вказує на предка.

• Порожній ромб = агрегація, зафарбований ромб = композиція (ромб біля цілого).

• + public, – private, # protected.

• Іменники → класи/атрибути, дієслова → методи.

• Три секції прямокутника: назва / атрибути / методи.


🧠 Перевір себе

1. Куди спрямований трикутник у відношенні наслідування?

2. Чим композиція відрізняється від агрегації?

3. Чому «колір автомобіля» зазвичай не окремий клас?

4. Що означає кратність 1..* на кінці звʼязку?


Відповіді: 1 — до базового (батьківського) класу; 2 — у композиції частина не існує без цілого (зафарбований ромб), в агрегації існує окремо (порожній ромб); 3 — це властивість (атрибут) класу Автомобіль, а не самостійна сутність; 4 — один або більше обʼєктів (мінімум 1, максимум не обмежений).

Перевірити себе на практиці

Прочитати — половина справи. Далі потрібні завдання цієї ж теми з розбором кожної відповіді: саме на них видно, чи справді тема закрита.

Ідентифікація класів — конспект (Інформаційні технології) · Вступ PRO