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 (8)

System programing module 1
System programing module 1System programing module 1
System programing module 1
 
System programing module 2
System programing module 2System programing module 2
System programing module 2
 
Uml module 6
Uml module 6Uml module 6
Uml module 6
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
 
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
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1Andrii 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_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
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
 

Uml module 1

  • 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