Діаграма класів – це основа будь-якої документації програмного проекту. А також стартова точка у реалізації програмного додатку на мові Java.
Діаграма класів дозволяє формалізувати логічну модель вашої програми, на рівні структурних елементів системи, тобто класів. Вона надає статичне представлення про структуру програми – з яких класів вона складається, які зв’язки між цими класами, з чого складається кожний клас.
Модель кожного класу є шаблоном майбутнього об’єкту, який створюється на основі цього класу. Кожна програма може містити чисельну кількість різних об’єктів. Як відомо, об’єкти мають стан та поведінку, відповідно до концепції ООП. На рівні класу стан описується полями даних, а поведінка – методами. Візуально на діаграмі класів поля даних та методи представляються в типовому вигляді:
На представленій діаграмі (дякуємо https://sparxsystems.com/resources/tutorials/uml/logical-model.html) представлено один клас, у вигляді прямокутника. Прямокутник поділено на 3 секції:
Модель класів лежить в основі об’єктно - орієнтованого програмування. Вона описує загальний стан всієї програмної системи, так і її поведінку. Кожний клас з цієї моделі інкапсулює свій стан (це поля класу) та пропонує сервіси для керування цим станом (на основі методів). Якісне слідування принципу інкапсуляції передбачає обмеження прямого доступу до стану, тобто до полів класу. Це досягається шляхом створення методів отримання доступу та методів зміни полів (так звані getters and setters). Також правильна розробка класу передбачає можливість оновлення стану тільки в одному місці та у відповідності із певними правилами.
Ще приклади діаграми класів та коди відповідних програм на мові Java, які розроблені на практичних заняттях студентів 1-го курсу.
Як видно з наведеного прикладу, візуалізація коду класу Dog у вигляді діаграми класу, дозволяє набагато швидше отримати інформацію про структуру класу та стан майбутніх об’єктів, дізнатись про поведінку таких об’єктів. Звісно, з проектування саме діаграми класу краще всього розпочинати створення програми, бо на цьому етапі краще всього зробити декомпозицію предметної області, проаналізувати сутність для якої проектується клас (собаку), побачити, що треба враховувати а що ні.
Використані матеріали сайтів:
https://sparxsystems.com
https://www.omg.org
https://wikipedia.org/wiki/UML