Діаграма класів
Діаграма класіввизначає типи класів системи і різного роду статичні зв'язки, які існують між ними. На діаграмах класів зображаються також атрибути класів, операції класів і обмеження, які накладаються на зв'язку між класами.
Діаграма класів служить для представлення статичної структури моделі системи в термінології класів об'єктно-орієнтованого програмування. Вона є граф, вершинами якого є елементи типу «класифікатор», зв'язані різними типами структурних відносин.
Класи
Клас (class) в мові UML служить для позначення безлічі об'єктів, які володіють однаковою структурою, поведінкою і відносинами з об'єктами інших класів. Графічно клас зображається у вигляді прямокутника, який додатково може бути роздільний горизонтальними лініями на розділи або секції. У цих розділах можуть указуватися ім'я класу, атрибути (змінні) і операції (методи).
Ім'я класу указується в першій верхній секції прямокутника. Клас може не мати екземплярів або об'єктів. В цьому випадку він називається абстрактним класом, а для позначення його імені використовується курсив.
Атрибути класу або властивості записуються в другій зверху секції прямокутника класу. У мові UML кожному атрибуту класу відповідає окремий рядок тексту, який складається з квантора видимості атрибуту, імені атрибуту, його кратності, типу значень атрибуту і, можливо, його початкового значення:
<квантор видимости><имя атрибуту>[кратність]: <тип атрибуту> = <початкове значення> { рядок-властивість}
Квантор видимості може приймати одне з трьох можливих значень і відображається за допомогою відповідних спеціальних символів:
§ «+»позначає атрибут із зоною видимості типу загальнодоступний (public);
§ «#»позначає атрибут із зоною видимості типу захищений (protected);
§ «-»позначає атрибут із зоною видимості типу закритий (private).
Ім'я атрибуту є рядком тексту, який використовується як ідентифікатор відповідного атрибуту і тому повинна бути унікальною в межах даного класу. Ім'я атрибуту є єдиним обов'язковим елементом синтаксичного позначення атрибуту.
Типом атрибуту є вираз, семантика якого визначається мовою специфікації відповідної моделі.
Початкове значення служить для завдання початкового значення відповідного атрибуту у момент створення окремого екземпляра класу..
Рядок-властивість служить для вказівки значень атрибуту, які не можуть бути змінені в програмі при роботі з даним типом об'єктів. Фігурні дужки позначають фіксоване значення відповідного атрибуту для класу в цілому, яке повинні приймати всі новостворювані екземпляри класу без виключення.
Методи класу записуються в третій зверху секції прямокутника. Кожному методу класу відповідає окремий рядок, який складається з квантора видимості операції, імені операції, вирази типу значення, що повертається операцією, і, можливо, рядок-властивість даної операції:
<квантор видимости><имя методу>(список параметрів): <вираз типу значення>{ рядок-властивість}, що повертається
Ім'я методу є рядком тексту, який використовується як ідентифікатор відповідного методу.
Список параметрів є переліком розділених комою формальних параметрів, кожен з яких може бути представлений в наступному вигляді:
<вид параметра><имя параметра>:<выражение типа>=<значение параметра за умовчанням>.
Вираз типу значення, що повертається, є залежною від мови реалізації специфікацією типу або типів значень параметрів, які повертаються об'єктом після виконання відповідної операції..
Рядок-властивість служить для вказівки значень властивостей, які можуть бути застосовані до даного елементу. Рядок-властивість не є обов'язковим, вона може бути відсутньою, якщо ніякі властивості не специфіковані.
Якщо для деякого методу необхідно додатково вказати особливості його реалізації (наприклад, алгоритм), то це може бути зроблено у формі примітки, записаної у вигляді тексту, який приєднується до запису методу у відповідній секції класу.