Діаграма класів (Class diagram)
Потрібна для представлення статичної структури моделі системи.
Клас – це множина об’єктів, які мають однакову структуру, поведінку та відношення з об’єктами з інших класів.
Позначається:
Обов’язковим являється Ім’я Класу; воно повинно бути унікальним, записується з великої літери та напівжирним шрифтом.
Клас називається абстрактним якщо не містить об’єктів; тоді його ім’я записується курсивом.
Кожному атрибути відповідає рядок тексту:
Квантор видимості_ІмяАтрибуту[кратність] : Тип=Початкове значення{рядок-властивість}
Квантор видимості приймає одне з 3 значень:
1. Символ + - загальнодоступний (Public) – атрибут доступний з будь-якого класу.
2. Символ # - захищений (Protected) – атрибут доступний лише підкласам даного класу.
3. Символ — - закритий (Private) – атрибут недоступний жодному іншому класу.
Ім’я атрибута – являється обов’язковим.
Кратність – загальна кількість атрибутів даного типу що входять у склад даного класу. Якщо рядок атрибута підкреслений – це означає що атрибут приймає лише деяку множину значень, які вказані у рядку властивості.
Операція – це деякий сервіс, який надає екземпляр класу за певною вимогою.
Кожній операції відповідає рядок тексту:
Квантор видимості_ІмяОперації [список параметрів] : Вираз {рядок-властивість}
Рядок-властивість потрібна для визначення значень властивостей, які можуть бути застосовані до даного елемента.
Деякі операції можуть виконуватися одночасно, а деякі лише послідовно, для цього у рядку-властивості вказується:
concurrency = ім'я
1) sequential
2) concurrent
3) guarded .
Ім'я приймає одне з 3 значень:
Послідовна Паралельна Захищена – всі звершення до даної операції повинні бути впорядковані у часі. Відношення на діаграмі класів:
1. Залежності стрілка направлена до класу джерела. Визначені спеціальні види залежності, задаються стереотипами:
а)“access –доступність відкритих атрибутів та операцій класу-джерела та класу-клієнтів;
б) “bind” - клас-клієнт може використовувати деякий шаблон;
в) “derive”–атрибути класу-клієнта можуть бути обчислені за атрибутами класу-джерела;
г) “import” – відкриті атрибути та операції класу-джерела являється частиною класу-клієнта, неначе вони об’явлені безпосередньо у ньому;
д) “refine” - клас-клієнт являється уточненням класу-джерела.
2. Асоціації:
а) бінарна
б) тернарна
в) що виключає
3. Агрегації – клас включає в себе як складові інші класи.
Позначається:
4. Композиції – являється частинами випадку відношенням агрегації при якій складові знаходяться в середині цілого.
Позначається:
5. Узагальнення направлена до класу джерела. Для відношення узагальнення визначені наступні відношення:
а) { complete } - для даного відношення визначені всі класи нащадків;
б) { disjoint } – класи нащадків не можуть містити об’єктів які одночасно являються екземплярами двох або більше класів;
в) { incomplete } – на діаграмі вказані не всі класи нащадків;
г) { overlapping } – екземпляри класів нащадків можуть належати одночасно декільком класам.
Інтерфейс позначається:
або
Шаблон або параметризований клас:
Приклади:
Поиск по сайту: