ООП з використанням 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

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
  • 7.
  • 8.
     N-арна асоціація 8 AndreyGladky KspDevelop@gmail.com
  • 9.
    Типи відношень міжкласами  Асоціація  Агрегація. Введемо в модель клас Department (відділ) - наше підприємство структуровано по відділах. У кожному відділі може працювати одна або більше осіб. Можна сказати, що відділ включає в себе одного або більше співробітників і таким чином їх агрегує. 9 Andrey Gladky KspDevelop@gmail.com
  • 10.
  • 11.
    Типи відношень міжкласами  Агрегація.  Композиція  Припустимо, що однією з вимог до нашої системи є вимога про те, щоб зберігати дані про колишню займаної посади на підприємстві.  Введемо новий клас «pastPosition». У нього, крім властивості «ім'я» (name), введемо і властивість «department», яке зв'яже його з класом «Department».  Дані про минулі займаних посадах є частиною даних про співробітника, таким чином між ними зв'язок ціле-частина і в той же час, дані про минулі посадах не можуть існувати без об'єкта типу «Employee». Знищення об'єкту «Employee» має призвести до знищення об'єктів «pastPosition». 11 Andrey Gladky KspDevelop@gmail.com
  • 12.
  • 13.
    Типи відношень міжкласами  Залежність  Для організації діалогу з користувачем введемо в систему клас «Menu». Вбудуємо один метод «showEmployees», який показує список співробітників та їх посади. Параметром для методу є масив об'єктів «Employee». Таким чином, зміни внесені в клас «Employee» можуть зажадати і зміни класу «Menu».  Зауважимо, що клас «Menu» не відноситься до прикладної області, а являє собою «системний» клас уявної програми. 13 Andrey Gladky KspDevelop@gmail.com
  • 14.
  • 15.
    Історія розвитку мовиUML 15 Andrey Gladky KspDevelop@gmail.com