Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ІТС_описові_ред (1).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
22.02 Кб
Скачать

4. Діаграма класів. Відношення асоціації, агрегації, композиції, узагальнення. Поліморфізм. Інтерфейси, абстрактні класи.

Діаграма класів (class diagram) – для подання статичної структури моделі системи в технології класів об’єктно-орієнтованого програмування. Може відображати, зокрема, різні взаємозв’язки між окремими сутностями предметної області (об’єкти і підсистеми), а також описує їх внутрішню структуру і типи відношень. Тут не вказується інформація про тимчасові аспекти функціонування системи.

ДК – деякий граф, вершини якого – елементи типу “класифікатор”, зв'язані різними типами структурних відношень. Може містити інтерфейси, пакети, відношення і навіть окремі екземпляри, такі як об’єкти і зв’язки.

Клас – гол. ел-т на ДК, що відображає сукупність однотипних об’єктів зі спільними атрибутами, асоціаціями та семантикою. Зображується у вигляді прямокутника, який додатково може бути розділений горизонтальними лініями на розділи або секції. Виокремлюють три секції, в яких послідовно записують назву, атрибути та операції. Навіть якщо секції атрибутів і операцій є порожніми, вони виділяються горизонтальними лініями. Назва класу має бути унікальною в межах пакета, в якому розташовано клас.

Якщо клас не має екземплярів або об’єктів, він – абстрактний (позн. курсивом).

Кількість екземплярів класу – кратність (задають у специфікації класу).

Атрибут – позначене місце (слот), в якому може/можуть зберігатися значення. Загальний формат атрибутів:

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

Видимість визначає рівень доступу до атрибута і набуває наступних значень: відкритий (public), захищений (protected), закритий (private).

Назва атрибута – унікальна для певного класу. Кратність – к-ть конкретних атрибутів певного типу з окремого класу. Може бути вказано початкове значення.

Властивості атрибута: changeable, addOnly, frozen.

Статичні атрибути належать класу загалом, і позначаються на ДК підкресленням.

Операції – закладають в клас та його об’єкти поведінку. Формат операцій: [<видимість>]<назва>([список парам.])[:<тип результату>]

Видимість – аналогічно. Назва – унікальна. Список параметрів дає змогу специфікувати інтерфейс операцій. Кількість параметрів у списку довільна. Параметр записують так: [<напрям>]<назва>[:<тип>][=<знач. за замовч.>]

Напрям використання параметра в операції: in – вхідний; out –вихідний; inout – вхідний і вихідний одночасно.

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

Відношення асоціації на ДК зустрічаються найчастіше. Позначається суцільною лінією між класами. Об’єкт 1 класу може надсилати повідомлення об’єкту ін. класу, зокрема, активізувати операцію або прочитати/змінити значення відкритого атрибута. Об’єкти асоційованих класів – полюси асоціації.

Доповнення UML для асоціації: Назва асоціації (посередині над/під лінією; ідентифікатор асоціації у моделі), роль полюса асоціації (конкретизує асоціацію щодо певного класу: [<видимість>]<назва ролі>[:<тип>]), кратність полюса асоціації (к-ть об’єктів певного класу в асоціації), сортування на полюсі асоціації (тип упоряди. об’єктів на полюсі з кратн. >1), змінюваність на полюсі (можливість зміни кількості екземплярів класу з боку полюса під час роботи програми), напрям навігації на полюсі асоціації (можливість доступу до екземплярів класу з боку полюса за допомогою певної асоціації).

Найпопул. бінарні асоціації – між 2 класами (або рефлексивне відношення класу із собою). Зв’язок між екземплярами одного класу – само асоціація.

Багатополюсна асоціація – зв’язок між >=3 класами (зображ. ромбом).

Агрегація та композиція – часткові випадки відношення асоціації.

Агрегація від кл. А до В означає: об’єкти кл. А входять до складу об’єкта кл. В. На ДК: асоціації, у яких з боку цілої частини намальовано ромб.

Композиції — це асоціації, які відповідають дуже сильній агрегації. (Співвідношення ціле-частина, але зв’язок настільки сильний, що частини не можуть існувати без цілого)

Узагальнення – відношення між двома сутностями, одна з яких є частковим випадком іншої.

Інтерфейс – клас, який не має реалізації.