Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Клас

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

 

Рис. 2.1. Графічне зображення класу на діаграмі класів

Обов’язковим елементом позначення класу є його ім’я. На початкових етапах розробки діаграми окремі класи можуть позначатися простим прямокутником з вказуванням тільки імені відповідного класу (рис. 2.1, а). В міру пророблення окремих компонентів діаграми опису класів доповнюються атрибутами (рис. 2.2, б) і операціями (рис. 2.3, в).

Ім’я класу повинне бути унікальним у межах пакета, що описується деякою сукупністю діаграм класів (можливо, одною діаграмою). Воно вказується в першій верхній секції прямокутника. На додаток до загального правила найменування елементів мови UML, ім’я класу записується в центрі секції імені напівжирним шрифтом і повинне починатися з заголовної букви. Рекомендується як імена класів використовувати іменники, записані з практичних міркувань без пробілів. Необхідно пам’ятати, що саме імена класів утворять словник предметної області.

 

Атрибути класу

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

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

Операція

У третій зверху секції прямокутника записуються операції або методи класу. Операція (operatіon) являє собою деякий сервіс, який представляє кожен екземпляр класу за визначеною вимогою. Сукупність операцій характеризує функціональний аспект поводження класу. Запис операцій класу в мові UML також стандартизований і підкоряється визначеним синтаксичним правилам. При цьому кожній операції класу відповідає окремий рядок, що складається з квантора видимості операції, імені операції, вираження типу повертається операцією значення і, можливо, рядок-властивість даної операції

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

 

Відношення між класами

Крім внутрішньої будови або структури класів на відповідній діаграмі вказуються різні відношення між класами. При цьому сукупність типів таких відношень фіксована в мові UML і визначена семантикою цих типів відношень. Базовими відношеннями або зв’язками в мові UML є:

· відношення залежності (dependency relatіonshіp);

· відношення асоціації (assocіatіon relatіonshіp);

· відношення узагальнення (generalіzatіon relatіonshіp);

· відношення реалізації (realіzatіon relatіonshіp).

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

 

Відношення залежності

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

Відношення залежності графічно зображується пунктирною лінією між відповідними елементами зі стрілкою на одному з її кінців ("→" або "←"). На діаграмі класів дане відношення зв’язує окремі класи між собою, при цьому стрілка спрямована від класу-клієнта залежності до незалежного класу або класу-джерела (рис. 2.2). На даному рисунку зображені два класи: Клас_А и Клас_Б, при цьому Клас_Б є джерелом деякої залежності, а Клас_А – клієнтом цієї залежності.

 

Рис. 2.2. Графічне зображення відношення залежності на діаграмі класів

 

Відношення асоціації

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

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

Як простий приклад відносини бінарної асоціації розглянемо відношення між двома класами – класом "Компанія" і класом "Співробітник" (рис. 2.3). Вони зв’язані між собою бінарною асоціацією "Робота", ім’я якої зазначене на рисунку поруч з лінією асоціації. Для даного відношення визначений порядок проходження класів, першим з яких є клас "Співробітник", а другим – клас "Компанія". Окремим прикладом або екземпляром даного відношення може бути пара значень (Петров А., "Intel"). Це означає, що співробітник Петров А. працює в компанії "Intel".

 

Рис. 2.3. Графічне зображення відношення бінарної асоціації між класами

 

Відношення агрегації

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

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

 

Рис. 2.4. Графічне зображення відношення агрегації в мові UML

 

Рис. 2.5. Діаграма класів для ілюстрації відношення агрегації на прикладі ПК

 

Відношення композиції

Відношення композиції є окремим випадком відношення агрегації. Це відношення служить для виділення спеціальної форми відношення "частина-ціле", при якій складові частини в деякому сенсі знаходяться усередині цілого. Специфіка взаємозв’язку між ними полягає в тому, що частини не можуть виступати окремо від цілого, тобто зі знищенням цілого знищуються і всі його складові частини. Приклад – вікно інтерфейсу програми, що може складатися з рядка заголовка, кнопок керування розміром, смуг прокручування, головного меню, робочої області і рядка стану. Неважко зрозуміти, що подібне вікно являє собою клас, а його компоненти є як класами, так і атрибутами або властивостями вікна. Остання обставина досить характерна для відношення композиції, оскільки відбиває різні способи представлення даного відношення.

Графічно відношення композиції зображується суцільною лінією, один з кінців якої являє собою зафарбований усередині ромб. Цей ромб указує на той із класів, що являє собою клас-композицію або "ціле". Інші класи є його "частинами" (рис. 2.6).

 

Рис. 2.6. Графічне зображення відношення композиції в мові UML

 

Рис. 2.7. Діаграма класів для ілюстрації відношення композиції
на прикладі класу вікна програми

 

Відношення узагальнення

Відношення узагальнення (спадкування) є звичайним таксономічним відношенням між більш загальним елементом (батьком або предком) і більш приватним або спеціальним елементом (дочірнім або нащадком). Дане відношення може використовуватися для представлення взаємозв’язків між пакетами, класами, варіантами використання й інших елементів мови UML.

Стосовно до діаграми класів дане відношення описує ієрархічну будівлю класів і спадкування їхніх властивостей і поводження. При цьому передбачається, що клас-нащадок має усі властивості і поводженням класу-предка, а також має свої власні властивості і поводження, що відсутні у класу-предка. На діаграмах відношення узагальнення позначається суцільною лінією з трикутною стрілкою на одному з кінців (рис. 2.8). Стрілка вказує на більш загальний клас (клас-предок або суперклас), а її відсутність – на більш спеціальний клас (клас-нащадок або підклас).

 

Рис. 2.8. Графічне зображення відношення узагальнення в мові UML

 

Рис. 2.9. Приклад графічного зображення відношення узагальнення класів

 

З метою спрощення позначень на діаграмі класів сукупність ліній, що позначають те саме відношення узагальнення, може бути об’єднана в одну лінію. У цьому випадку дані окремі лінії зображуються збіжними до єдиної стрілки, що має з ними загальну точку перетинання (рис. 2.10). Біля лінії наслідування може знаходитися текстовий рядок – дискримінатор, який задає ім’я групи нащадків. Його використання корисне, коли у даного класу багато нащадків і їх необхідно розбити на декілька груп.

 

Рис. 2.10. Варіант графічного зображення відношення узагальнення класів
для випадку об’єднання окремих ліній

 

Слід відмітити, що на діаграмах класів, як правило, усі класи верхніх рівнів ієрархії являються абстрактними, тобто не можуть бути представлені своїми екземплярами (об’єктами). На відміну від них класи нижнього рівня являються конкретними і можуть бути подані своїми екземплярами. На рис. 2.10 у якості останніх виступають реальні прямокутники, кола і т.п. з конкретними геометричними розмірами, кольором і т.п. (набором значень їхніх атрибутів).

 

 




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 7252; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.