SlideShare a Scribd company logo
1 of 15
ООП з використанням UML
(Unified Modeling Language)
Модуль 1
Класи і об’єкти
 Відношення між об’єктами
 У полі зору розробника ПЗ знаходяться не об'єкти-
одинаки, а взаємодіючі об'єкти, адже саме взаємодія
об'єктів реалізує поведінку системи. У Г. Буча є відмінна
цитата з Галла: «Літак - це набір елементів, кожен з яких
за своєю природою прагне впасти на землю, але ціною
спільних безперервних зусиль долає цю тенденцію» [22].
Відносини між парою об'єктів ґрунтуються на взаємній
інформації про дозволені операції і очікуваній поведінці.
Особливо цікаві два види відносин між об'єктами: зв'язки
і агрегація.
2
Andrey Gladky
KspDevelop@gmail.com
Типи відношень між об’єктами
 Зв’язки
 Зв'язок - це фізичне або понятійне з'єднання між
об'єктами. Об'єкт співпрацює з іншими об'єктами через
механізми зв'язку. Зв'язок позначає з'єднання, за
допомогою якого:
 об'єкт-клієнт викликає операції об'єкта-постачальника;
 один об'єкт переміщує дані до іншого об'єкта.
 Як учасник зв'язку об'єкт може грати одну з трьох ролей:
◦ актор - об'єкт, який може впливати на інші об'єкти, але ніколи не
схильний до дії інших об'єктів;
◦ сервер - об'єкт, який ніколи не впливає на інші об'єкти, він тільки
використовується іншими об'єктами;
◦ агент - об'єкт, який може як впливати на інші об'єкти, так і
використовуватися ними. Агент створюється для виконання роботи
від імені актора або іншого агента.
3
Andrey Gladky
KspDevelop@gmail.com
Типи відношень між класами
4
Andrey Gladky
KspDevelop@gmail.com
Відношення
АсоціаціїУзагальнення Реалізації Залежності
Бінарна N-нарна Агрегації
Композиції
Типи відношень між класами
 Відношення узагальнення - спадкування. Це відношення
добре розглядається в кожному підручнику якої-небудь ООП
мови.
5
Andrey Gladky
KspDevelop@gmail.com
Типи відношень між класами
 Асоціація
 Асоціація показує відносини між об'єктами-екземплярами
класу.
 Бінарна
 У модель додали клас «IdCard», що представляє
ідентифікаційну картку (пропуск) співробітника. Кожному
співробітнику може відповідати тільки одна ідентифікаційна
картка, потужність зв'язку 1 до 1.
 N-арна асоціація
 Уявімо, що в організації покладено закріплювати за
працівниками приміщення. Додаємо новий клас Room.
 Кожному об'єкти працівник (Employee) може відповідати
декілька робочих приміщень. Потужність зв'язку один-до-
багатьох.
6
Andrey Gladky
KspDevelop@gmail.com
 Бінарна асоціація
7
Andrey Gladky
KspDevelop@gmail.com
 N-арна асоціація
8
Andrey Gladky
KspDevelop@gmail.com
Типи відношень між класами
 Асоціація
 Агрегація.
Введемо в модель клас Department (відділ) - наше підприємство
структуровано по відділах. У кожному відділі може працювати
одна або більше осіб. Можна сказати, що відділ включає в себе
одного або більше співробітників і таким чином їх агрегує.
9
Andrey Gladky
KspDevelop@gmail.com
 Агрегація
10
Andrey Gladky
KspDevelop@gmail.com
Типи відношень між класами
 Агрегація.
 Композиція
 Припустимо, що однією з вимог до нашої системи є вимога про
те, щоб зберігати дані про колишню займаної посади на
підприємстві.
 Введемо новий клас «pastPosition». У нього, крім властивості
«ім'я» (name), введемо і властивість «department», яке зв'яже
його з класом «Department».
 Дані про минулі займаних посадах є частиною даних про
співробітника, таким чином між ними зв'язок ціле-частина і в
той же час, дані про минулі посадах не можуть існувати без
об'єкта типу «Employee». Знищення об'єкту «Employee» має
призвести до знищення об'єктів «pastPosition».
11
Andrey Gladky
KspDevelop@gmail.com
 Агрегація. Композиція
12
Andrey Gladky
KspDevelop@gmail.com
Типи відношень між класами
 Залежність
 Для організації діалогу з користувачем введемо в систему клас
«Menu». Вбудуємо один метод «showEmployees», який показує
список співробітників та їх посади. Параметром для методу є
масив об'єктів «Employee». Таким чином, зміни внесені в клас
«Employee» можуть зажадати і зміни класу «Menu».
 Зауважимо, що клас «Menu» не відноситься до прикладної
області, а являє собою «системний» клас уявної програми.
13
Andrey Gladky
KspDevelop@gmail.com
 Залежність
14
Andrey Gladky
KspDevelop@gmail.com
Історія розвитку мови UML
15
Andrey Gladky
KspDevelop@gmail.com

More Related Content

Viewers also liked

Viewers also liked (12)

Uml module 6
Uml module 6Uml module 6
Uml module 6
 
System programing module 2
System programing module 2System programing module 2
System programing module 2
 
Wcf module 3.7
Wcf module 3.7Wcf module 3.7
Wcf module 3.7
 
Net framework і c# module 13
Net framework і c# module 13Net framework і c# module 13
Net framework і c# module 13
 
Net framework і c# module 9
Net framework і c# module 9Net framework і c# module 9
Net framework і c# module 9
 
Net framework і c# module 3
Net framework і c# module 3Net framework і c# module 3
Net framework і c# module 3
 
Net framework і c# module 8
Net framework і c# module 8Net framework і c# module 8
Net framework і c# module 8
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
 
Module 4 1
Module 4 1Module 4 1
Module 4 1
 
Module 2.1
Module 2.1Module 2.1
Module 2.1
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
 

Similar to Uml module 1_new

Similar to Uml module 1_new (6)

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
 
Lection 2
Lection 2Lection 2
Lection 2
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 

More from Andrii Hladkyi

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. SerializationAndrii Hladkyi
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsAndrii Hladkyi
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorAndrii Hladkyi
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. ThreadsAndrii Hladkyi
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. ProcessesAndrii Hladkyi
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsAndrii Hladkyi
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsAndrii Hladkyi
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesAndrii Hladkyi
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOPAndrii Hladkyi
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Andrii Hladkyi
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+Andrii Hladkyi
 

More from Andrii Hladkyi (20)

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. Serialization
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, Abstractions
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage Collector
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. Generics
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, Events
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. Interfaces
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
 
Win api module_6.2
Win api module_6.2Win api module_6.2
Win api module_6.2
 

Uml module 1_new

  • 1. ООП з використанням UML (Unified Modeling Language) Модуль 1
  • 2. Класи і об’єкти  Відношення між об’єктами  У полі зору розробника ПЗ знаходяться не об'єкти- одинаки, а взаємодіючі об'єкти, адже саме взаємодія об'єктів реалізує поведінку системи. У Г. Буча є відмінна цитата з Галла: «Літак - це набір елементів, кожен з яких за своєю природою прагне впасти на землю, але ціною спільних безперервних зусиль долає цю тенденцію» [22]. Відносини між парою об'єктів ґрунтуються на взаємній інформації про дозволені операції і очікуваній поведінці. Особливо цікаві два види відносин між об'єктами: зв'язки і агрегація. 2 Andrey Gladky KspDevelop@gmail.com
  • 3. Типи відношень між об’єктами  Зв’язки  Зв'язок - це фізичне або понятійне з'єднання між об'єктами. Об'єкт співпрацює з іншими об'єктами через механізми зв'язку. Зв'язок позначає з'єднання, за допомогою якого:  об'єкт-клієнт викликає операції об'єкта-постачальника;  один об'єкт переміщує дані до іншого об'єкта.  Як учасник зв'язку об'єкт може грати одну з трьох ролей: ◦ актор - об'єкт, який може впливати на інші об'єкти, але ніколи не схильний до дії інших об'єктів; ◦ сервер - об'єкт, який ніколи не впливає на інші об'єкти, він тільки використовується іншими об'єктами; ◦ агент - об'єкт, який може як впливати на інші об'єкти, так і використовуватися ними. Агент створюється для виконання роботи від імені актора або іншого агента. 3 Andrey Gladky KspDevelop@gmail.com
  • 4. Типи відношень між класами 4 Andrey Gladky KspDevelop@gmail.com Відношення АсоціаціїУзагальнення Реалізації Залежності Бінарна N-нарна Агрегації Композиції
  • 5. Типи відношень між класами  Відношення узагальнення - спадкування. Це відношення добре розглядається в кожному підручнику якої-небудь ООП мови. 5 Andrey Gladky KspDevelop@gmail.com
  • 6. Типи відношень між класами  Асоціація  Асоціація показує відносини між об'єктами-екземплярами класу.  Бінарна  У модель додали клас «IdCard», що представляє ідентифікаційну картку (пропуск) співробітника. Кожному співробітнику може відповідати тільки одна ідентифікаційна картка, потужність зв'язку 1 до 1.  N-арна асоціація  Уявімо, що в організації покладено закріплювати за працівниками приміщення. Додаємо новий клас Room.  Кожному об'єкти працівник (Employee) може відповідати декілька робочих приміщень. Потужність зв'язку один-до- багатьох. 6 Andrey Gladky KspDevelop@gmail.com
  • 8.  N-арна асоціація 8 Andrey Gladky KspDevelop@gmail.com
  • 9. Типи відношень між класами  Асоціація  Агрегація. Введемо в модель клас Department (відділ) - наше підприємство структуровано по відділах. У кожному відділі може працювати одна або більше осіб. Можна сказати, що відділ включає в себе одного або більше співробітників і таким чином їх агрегує. 9 Andrey Gladky KspDevelop@gmail.com
  • 11. Типи відношень між класами  Агрегація.  Композиція  Припустимо, що однією з вимог до нашої системи є вимога про те, щоб зберігати дані про колишню займаної посади на підприємстві.  Введемо новий клас «pastPosition». У нього, крім властивості «ім'я» (name), введемо і властивість «department», яке зв'яже його з класом «Department».  Дані про минулі займаних посадах є частиною даних про співробітника, таким чином між ними зв'язок ціле-частина і в той же час, дані про минулі посадах не можуть існувати без об'єкта типу «Employee». Знищення об'єкту «Employee» має призвести до знищення об'єктів «pastPosition». 11 Andrey Gladky KspDevelop@gmail.com
  • 13. Типи відношень між класами  Залежність  Для організації діалогу з користувачем введемо в систему клас «Menu». Вбудуємо один метод «showEmployees», який показує список співробітників та їх посади. Параметром для методу є масив об'єктів «Employee». Таким чином, зміни внесені в клас «Employee» можуть зажадати і зміни класу «Menu».  Зауважимо, що клас «Menu» не відноситься до прикладної області, а являє собою «системний» клас уявної програми. 13 Andrey Gladky KspDevelop@gmail.com
  • 15. Історія розвитку мови UML 15 Andrey Gladky KspDevelop@gmail.com