Діаграма активності (діяльності, activity diagram)
Колись на уроках інформатики в школі ми малювали блок-схеми, щоб наочно зобразити алгоритм вирішення деякої задачі. Дійсно, моделюючи поведінку проектованої системи, часто недостатньо зобразити процес зміни її станів, а потрібно також розкрити деталі алгоритмічної реалізації операцій, що виконуються системою. Як ми вже говорили, для цієї мети традиційно використовувалися блок-схеми або структурні схеми алгоритмів. В UML для цього існують діаграми діяльності. є окремим випадком діаграм станів. Діаграми діяльності зручно застосовувати для візуалізації алгоритмів, за якими працюють операції класів.
Так, до речі, сподіваємося, ви пам'ятаєте, що таке алгоритм? Існує величезна кількість визначень цього поняття. Ось одне з них:
Алгоритм - послідовність певних дій або елементарних операцій, виконання яких призводить до отримання бажаного результату.
Алгоритми оточують нас всюди, хоч ми і рідко замислюємося про це. Згадайте кулінарні рецепти чи керівництва по експлуатації побутових приладів! Звичайно, вітчизняний споживач звик жити за принципом "якщо нічого не допомагає, прочитайте, нарешті, інструкцію", але факт залишається фактом: чим складніше пристрій або система, тим важливіше строго слідувати алгоритму.
Позначення на діаграмі активності також нагадують ті, які ми зустрічали на блок-схемі, хоча є, як ми побачимо далі, і деякі суттєві відмінності. З іншого боку, нотація діаграм активності дуже схожа на ту, яка використовується в діаграмах станів. Але, напевно, краще буде просто показати приклад (рис. 2.21):
Багато з нас саме так починають свій день, чи не так? Зверніть увагу на те, як зображено паралельне спів і прийняття душу, - на звичайній блок-схемі це було б неможливо! А ось ще приклад (рис. 2.22):
І знову все зрозуміло - це оформлення замовлення в інтернет-магазині! Ну і наостанок ще одна діаграма (рис. 2.23).
Здогадалися, що вона описує? Чи зможете відрізнити цей тип діаграм? Тоді пішли далі!
Діаграма розгортання (deployment diagram)
Коли ми пишемо програму, ми пишемо її для того, щоб запускати на комп'ютері, який має деяку апаратну конфігурацію і працює під управлінням певної операційної системи. Корпоративні додатки часто вимагають для своєї роботи деякої ІТ-інфраструктури. зберігають інформацію в базах даних, розташованих десь на серверах компанії, викликають веб-сервіси, використовують загальні ресурси і т. д. У таких випадках непогано б мати графічне представлення інфраструктури, на яку буде розгорнуто додаток. Ось для цього і потрібні діаграми розгортання. які іноді називають діаграмами розміщення.
Думаю, очевидно, що такі діаграми є сенс будувати тільки для апаратно-програмних систем. тоді як UML дозволяє будувати моделі будь-яких систем, не обов'язково комп'ютерних.
Яку користь можна отримати з діаграм розгортання? По-перше, графічне представлення ІТ-інфраструктури може помочьболее раціонально розподілити компоненти системи по вузлах мережі. від чого, як відомо, залежить в тому числі і продуктивність системи. По-друге, така діаграма може допомогти вирішити безліч допоміжних завдань. пов'язаних, наприклад, із забезпеченням безпеки.
Діаграма розгортання показує топологію системи і розподіл компонентів системи по її вузлів, а також сполуки - маршрути передачі інформації між апаратними вузлами. Це єдина діаграма, на якій застосовуються "тривимірні" позначення: вузли системи позначаються кубиками. Всі інші позначення в UML - плоскі фігури. Але наведемо приклад (рис. 2.24):
Думаємо, і без пояснень зрозуміло, що описує ця діаграма. А ось діаграма розгортання з великою кількістю вузлів (рис. 2.25).
І знову все зрозуміло! Це інфраструктура якогось навчального закладу, що включає шлюз, файл-сервер, принт-сервер, принтери в лабораторіях і холі і т. Д. Користувач (ймовірно, студент або викладач) може отримати доступ до цих ресурсів або зі своєї домашньої машини, або з робочих станцій, що знаходяться в лабораторіях вузу. Зверніть увагу на підписи під лініями, які показують лінії передачі інформації, наприклад, видно, що робоча станція отримує доступ до файлів, що зберігаються на файл-сервері, за допомогою NFS. Також хороша ідея - поруч з позначенням вузла перерахувати програмне забезпечення, встановлене на даному вузлі, як це зроблено, наприклад, для робочої станції.
А ще на діаграмах розгортання можна позначати компоненти системи, т. Е. Показувати їх розподіл по апаратним вузлів, але на цьому ми поки зупинятися не будемо: цих двох прикладів вже досить, щоб ви навчилися розпізнавати цей вид діаграм, адже правда?
Якщо так, то підемо далі.