SlideShare a Scribd company logo
Структурні діаграми
2
ПрикладиПриклади66
КоопераціїКооперації55
ІнтерфейсІнтерфейс44
ВідношенняВідношення33
КласКлас22
Діаграма класівДіаграма класів11
Діаграма класів
При проектуванні сисетми інформаційна складова предметної області
виконується у вигляді логічної моделі рівня відносин (логічна модель)
Логічна модель описує відносини (об’єкти даних) автомтаизованої предметної
області і зв ’ язку між ними
В уніфікованій мові моделювання(UML) для представлення логічної моделі
можно використовувати діаграму класів
Діаграма класів (class diagram) – це діаграма, на якій показана множина класів,
інтерфейсів, кооперацій і відношень між ними. ЇЇ виконують у вигляді множини
вершин і дуг
3
Діаграма класів
Призначення діаграми класів
• Діаграма класів необхідна для представлення статичної структури моделі
системи
• Діаграма класі може відображати різноманітні взаємозв’язки між окремими
сутностями предметної області, такими як об’єкти і підсистеми, а також описує
їхню внутрішню структуру і тип відносин
Особливості діаграми класів
• На діаграмі класів не вказується інформація про тимчасові аспекти
функціонування системи
4
Діаграма класів
Діаграми класів можуть вміщати:
•Класи
•Відношення
•Інтерфейси
•Кооперації
5
КласиКлас (class) призначений для позначення множини об’єктів, які мають одинакову структуру, поведінку і
відношення з об’єктами із інших класів. Графічно клас зображується у вигляді прямокутника, який
додатково може бути розділений горизонтальними лініями на розділи або секції. У цих розділах можуть
вказуватися ім’я класу, атрибути (змінні) і операції (методи).
6
class cls 01
Круг Круг
- центр
- радиус
- заливка
Круг
- центр
- радиус
- заливка
+ переместить()
+ увеличить()
+ скрыть()
+ показать()
Имя класса
Атрибуты класса
Операции класса
Класи
Ім’я класу
•Ім’я класу повинно бути унікальним у рамках пакету, чкий описується деякою
сукупністю діаграм класів (можливо, одною діаграмою). Ім’я класу вказується у
верхній секції прямокутника напівжирним шрифтом і повинен починатися з
великої букви.
•Абстрактний клас – це клас, який не може мати екземплярів(об’єктів). Для
позначення його ім’я викоритовується курсив.
7
Класи
Атрибути класу
Атрибут - це іменоване властивість класу, загальна для всіх його об'єктів, що
включає опис безлічі значень, які можуть приймати екземпляри цієї властивості
8
• Клас мати будь-яке число атрибутів або
не може мати їх зовсім
• Атрибут є абстракцією даних об'єкта або
його стану
• У кожен момент часу будь-який атрибут об'єкта, що належить даному класу, має
цілком певним значенням
• Атрибути представлені в розділі, який розташований під ім'ям класу
• При описі атрибута можна явно вказувати його тип і значення, яке приймається за
замовчуванням
class cls 02
Custome r
- name
- address
- phone
Wall
- height: double
- width: double
- thickness: double
- isLoadBearing: boolean = true
Класи
Операції класу
Операція - це реалізація послуги, яку можна запросити у будь-якого об'єкта класу
для впливу на поведінку. Операція - це абстракція того, що може робити об'єкт.
9
• Як правило (хоча не завжди) звернення до операції об'єкта змінює його стан або
його дані
• Операції класу зображуються в розділі, розташованому нижче розділу з
атрибутами. При цьому можна обмежитися тільки іменами.
• У всіх об'єктів класу є загальний набір
операцій
• Клас може містити будь-яке число операцій
або не містити їх зовсім
class cls 03
Rectangle
+ move()
+ expand()
+ isEmpty()
Sensor
+ reset() : void
+ setAlarm(double) : void
+ getValue() : double
Класи
Поради
Зображуючи клас в UML, дотримуйтеся наступних правил:
показуйте тільки ті властивості класу, які важливі для
розуміння абстракції в даному контексті
розділяйте довгі списки атрибутів і операцій на групи
відповідно до них
категоріями показуйте взаємопов'язані класи на одній і тій
же діаграмі
10
Відношення
Відносини між класами
Крім внутрішнього устрою класів на діаграмі класів
вказуються різні відносини (зв'язку) між ними. Сукупність
типів відносин фіксована.
Базові відносинами в мові UML:
Ставлення залежності (dependency relationship)
Ставлення асоціації (association relationship)
Ставлення узагальнення (generalization relationship)
11
Відношення
Відношення залежності
Залежність (dependency) - відношення використання, згідно з
яким зміна в специфікації одного елемента може вплинути
на інший елемент, його використовує, причому зворотне не
обов'язково.
Графічно залежність зображується пунктирною лінією зі
стрілкою, спрямованої від залежного елемента на той, від
якого він залежить.
12
class cls 04
Client Order
Відношення
Відношення асоціації
Асоціація (association) - структурний ставлення, що показує,
що об'єкти одного типу якимось чином пов'язані з об'єктами
іншого типу. Асоціація, що зв'язує два класи, називається
бінарною. Можна створювати асоціації, що зв'язують відразу
кілька класів; вони називаються n-арнимі. У асоціацій можуть
бути: ім'я, роль, кратність і агрегування.
13
class cls 05
Person
Company
Person
Company
+Employee 1..*
work on
+Employer *
Відношення
Відношення асоціації
14
Ім'я описує природу відносини. Щоб уникнути можливих
направленіедвусмисленностей в розумінні імені,
вказується, в якому воно повинно читатися.
Роль - це «обличчя», яким клас, що знаходиться на
одній стороні асоціації, звернений до класу з іншого
її боку. Один клас може грати в різних асоціаціях як
одну і ту ж роль, так і різні.
Кратність - кількість об'єктів, яке може бути пов'язане
допомогою одного примірника асоціації. Кратність
записується або як вираз, значенням якого є діапазон
значень, або в явному вигляді. Кратність можна задати
дорівнює одиниці (1), можна вказати діапазон: «нуль або
одиниця» (0..1), «багато» (0 .. *), «одиниця або більше»
(1 .. *), «будь-яке число об'єктів, крім 2 і 5 »(0.. 1, 3..4, 6 ..
*).
class cls 06
Person Company
work on
class cls 07
Person Company
+Employee +Employer
class cls 08
Person Company
1..* *
Відношення
Відношення асоціації
15
Агрегування (aggregation) показує відношення типу «частина / ціле», в якому один клас
складається з кількох менших класів
Композиція (composition) служить для виділення спеціальної форми відносини «частина /
ціле». Специфіка зв'язку полягає в тому, що частини не можуть виступати у відриві від цілого,
тобто зі знищенням цілого знищуються і всі його складові частини.
class cls 09
Team Person
*1
class cls 10
Building Room
*1
Відношення
Відношення узагальнення
16
Узагальнення (generalization) - це відношення між загальною сутністю (суперкласом, або
батьком) і її конкретним втіленням (подклассом, або нащадком). Дане відношення описує
ієрархію класів і спадкування їх властивостей і поведінки. Передбачається, що клас-нащадок
має всі властивості і поведінкою класу-предка, а також має свої власні властивості і поведінку,
які відсутні у класу-предка.
class cls 11
Актив
Банковский счет Недвижимость Ценная бумага
Чековый счет Сберегательный
счет
Акция Облигация
Відношення
Поради
При моделюванні відносин в UML дотримуйтесь наступних
правил:
•використовуйте залежність, тільки якщо відношення, яке
моделюється не є структурним
•використовуйте узагальнення, тільки якщо має місце
відношення типу «є» уникайте множинного спадкоємства
ієрархія успадкування не повинна бути ні занадто глибокою
(бажано не більше п'яти рівнів), ні занадто широкою
•застосовуйте асоціації перш за все там, де між об'єктами
існують структурні відносини
17
ІнтерфейсиІнтерфейс (interface) - набір операцій, який використовується для специфицирования послуг, що
надаються класом або компонентом.
18
Інтерфейс повинен мати унікальне ім'я. І
нтерфейс може включати будь-яке число операцій.
Особливості
Інтерфейси не містять атрибутів
Інтерфейси не містять реалізують операції методів
Інтерфейс специфікує контракт класу, але не
накладає ніяких обмежень на свою реалізацію.
Зв'язок інтерфейсу з реалізують його елементом
можна графічно представити двома способами:
інтерфейс представляють у вигляді стереотипного
класу і пов'язують його з класом ставленням
реалізації. Ставлення реалізації об'єднує відносини
узагальнення і залежності відношення між
інтерфейсом і його реалізацією зображується
кружечком з одного боку класу.
class cls 12
«interface»
IEmployee
+ getHistory()
+ getCompensation() IEmployee
class cls 13
Employee
+ getHistory()
+ getCompensation()
«interface»
IEmployee
+ getHistory()
+ getCompensation()
Employee
+ getHisory()
+ getCompensation()
IEmployee
Інтерфейси
19
Інтерфейси можуть брати участь у відносинах узагальнення, асоціації та залежності. Інтерфейс
являє собою стикувальний вузол в системі. Він визначає умови контракту, після чого обидві
сторони - клієнт і постачальник - можуть діяти незалежно один від одного, повністю
покладаючись на взаємні зобов'язання.
class cls 14
TemperatureSensor
+ getValue()
ISensor
Dev ice Observ er
+ scan()
10
1
Інтерфейси
Поради
Зображуючи інтерфейс на мові UML, керуйтеся наведеними
нижче правилами:
•використовуйте скорочену нотацію, якщо треба просто
показати наявність стикувального вузла в системі
•використовуйте форму, якщо треба візуалізувати деталі
самого сервісу
20
КоопераціїКооперація (collaboration) - це спільнота класів, інтерфейсів і інших елементів, які працюють спільно для
забезпечення кооперативного поведінки, більш значущого, ніж сума його складових.
21
class System
А гент траектории Датчик
столкновений
Мотор
Мотор
поворотного
мех анизма
Главный мотор
Привод
1 *
1 1
1 1
Приклади
22
class cls 15
Colledge
- name
- address
- phone
+ attestInstructors()
+ attestStudents() : void
Faculty
- name
+ addInstructor()
+ removeInstructor()
+ getInstructor()
+ getAllInstructor()
Student
- id
- name
Course
- id
- name
Instructor
1..*
include
1
*
studied at
1..*
*
visit
*
1..*
1..*
1..*
work on
1..*
+dean 1
rule
0..1
Приклади
23
class cls 16
Позиция заказа
- количество: int
Товар
- название: String
- цена: double
Заказ
- номер: ID
- дата заказа: Date
- дата оплаты: Date
+ сумма() : double
Сотрудник
- имя: String
+ принять заказ()
+ проверить оплату()
+ выполнить()
Клиент
- имя: String
- адрес: Адрес
+ оплатить()
Физическое лицо
+ оплатить()
Юридическое
лицо
+ оплатить()
1
входит в
*
1..*
включает
1
0..1
работает с
*
1
делает
*
0..1
формирует отчет
*

More Related Content

What's hot

Жінки в історії розвитку інформатики
Жінки в історії розвитку інформатикиЖінки в історії розвитку інформатики
Жінки в історії розвитку інформатики
Evgeny Shakurov
 
НАВЧАННЯ В ВИЩИХ ВІЙСЬКОВИХ НАВЧАЛЬНИХ ЗАКЛАДАХ УКРАЇНИ
НАВЧАННЯ В ВИЩИХ ВІЙСЬКОВИХ НАВЧАЛЬНИХ ЗАКЛАДАХ УКРАЇНИНАВЧАННЯ В ВИЩИХ ВІЙСЬКОВИХ НАВЧАЛЬНИХ ЗАКЛАДАХ УКРАЇНИ
НАВЧАННЯ В ВИЩИХ ВІЙСЬКОВИХ НАВЧАЛЬНИХ ЗАКЛАДАХ УКРАЇНИ
russoua
 
ВИКОРИСТАННЯ МОБІЛЬНИХ ДОДАТКІВ У НАВЧАЛЬНОМУ ПРОЦЕСІ
ВИКОРИСТАННЯ МОБІЛЬНИХ ДОДАТКІВ У НАВЧАЛЬНОМУ ПРОЦЕСІВИКОРИСТАННЯ МОБІЛЬНИХ ДОДАТКІВ У НАВЧАЛЬНОМУ ПРОЦЕСІ
ВИКОРИСТАННЯ МОБІЛЬНИХ ДОДАТКІВ У НАВЧАЛЬНОМУ ПРОЦЕСІ
Олександр Дрижал
 
Model design
Model designModel design
Sw203 Lecture5 Class Acess Modifiers
Sw203 Lecture5 Class Acess ModifiersSw203 Lecture5 Class Acess Modifiers
Sw203 Lecture5 Class Acess Modifiers
Jargalsaikhan Alyeksandr
 
оздоровчі системи
оздоровчі системиоздоровчі системи
оздоровчі системи
irina_klopinska
 
Rdbms 300 test
Rdbms 300 testRdbms 300 test
Rdbms 300 test
Usukhuu Galaa
 
посібник Power point
посібник Power pointпосібник Power point
посібник Power point
zaykoannaivanivna
 
рівняння нерівності з параметрами
рівняння нерівності з параметрамирівняння нерівності з параметрами
рівняння нерівності з параметрами
Tamara tamara
 
5 клас урок 22 нова програма
5 клас урок 22 нова програма5 клас урок 22 нова програма
5 клас урок 22 нова програма
Юлія Артюх
 
позакласний захід найрозумніший 6 клас
позакласний захід найрозумніший 6 класпозакласний захід найрозумніший 6 клас
позакласний захід найрозумніший 6 клас
amatu16
 
профорієнтаційний тренінг карта життя
профорієнтаційний  тренінг  карта життяпрофорієнтаційний  тренінг  карта життя
профорієнтаційний тренінг карта життя
Ольга Сергіївна
 
Виробнича потужність підприємства
Виробнича потужність підприємстваВиробнича потужність підприємства
Виробнича потужність підприємстваPavlo Syrvatka
 
Кодування алгоритмів. Поняття складності алгоритмів
Кодування алгоритмів. Поняття складності алгоритмівКодування алгоритмів. Поняття складності алгоритмів
Кодування алгоритмів. Поняття складності алгоритмів
t0hins
 
Cs203 lecture13 composition
Cs203 lecture13 compositionCs203 lecture13 composition
Cs203 lecture13 composition
Jargalsaikhan Alyeksandr
 
Lection1
Lection1Lection1
Lection1
CDN_IF
 
Математична модель
Математична модельМатематична модель
Математична модель
t0hins
 

What's hot (20)

Жінки в історії розвитку інформатики
Жінки в історії розвитку інформатикиЖінки в історії розвитку інформатики
Жінки в історії розвитку інформатики
 
НАВЧАННЯ В ВИЩИХ ВІЙСЬКОВИХ НАВЧАЛЬНИХ ЗАКЛАДАХ УКРАЇНИ
НАВЧАННЯ В ВИЩИХ ВІЙСЬКОВИХ НАВЧАЛЬНИХ ЗАКЛАДАХ УКРАЇНИНАВЧАННЯ В ВИЩИХ ВІЙСЬКОВИХ НАВЧАЛЬНИХ ЗАКЛАДАХ УКРАЇНИ
НАВЧАННЯ В ВИЩИХ ВІЙСЬКОВИХ НАВЧАЛЬНИХ ЗАКЛАДАХ УКРАЇНИ
 
ВИКОРИСТАННЯ МОБІЛЬНИХ ДОДАТКІВ У НАВЧАЛЬНОМУ ПРОЦЕСІ
ВИКОРИСТАННЯ МОБІЛЬНИХ ДОДАТКІВ У НАВЧАЛЬНОМУ ПРОЦЕСІВИКОРИСТАННЯ МОБІЛЬНИХ ДОДАТКІВ У НАВЧАЛЬНОМУ ПРОЦЕСІ
ВИКОРИСТАННЯ МОБІЛЬНИХ ДОДАТКІВ У НАВЧАЛЬНОМУ ПРОЦЕСІ
 
Model design
Model designModel design
Model design
 
Sw203 Lecture5 Class Acess Modifiers
Sw203 Lecture5 Class Acess ModifiersSw203 Lecture5 Class Acess Modifiers
Sw203 Lecture5 Class Acess Modifiers
 
Personal Software Process
Personal Software ProcessPersonal Software Process
Personal Software Process
 
оздоровчі системи
оздоровчі системиоздоровчі системи
оздоровчі системи
 
Rdbms 300 test
Rdbms 300 testRdbms 300 test
Rdbms 300 test
 
посібник Power point
посібник Power pointпосібник Power point
посібник Power point
 
Pp Lect1 1
Pp Lect1 1Pp Lect1 1
Pp Lect1 1
 
рівняння нерівності з параметрами
рівняння нерівності з параметрамирівняння нерівності з параметрами
рівняння нерівності з параметрами
 
5 клас урок 22 нова програма
5 клас урок 22 нова програма5 клас урок 22 нова програма
5 клас урок 22 нова програма
 
позакласний захід найрозумніший 6 клас
позакласний захід найрозумніший 6 класпозакласний захід найрозумніший 6 клас
позакласний захід найрозумніший 6 клас
 
профорієнтаційний тренінг карта життя
профорієнтаційний  тренінг  карта життяпрофорієнтаційний  тренінг  карта життя
профорієнтаційний тренінг карта життя
 
Виробнича потужність підприємства
Виробнича потужність підприємстваВиробнича потужність підприємства
Виробнича потужність підприємства
 
Кодування алгоритмів. Поняття складності алгоритмів
Кодування алгоритмів. Поняття складності алгоритмівКодування алгоритмів. Поняття складності алгоритмів
Кодування алгоритмів. Поняття складності алгоритмів
 
Стрес
СтресСтрес
Стрес
 
Cs203 lecture13 composition
Cs203 lecture13 compositionCs203 lecture13 composition
Cs203 lecture13 composition
 
Lection1
Lection1Lection1
Lection1
 
Математична модель
Математична модельМатематична модель
Математична модель
 

Similar to Lection 2

Uml module 3
Uml module 3Uml module 3
Uml module 3
Andrii Hladkyi
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
Andrii Hladkyi
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
Andrii Hladkyi
 
Prezentation class diagram
Prezentation class diagramPrezentation class diagram
Prezentation class diagram
Марина Босова
 
Название презентации
Название презентацииНазвание презентации
Название презентации
juliettco
 
UML Prezentation class diagram
UML Prezentation class diagramUML Prezentation class diagram
UML Prezentation class diagram
juliettco
 
Uml module 1_new
Uml module 1_newUml module 1_new
Uml module 1_new
Andrii Hladkyi
 
Uml module 1
Uml module 1Uml module 1
Uml module 1
Andrii Hladkyi
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
Andrii Hladkyi
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
Andrii Hladkyi
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
Andrii Hladkyi
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
Andrii Hladkyi
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
Andrii Hladkyi
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
Andrii Hladkyi
 
Lection1
Lection1Lection1
Lection1
CDN_IF
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
Andrii Hladkyi
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
Andrii Hladkyi
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
Andrii Hladkyi
 

Similar to Lection 2 (18)

Uml module 3
Uml module 3Uml module 3
Uml module 3
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 
Prezentation class diagram
Prezentation class diagramPrezentation class diagram
Prezentation class diagram
 
Название презентации
Название презентацииНазвание презентации
Название презентации
 
UML Prezentation class diagram
UML Prezentation class diagramUML Prezentation class diagram
UML Prezentation class diagram
 
Uml module 1_new
Uml module 1_newUml module 1_new
Uml module 1_new
 
Uml module 1
Uml module 1Uml module 1
Uml module 1
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
 
Lection1
Lection1Lection1
Lection1
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
 

More from CDN_IF

Лекція_8
Лекція_8Лекція_8
Лекція_8
CDN_IF
 
Лекція_7
Лекція_7Лекція_7
Лекція_7
CDN_IF
 
Лекція_6
Лекція_6Лекція_6
Лекція_6
CDN_IF
 
Лекція_5
Лекція_5Лекція_5
Лекція_5
CDN_IF
 
Лекція_4
Лекція_4Лекція_4
Лекція_4
CDN_IF
 
Лекція_3
Лекція_3Лекція_3
Лекція_3
CDN_IF
 
Лекція_2
Лекція_2Лекція_2
Лекція_2
CDN_IF
 
Лекція_1
Лекція_1Лекція_1
Лекція_1
CDN_IF
 
Математична обробка геодезичних вимірів ІІ
Математична обробка геодезичних вимірів ІІМатематична обробка геодезичних вимірів ІІ
Математична обробка геодезичних вимірів ІІ
CDN_IF
 
directcosting
directcostingdirectcosting
directcosting
CDN_IF
 
організація створення бізнесу лекція 2
організація створення бізнесу лекція 2організація створення бізнесу лекція 2
організація створення бізнесу лекція 2
CDN_IF
 
тема 8
тема 8тема 8
тема 8
CDN_IF
 
тема 7
тема 7тема 7
тема 7
CDN_IF
 
Тема 4
Тема 4Тема 4
Тема 4
CDN_IF
 
презентациявнутр аудит
презентациявнутр аудитпрезентациявнутр аудит
презентациявнутр аудит
CDN_IF
 
през метод-прийомива
през метод-прийомивапрез метод-прийомива
през метод-прийомива
CDN_IF
 
презентация контроль
презентация контрольпрезентация контроль
презентация контроль
CDN_IF
 
Lektsiya 4. tema_2
Lektsiya 4. tema_2Lektsiya 4. tema_2
Lektsiya 4. tema_2
CDN_IF
 
презентация послуги
презентация послугипрезентация послуги
презентация послуги
CDN_IF
 
ва создание 2014
ва создание 2014ва создание 2014
ва создание 2014
CDN_IF
 

More from CDN_IF (20)

Лекція_8
Лекція_8Лекція_8
Лекція_8
 
Лекція_7
Лекція_7Лекція_7
Лекція_7
 
Лекція_6
Лекція_6Лекція_6
Лекція_6
 
Лекція_5
Лекція_5Лекція_5
Лекція_5
 
Лекція_4
Лекція_4Лекція_4
Лекція_4
 
Лекція_3
Лекція_3Лекція_3
Лекція_3
 
Лекція_2
Лекція_2Лекція_2
Лекція_2
 
Лекція_1
Лекція_1Лекція_1
Лекція_1
 
Математична обробка геодезичних вимірів ІІ
Математична обробка геодезичних вимірів ІІМатематична обробка геодезичних вимірів ІІ
Математична обробка геодезичних вимірів ІІ
 
directcosting
directcostingdirectcosting
directcosting
 
організація створення бізнесу лекція 2
організація створення бізнесу лекція 2організація створення бізнесу лекція 2
організація створення бізнесу лекція 2
 
тема 8
тема 8тема 8
тема 8
 
тема 7
тема 7тема 7
тема 7
 
Тема 4
Тема 4Тема 4
Тема 4
 
презентациявнутр аудит
презентациявнутр аудитпрезентациявнутр аудит
презентациявнутр аудит
 
през метод-прийомива
през метод-прийомивапрез метод-прийомива
през метод-прийомива
 
презентация контроль
презентация контрольпрезентация контроль
презентация контроль
 
Lektsiya 4. tema_2
Lektsiya 4. tema_2Lektsiya 4. tema_2
Lektsiya 4. tema_2
 
презентация послуги
презентация послугипрезентация послуги
презентация послуги
 
ва создание 2014
ва создание 2014ва создание 2014
ва создание 2014
 

Lection 2

  • 3. Діаграма класів При проектуванні сисетми інформаційна складова предметної області виконується у вигляді логічної моделі рівня відносин (логічна модель) Логічна модель описує відносини (об’єкти даних) автомтаизованої предметної області і зв ’ язку між ними В уніфікованій мові моделювання(UML) для представлення логічної моделі можно використовувати діаграму класів Діаграма класів (class diagram) – це діаграма, на якій показана множина класів, інтерфейсів, кооперацій і відношень між ними. ЇЇ виконують у вигляді множини вершин і дуг 3
  • 4. Діаграма класів Призначення діаграми класів • Діаграма класів необхідна для представлення статичної структури моделі системи • Діаграма класі може відображати різноманітні взаємозв’язки між окремими сутностями предметної області, такими як об’єкти і підсистеми, а також описує їхню внутрішню структуру і тип відносин Особливості діаграми класів • На діаграмі класів не вказується інформація про тимчасові аспекти функціонування системи 4
  • 5. Діаграма класів Діаграми класів можуть вміщати: •Класи •Відношення •Інтерфейси •Кооперації 5
  • 6. КласиКлас (class) призначений для позначення множини об’єктів, які мають одинакову структуру, поведінку і відношення з об’єктами із інших класів. Графічно клас зображується у вигляді прямокутника, який додатково може бути розділений горизонтальними лініями на розділи або секції. У цих розділах можуть вказуватися ім’я класу, атрибути (змінні) і операції (методи). 6 class cls 01 Круг Круг - центр - радиус - заливка Круг - центр - радиус - заливка + переместить() + увеличить() + скрыть() + показать() Имя класса Атрибуты класса Операции класса
  • 7. Класи Ім’я класу •Ім’я класу повинно бути унікальним у рамках пакету, чкий описується деякою сукупністю діаграм класів (можливо, одною діаграмою). Ім’я класу вказується у верхній секції прямокутника напівжирним шрифтом і повинен починатися з великої букви. •Абстрактний клас – це клас, який не може мати екземплярів(об’єктів). Для позначення його ім’я викоритовується курсив. 7
  • 8. Класи Атрибути класу Атрибут - це іменоване властивість класу, загальна для всіх його об'єктів, що включає опис безлічі значень, які можуть приймати екземпляри цієї властивості 8 • Клас мати будь-яке число атрибутів або не може мати їх зовсім • Атрибут є абстракцією даних об'єкта або його стану • У кожен момент часу будь-який атрибут об'єкта, що належить даному класу, має цілком певним значенням • Атрибути представлені в розділі, який розташований під ім'ям класу • При описі атрибута можна явно вказувати його тип і значення, яке приймається за замовчуванням class cls 02 Custome r - name - address - phone Wall - height: double - width: double - thickness: double - isLoadBearing: boolean = true
  • 9. Класи Операції класу Операція - це реалізація послуги, яку можна запросити у будь-якого об'єкта класу для впливу на поведінку. Операція - це абстракція того, що може робити об'єкт. 9 • Як правило (хоча не завжди) звернення до операції об'єкта змінює його стан або його дані • Операції класу зображуються в розділі, розташованому нижче розділу з атрибутами. При цьому можна обмежитися тільки іменами. • У всіх об'єктів класу є загальний набір операцій • Клас може містити будь-яке число операцій або не містити їх зовсім class cls 03 Rectangle + move() + expand() + isEmpty() Sensor + reset() : void + setAlarm(double) : void + getValue() : double
  • 10. Класи Поради Зображуючи клас в UML, дотримуйтеся наступних правил: показуйте тільки ті властивості класу, які важливі для розуміння абстракції в даному контексті розділяйте довгі списки атрибутів і операцій на групи відповідно до них категоріями показуйте взаємопов'язані класи на одній і тій же діаграмі 10
  • 11. Відношення Відносини між класами Крім внутрішнього устрою класів на діаграмі класів вказуються різні відносини (зв'язку) між ними. Сукупність типів відносин фіксована. Базові відносинами в мові UML: Ставлення залежності (dependency relationship) Ставлення асоціації (association relationship) Ставлення узагальнення (generalization relationship) 11
  • 12. Відношення Відношення залежності Залежність (dependency) - відношення використання, згідно з яким зміна в специфікації одного елемента може вплинути на інший елемент, його використовує, причому зворотне не обов'язково. Графічно залежність зображується пунктирною лінією зі стрілкою, спрямованої від залежного елемента на той, від якого він залежить. 12 class cls 04 Client Order
  • 13. Відношення Відношення асоціації Асоціація (association) - структурний ставлення, що показує, що об'єкти одного типу якимось чином пов'язані з об'єктами іншого типу. Асоціація, що зв'язує два класи, називається бінарною. Можна створювати асоціації, що зв'язують відразу кілька класів; вони називаються n-арнимі. У асоціацій можуть бути: ім'я, роль, кратність і агрегування. 13 class cls 05 Person Company Person Company +Employee 1..* work on +Employer *
  • 14. Відношення Відношення асоціації 14 Ім'я описує природу відносини. Щоб уникнути можливих направленіедвусмисленностей в розумінні імені, вказується, в якому воно повинно читатися. Роль - це «обличчя», яким клас, що знаходиться на одній стороні асоціації, звернений до класу з іншого її боку. Один клас може грати в різних асоціаціях як одну і ту ж роль, так і різні. Кратність - кількість об'єктів, яке може бути пов'язане допомогою одного примірника асоціації. Кратність записується або як вираз, значенням якого є діапазон значень, або в явному вигляді. Кратність можна задати дорівнює одиниці (1), можна вказати діапазон: «нуль або одиниця» (0..1), «багато» (0 .. *), «одиниця або більше» (1 .. *), «будь-яке число об'єктів, крім 2 і 5 »(0.. 1, 3..4, 6 .. *). class cls 06 Person Company work on class cls 07 Person Company +Employee +Employer class cls 08 Person Company 1..* *
  • 15. Відношення Відношення асоціації 15 Агрегування (aggregation) показує відношення типу «частина / ціле», в якому один клас складається з кількох менших класів Композиція (composition) служить для виділення спеціальної форми відносини «частина / ціле». Специфіка зв'язку полягає в тому, що частини не можуть виступати у відриві від цілого, тобто зі знищенням цілого знищуються і всі його складові частини. class cls 09 Team Person *1 class cls 10 Building Room *1
  • 16. Відношення Відношення узагальнення 16 Узагальнення (generalization) - це відношення між загальною сутністю (суперкласом, або батьком) і її конкретним втіленням (подклассом, або нащадком). Дане відношення описує ієрархію класів і спадкування їх властивостей і поведінки. Передбачається, що клас-нащадок має всі властивості і поведінкою класу-предка, а також має свої власні властивості і поведінку, які відсутні у класу-предка. class cls 11 Актив Банковский счет Недвижимость Ценная бумага Чековый счет Сберегательный счет Акция Облигация
  • 17. Відношення Поради При моделюванні відносин в UML дотримуйтесь наступних правил: •використовуйте залежність, тільки якщо відношення, яке моделюється не є структурним •використовуйте узагальнення, тільки якщо має місце відношення типу «є» уникайте множинного спадкоємства ієрархія успадкування не повинна бути ні занадто глибокою (бажано не більше п'яти рівнів), ні занадто широкою •застосовуйте асоціації перш за все там, де між об'єктами існують структурні відносини 17
  • 18. ІнтерфейсиІнтерфейс (interface) - набір операцій, який використовується для специфицирования послуг, що надаються класом або компонентом. 18 Інтерфейс повинен мати унікальне ім'я. І нтерфейс може включати будь-яке число операцій. Особливості Інтерфейси не містять атрибутів Інтерфейси не містять реалізують операції методів Інтерфейс специфікує контракт класу, але не накладає ніяких обмежень на свою реалізацію. Зв'язок інтерфейсу з реалізують його елементом можна графічно представити двома способами: інтерфейс представляють у вигляді стереотипного класу і пов'язують його з класом ставленням реалізації. Ставлення реалізації об'єднує відносини узагальнення і залежності відношення між інтерфейсом і його реалізацією зображується кружечком з одного боку класу. class cls 12 «interface» IEmployee + getHistory() + getCompensation() IEmployee class cls 13 Employee + getHistory() + getCompensation() «interface» IEmployee + getHistory() + getCompensation() Employee + getHisory() + getCompensation() IEmployee
  • 19. Інтерфейси 19 Інтерфейси можуть брати участь у відносинах узагальнення, асоціації та залежності. Інтерфейс являє собою стикувальний вузол в системі. Він визначає умови контракту, після чого обидві сторони - клієнт і постачальник - можуть діяти незалежно один від одного, повністю покладаючись на взаємні зобов'язання. class cls 14 TemperatureSensor + getValue() ISensor Dev ice Observ er + scan() 10 1
  • 20. Інтерфейси Поради Зображуючи інтерфейс на мові UML, керуйтеся наведеними нижче правилами: •використовуйте скорочену нотацію, якщо треба просто показати наявність стикувального вузла в системі •використовуйте форму, якщо треба візуалізувати деталі самого сервісу 20
  • 21. КоопераціїКооперація (collaboration) - це спільнота класів, інтерфейсів і інших елементів, які працюють спільно для забезпечення кооперативного поведінки, більш значущого, ніж сума його складових. 21 class System А гент траектории Датчик столкновений Мотор Мотор поворотного мех анизма Главный мотор Привод 1 * 1 1 1 1
  • 22. Приклади 22 class cls 15 Colledge - name - address - phone + attestInstructors() + attestStudents() : void Faculty - name + addInstructor() + removeInstructor() + getInstructor() + getAllInstructor() Student - id - name Course - id - name Instructor 1..* include 1 * studied at 1..* * visit * 1..* 1..* 1..* work on 1..* +dean 1 rule 0..1
  • 23. Приклади 23 class cls 16 Позиция заказа - количество: int Товар - название: String - цена: double Заказ - номер: ID - дата заказа: Date - дата оплаты: Date + сумма() : double Сотрудник - имя: String + принять заказ() + проверить оплату() + выполнить() Клиент - имя: String - адрес: Адрес + оплатить() Физическое лицо + оплатить() Юридическое лицо + оплатить() 1 входит в * 1..* включает 1 0..1 работает с * 1 делает * 0..1 формирует отчет *