Діаграма класів

Діаграма класіввизначає типи класів системи і різного роду статичні зв'язки, які існують між ними. На діаграмах класів зображаються також атрибути класів, операції класів і обмеження, які накладаються на зв'язку між класами.

Діаграма класів служить для представлення статичної структури моделі системи в термінології класів об'єктно-орієнтованого програмування. Вона є граф, вершинами якого є елементи типу «класифікатор», зв'язані різними типами структурних відносин.

Класи

Клас (class) в мові UML служить для позначення безлічі об'єктів, які володіють однаковою структурою, поведінкою і відносинами з об'єктами інших класів. Графічно клас зображається у вигляді прямокутника, який додатково може бути роздільний горизонтальними лініями на розділи або секції. У цих розділах можуть указуватися ім'я класу, атрибути (змінні) і операції (методи).

Ім'я класу указується в першій верхній секції прямокутника. Клас може не мати екземплярів або об'єктів. В цьому випадку він називається абстрактним класом, а для позначення його імені використовується курсив.

Атрибути класу або властивості записуються в другій зверху секції прямокутника класу. У мові UML кожному атрибуту класу відповідає окремий рядок тексту, який складається з квантора видимості атрибуту, імені атрибуту, його кратності, типу значень атрибуту і, можливо, його початкового значення:

<квантор видимости><имя атрибуту>[кратність]: <тип атрибуту> = <початкове значення> { рядок-властивість}

Квантор видимості може приймати одне з трьох можливих значень і відображається за допомогою відповідних спеціальних символів:

§ «позначає атрибут із зоною видимості типу загальнодоступний (public);

§ «позначає атрибут із зоною видимості типу захищений (protected);

§ «позначає атрибут із зоною видимості типу закритий (private).

Ім'я атрибуту є рядком тексту, який використовується як ідентифікатор відповідного атрибуту і тому повинна бути унікальною в межах даного класу. Ім'я атрибуту є єдиним обов'язковим елементом синтаксичного позначення атрибуту.

Типом атрибуту є вираз, семантика якого визначається мовою специфікації відповідної моделі.

Початкове значення служить для завдання початкового значення відповідного атрибуту у момент створення окремого екземпляра класу..

Рядок-властивість служить для вказівки значень атрибуту, які не можуть бути змінені в програмі при роботі з даним типом об'єктів. Фігурні дужки позначають фіксоване значення відповідного атрибуту для класу в цілому, яке повинні приймати всі новостворювані екземпляри класу без виключення.

Методи класу записуються в третій зверху секції прямокутника. Кожному методу класу відповідає окремий рядок, який складається з квантора видимості операції, імені операції, вирази типу значення, що повертається операцією, і, можливо, рядок-властивість даної операції:

<квантор видимости><имя методу>(список параметрів): <вираз типу значення>{ рядок-властивість}, що повертається

Ім'я методу є рядком тексту, який використовується як ідентифікатор відповідного методу.

Список параметрів є переліком розділених комою формальних параметрів, кожен з яких може бути представлений в наступному вигляді:

<вид параметра><имя параметра>:<выражение типа>=<значение параметра за умовчанням>.

Вираз типу значення, що повертається, є залежною від мови реалізації специфікацією типу або типів значень параметрів, які повертаються об'єктом після виконання відповідної операції..

Рядок-властивість служить для вказівки значень властивостей, які можуть бути застосовані до даного елементу. Рядок-властивість не є обов'язковим, вона може бути відсутньою, якщо ніякі властивості не специфіковані.

Якщо для деякого методу необхідно додатково вказати особливості його реалізації (наприклад, алгоритм), то це може бути зроблено у формі примітки, записаної у вигляді тексту, який приєднується до запису методу у відповідній секції класу.