Об’єктно-орієнтоване проектування програмних систем. Послідовність розробки програмного продукту на основі об’єктноорієнтованого підходу, страница 12

(рис. 6.2). 

Рис. 6.1. Початкова ієрархія

Рис. 6.2. Включення класу до ієрархії з посередництвом шаблона Adapter 

Завдання

1.  В розробленій в попередніх лабораторних роботах програмній системі знайти можливі способи застосування шаблонів Facade та Adapter.

2.  Обґрунтувати доцільність такого застосування. 

3.  Реалізувати один з запропонованих способів програмно. 

До звіту включити:

1.  Конспективний виклад теоретичних відомостей, необхідних для виконання лабораторної роботи.

2.  Діаграми класів до та після застосування шаблонів Facade та Adapter. 

3.  Тексти програм, що реалізують розроблені класи.

4.  Висновки 

Лабораторна робота № 7  

Ознайомлення з програмним пакетом Rational Rose та розробка об’єктно-орієнтованих моделей на основі мови UML

Теоретичні відомості

Мова UML є візуальною мовою (яка використовує графічні елементи з літерними позначеннями), що призначена для створення моделей програм. Під моделями програм розуміється графічне представлення програм у виді різних діаграм, що відбивають зв'язки між об'єктами в програмному коді.

Мова UML включає кілька типів діаграм: одні з них призначені для проведення аналізу, інші — для проектування, треті — для цілей реалізації (чи,  більш точно, для розподілу програмного коду між об'єктами). Кожна діаграма відбиває ті чи інші зв'язки між різними наборами сутностей у залежності від її типу. 

Однієї з основних діаграм мови UML є діаграма класів. На рис. 7.1 представлено кілька можливих варіантів зображення класів мовою UML. Насамперед, кожен прямокутник тут відповідає визначеному класу. У мові UML представлення класу може включати до трьох елементів – ім'я класу, імена членів класу, імена методів класу.

 

Рис. 7.1. Представлення класів на UML-діаграмах

Засоби мови UML дозволяють контролювати доступ до членів і методів класів, Зокрема, для кожного існуючого члена класу можна вказати привласнений, йому рівень доступу. У більшості мов програмування прийняті три рівні доступу.  Public, (відкритий) — позначається знаком плюс (+), означає, що ці  дані чи методи можуть використовувати будь-які об'єкти. Protected (захищений) — позначається знаком номер (#), означає, що тільки даний клас і всі його нащадки (а також усі класи-нащадки, породжені від його нащадків) можуть одержувати доступ до цих  даних чи методів. Private (закритий) — позначається знаком мінус(-), означає, що тільки методи даного класу можуть одержувати доступ до цих  даних чи  методів. 

На діаграмі класів можна також вказати зв’язки між класами. На рис. 7.2 показано зв’язок типу "наслідування" між класом Shape кількома породженими від нього класами, а на рис. 7.3 – зв’язок типу застосування.

 

Рис. 7.2 Зв’язок типу "наслідування" на  UML-діаграмах

 

Рис. 7.3. Зв’язок типу "застосування" на  UML-діаграмах

Відношення типу "агрегація" та позначення потужності зв’язку представлено на рис. 7.4.

 

Рис. 7.4. Зв’язок типу "агрегація" та потужність зв’язків на  UML-діаграмах

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

Діаграми мови UML, що відбивають взаємодію об'єктів один з одним, одержали назву діаграм взаємодій. Найбільш розповсюдженим видом діаграм взаємодій є діаграма послідовностей, представлена на мал. 7.5. Діаграми послідовностей варто читати зверху вниз.

•  Кожен прямокутник у верхній частині діаграми представляє конкретний об'єкт.   Більшість   прямокутників   містить   імена   класів,   причому зверніть  увагу,   що  в  деяких  випадках   перед  ім'ям   класу  стоїть двокрапка. Інші прямокутники містять такі імена, як shape1: Square.

•  Прямокутники у верхній частині діаграми містять ім'я класу (праворуч від двокрапки) і, можливо, ім'я об'єкта (указується перед двокрапкою).