- вивчення діаграм пакетів, діаграми компонентів і діаграми розміщення,
- вивчення їх застосування в процесі проектування.
Діаграми пакетів (package diagrams)
Один з найважливіших питань методології створення програмного забезпечення - як розбити велику систему на невеликі підсистеми? Саме з цієї точки зору зміни, пов'язані з переходом від структурного підходу до об'єктно-орієнтованого, є найбільш помітними. Одна з ідей полягає в угрупованні класів в компоненти більш високого рівня. В UML такий механізм угруповання носить назву пакетів (package).
Діаграмою пакетів є діаграма, що містить пакети класів і залежності між ними. Строго кажучи, пакети і залежності є елементами діаграми класів, т. Е. Діаграма пакетів - це всього лише форма діаграми класів. Однак на практиці причини побудови таких діаграм різні.
Залежність між двома елементами має місце в тому випадку, якщо зміни у визначенні одного елемента можуть спричинити за собою зміну в іншому. Що стосується класів, то причини залежностей можуть бути самими різними: один клас посилає повідомлення іншому; один клас включає частину даних іншого класу; один клас посилається на інший як на параметр операції. Якщо клас змінює свій інтерфейс, то будь-яке повідомлення, яке він посилає, може стати неправильним.
В ідеальному випадку тільки зміни в інтерфейсі класу повинні впливати на інші класи. Мистецтво проектування великих систем включає в себе мінімізацію залежностей, яка знижує вплив змін і вимагає менше зусиль на їх внесення.
На рис. 14.1 ми маємо справу з класами предметної області, що моделюють діяльність організації і згрупованими в два пакети: «Клієнти» і «Замовлення».
Мал. 14.1. Класи предметної області, що моделюють діяльність організації
«Додаток збору замовлень» має залежності з обома пакетами предметної області. «Інтерфейс збору замовлень» має залежності з «Додатком збору замовлень» і «Бібліотекою GUI».
Залежність між двома пакетами існує в тому випадку, якщо є будь-яка залежність між будь-якими двома класами в пакетах. Наприклад, якщо будь-який клас в пакеті «Список розсилки» залежить від будь-якого класу в пакеті «Клієнти», то між відповідними пакетами існує залежність.
Пакети є життєво необхідним засобом для великих проектів. Їх слід використовувати в тих випадках, коли діаграма класів, що охоплює всю систему в цілому і розміщена на єдиному аркуші паперу формату А4, стає мають важко.
Пакети не дають відповіді на питання, яким чином можна зменшити кількість залежностей в системі, що розробляється, проте вони допомагають виділити ці залежності. Зведення до мінімуму кількості залежностей дозволяє знизити зв'язаність компонентів системи. Але евристичний підхід до цього процесу далекий від ідеалу.
Пакети особливо корисні при тестуванні. Кожен пакет при тестуванні може містити один або кілька тестових класів, за допомогою яких перевіряється поведінка пакета.
Діаграми компонентів (component diagrams)
Компоненти на діаграмі компонентів є фізичні модулі програмного коду (рис. 14.2). Зазвичай вони в точності відповідають пакетам на діаграмі пакетів (див. Рис. 14.1); таким чином, діаграма компонентів відображає виконання кожного пакету в системі.
Залежності між компонентами повинні збігатися з залежностями між пакетами. Ці залежності показують, яким чином одні компоненти взаємодіють з іншими. Напрямок цієї залежності показує рівень обізнаності про комунікації. Якщо на панелях інструментів діаграм розміщення відсутні деякі значки, то їх можна налаштувати викликавши діалогове вікно View / Toolbar / Configure / Toolbars / Component Diagrams
Таблиця 14.1.Опісаніе кнопок панелі інструментів діаграм компонентів Rational Rose
Діаграми розміщення (deployment diagrams)
Діаграма розміщення відображає фізичні взаємозв'язку між програмними і апаратними компонентами системи. Вона є хорошим засобом для того, щоб показати маршрути переміщення об'єктів і компонентів в розподіленої системі.
Кожен вузол на діаграмі розміщення являє собою певний тип обчислювального пристрою - в більшості випадків частина апаратури. Ця апаратура може бути простим пристроєм або датчиком, а може бути і великим комп'ютером.
На рис. 14.3 зображений персональний комп'ютер (ПК), пов'язаний з UNIX-сервером за допомогою протоколу TCP / IP. З'єднання між вузлами показують комунікаційні канали, за допомогою яких здійснюються системні взаємодії.
На практиці дані діаграми застосовуються не дуже часто. В цілому ці діаграми корисно застосовувати, щоб виділити особливі фізичні характеристики даної системи. У міру поширення розподілених систем важливість даних діаграм зростає.
Таблиця 14.2.Опісаніе кнопок панелі інструментів діаграм розміщення Rational Rosee
Проводити порівняння діаграм пакетів, компонентів і розміщення в загальному випадку безглуздо, так як ці діаграми не існують самі по собі, а є інтерпретацією деякої діаграми класів, для якої і доречно проводити порівняння з іншими діаграмами класів.
Діаграми пакетів містять один тип елементів - пакет і один тип зв'язків - залежність, тому чисельна оцінка для діаграми пакетів не настільки важлива, як для діаграми класів.
На рис. 14.4 зображена діаграма пакетів підсистеми «Служба зайнятості в рамках вузу» системи «Дистанційне навчання». Чисельна оцінка для неї дорівнює:
Діаграми компонентів і розміщення будуються і використовуються на етапі реалізації і супроводу, коли базова архітектура системи вже зазвичай визначена; тому вони однозначно виходять з діаграми класів і для них досить привести по одному прикладу.
На рис. 14.5 зображена діаграма компонентів, побудована на основі діаграми пакетів, зображеної на рис. 14.4. На рис. 14.6 зображена діаграма розміщення підсистеми «Служба зайнятості в рамках вузу». Оцінка для даної діаграми компонентів дорівнює:
Оцінка для діаграми розміщення дорівнює:
вправи
Вправа 1. Створення діаграми розміщення системи реєстрації
Розподілена конфігурація системи моделюється за допомогою діаграми розміщення. Її основні елементи:
- вузол (node) - обчислювальний ресурс (процесор або інший пристрій (дискова пам'ять, контролери різних пристроїв і т.д.). Для вузла можна задати виконуються на ньому процеси;
- з'єднання (connection) - канал взаємодії вузлів (мережа).
Приклад: мережева конфігурація системи реєстрації (без процесів) (рис. 14.7).
Розподіл процесів по вузлах мережі проводиться з урахуванням наступних факторів:
- використовувані зразки розподілу (трехзвенная клієнт - серверна конфігурація, «товстий» клієнт, «тонкий» клієнт, рівноправні вузли (peer-to-peer) і т.д.);
- час відгуку;
- мінімізація мережевого трафіку;
- потужність вузла;
- надійність обладнання і комунікацій. Приклад: розподіл процесів по вузлах (рис. 14.8).
14.8. Мережева конфігурація системи реєстрації з розподілом
Для того щоб відкрити діаграму розміщення, треба двічі клацнути мишею за поданням Deployment View (поданням розміщення) в браузері.
Для того щоб помістити на діаграму процесор:
- На панелі інструментів діаграми натисніть кнопку Processor.
- Клацніть по діаграмі розміщення в тому місці, куди хочете помістити процесор.
- Введіть ім'я процесора.
У специфікаціях процесора можна ввести інформацію про його стереотипі, характеристиках і плануванні. Стереотипи застосовуються для класифікації процесорів (наприклад, когось п'ютер під управлінням UNIX або ПК). Характеристики процесора - це його фізичний опис. Воно може, зокрема, включати швидкість процесора і об'єм пам'яті.
Поле планування (scheduling) процесора містить опис того, як здійснюється планування його процесів
- Preemptive (з пріоритетом). Високопріоритетні процеси мають перевагу перед фонової.
- Non preemptive (без пріоритету). У процесів немає пріоритету. Поточний процес виконується до його завершення, після чого починається наступний.
- Cyclic (циклічний). Управління передається між процесами по колу. Кожному процесу дається певний час на його виконання, потім управління переходить до наступного процесу.
- Executive (виконавчий). Існує певний обчислювальний алгоритм, який і керує плануванням процесів.
- Manual (вручну). Процеси плануються користувачем.
Для того щоб призначити процесору стереотип.
- Відкрийте вікно специфікації процесора.
- Перейдіть на вкладку General.
- Введіть стереотип в поле Stereotype.
Для введення характеристик і планування процесора
- Відкрийте вікно специфікації процесора.
- Перейдіть на вкладку Detail.
- Введіть характеристики в поле характеристик.
- Вкажіть один з типів планування.
Для того щоб показати планування на діаграмі:
- Клацніть правою кнопкою миші по процесору.
- Виберіть пункт Show Scheduling в меню.
Для того щоб додати зв'язок на діаграму:
- На панелі інструментів натисніть кнопку Connection.
- Клацніть по вузлу діаграми.
- Проведіть лінію зв'язку до іншого вузла.
Для того щоб призначити зв'язку стереотипу:
- Відкрийте вікно специфікації зв'язку.
- Перейдіть на вкладку General.
- Введіть стереотип в поле Stereotype (Стереотип).
Для того щоб додати процес:
- Клацніть правою кнопкою миші по процесору в браузері.
- Виберіть пункт New> Process в меню.
- Введіть ім'я нового процесу.
Для того щоб показати процеси на діаграмі:
- Клацніть правою кнопкою миші по процесору.
- Виберіть пункт Show Processes в меню.
Контрольні питання
- Яку проблему проектування покликані вирішити діаграми пакетів?
- У чому відмінність діаграм пакетів від діаграм класів?
- У чому сенс залежності між елементами діаграми пакетів?
- Що таке інтерфейс класу?
- За якими ознаками класи групуються в пакети?
- Які види елементів моделі представлені на діаграмі компонентів?
- Як пов'язані між собою діаграми пакетів і діаграми компонентів?
- Що показує діаграма розміщення?
- Які суті .отображаются на діаграмах-розміщення?
- 10. У яких випадках необхідне застосування діаграм розміщення?