Діаграма класів (Class diagram)

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

Клас – це множина об’єктів, які мають однакову структуру, поведінку та відношення з об’єктами з інших класів.

Позначається:

Ім’я Класу

 

 

Обов’язковим являється Ім’я Класу; воно повинно бути унікальним, записується з великої літери та напівжирним шрифтом.

Клас називається абстрактним якщо не містить об’єктів; тоді його ім’я записується курсивом.

Кожному атрибути відповідає рядок тексту:

Квантор видимості_ІмяАтрибуту[кратність]: Тип=Початкове значення{рядок-властивість}

Квантор видимості приймає одне з 3 значень:

1. Символ + -загальнодоступний (Public) – атрибут доступний з будь-якого класу.

2. Символ # -захищений (Protected) – атрибут доступний лише підкласам даного класу.

3. Символ - закритий (Private) – атрибут недоступний жодному іншому класу.

 

Ім’я атрибута – являється обов’язковим.

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

Операція – це деякий сервіс, який надає екземпляр класу за певною вимогою.

Кожній операції відповідає рядок тексту:

Квантор видимості_ІмяОперації [список параметрів]: Вираз {рядок-властивість}

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

Деякі операції можуть виконуватися одночасно, а деякі лише послідовно, для цього у рядку-властивості вказується:

concurrency = ім'я

1) sequential

2) concurrent

3) guarded.

Ім'я приймає одне з 3 значень:

1. Послідовна

2. Паралельна

3. Захищена – всі звершення до даної операції повинні бути впорядковані у часі.

Відношення на діаграмі класів:

1. Залежності стрілка направлена до класу джерела. Визначені спеціальні види залежності, задаються стереотипами:

а) “access –доступність відкритих атрибутів та операцій класу-джерела та класу-клієнтів;

б) “bind” - клас-клієнт може використовувати деякий шаблон;

в) “derive”–атрибути класу-клієнта можуть бути обчислені за атрибутами класу-джерела;

г) “import” – відкриті атрибути та операції класу-джерела являється частиною класу-клієнта, неначе вони об’явлені безпосередньо у ньому;

д) “refine” - клас-клієнт являється уточненням класу-джерела.

2. Асоціації:

а) бінарна

 

б) тернарна

 

в) що виключає

3. Агрегації – клас включає в себе як складові інші класи.

Позначається:

 

4. Композиції – являється частинами випадку відношенням агрегації при якій складові знаходяться в середині цілого.

Позначається:

 
 


5. Узагальнення направлена до класу джерела. Для відношення узагальнення визначені наступні відношення:

а) { complete } - для даного відношення визначені всі класи нащадків;

б) { disjoint } – класи нащадків не можуть містити об’єктів які одночасно являються екземплярами двох або більше класів;

в) { incomplete } – на діаграмі вказані не всі класи нащадків;

г) { overlapping } – екземпляри класів нащадків можуть належати одночасно декільком класам.

Інтерфейс позначається:

або

 

Шаблон або параметризований клас:

 
 

 


Приклади:

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: