Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

PrIS

.pdf
Скачиваний:
55
Добавлен:
07.12.2018
Размер:
7.24 Mб
Скачать

451

частини в ліву). Тому для такого стану доцільно додати відповідну піктограму (як на рис. 21.2).

Перетворити рівняння до канонічного вигляду

Обчислити дискримінант

Символ

Дискримінант >=0

розгалуження

 

Дискримінант <0

Знайти корінь (корені)

квадратного рівняння

Рис. 21.3. Фраґмент діаграми діяльності для алгоритму знаходження кореня квадратного рівняння.

У наступному прикладі (рис. 21.4) розраховується загальна вартість товарів, що купуються за кредитною карткою у супермаркеті. Якщо ця вартість перевищує $50, то виконується аутентифікація особи власника картки. У разі позитивної перевірки (картка дійсна) або якщо вартість товарів не перевищує $50, відбувається зняття суми з рахунку і оплата вартості товарів. Якщо результат негативний (картка недійсна), оплата не відбувається, і товар залишається у продавця.

Примітка

Як видно з рисунку 21.4, допускається використовувати замість сторожової умови слово "інакше", вказуючи на той перехід, який повинен спрацювати у разі невиконання сторожової умови розгалуження.

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

452

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

Рис. 21.4. Різні варіанти розгалужень на діаграмі діяльності.

Як правило, така риска зображається відрізком горизонтальної лінії, товщина якої дещо більша за основні суцільні лінії діаграми діяльності. При цьому розділення (concurrent fork) має один вхідний перехід і декілька вихідних (рис. 21.5, а). Злиття (concurrent join), навпаки, має декілька вхідних переходів і один вихідний (рис. 21.5, б).

Для ілюстрації особливостей паралельних процесів виконання дій розглянемо приклад з приготуванням напою. Цей приклад практично не вимагає жодних додаткових пояснень через свою очевидність (рис. 21.6).

453

Рис. 21.5. Графічне зображення розділення і злиття паралельних потоків керування.

454

Рис. 21.6. Діаграма діяльності для прикладу з приготуванням напою.

Примітка

455

Наявність паралельності полягає в тому, що ми можемо шукати філіжанку під час приготування кави. Втім, оскільки вибір конкретних напоїв залишається за читачем, розроблення відповідної діаграми діяльності може бути запропоноване як вправа.

Отже, діаграма діяльності є не що інше, як спеціальний випадок діаграми станів, в якій всі або більшість станів є діями або станами піддіяльності. А всі або більшість переходів є нетриґерними переходами, які спрацьовують після закінчення дій або піддіяльностей у станахджерелах.

21.3. Доріжки

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

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

Назви підрозділів явно вказуються у верхній частині доріжки. Перетинати лінію доріжки можуть тільки переходи, які в цьому випадку позначають вихід або вхід потоку керування у відповідний підрозділ компанії. Порядок проходження доріжок не несе якої-небудь семантичної інформації і визначається міркуваннями зручності.

Як приклад розглянемо фраґмент діаграми діяльності торговельної компанії, яка обслуговує клієнтів за замовленнями телефоном. Підрозділами компанії є відділ приймання і оформлення замовлень, відділ продажу і склад.

Цим підрозділам відповідатимуть три доріжки на діаграмі діяльності, кожна з яких специфікує зону відповідальності підрозділу. У цьому випадку діаграма діяльності містить не тільки інформацію про

456

послідовність виконання робочих дій, але і про те, який з підрозділів торговельної компанії повинен виконувати ту або іншу дію (рис. 21.8).

Рис. 21.7. Варіант діаграми діяльності з доріжками.

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

457

Рис. 21.8. Фраґмент діаграми діяльності для торговельної компанії.

21.4.Об'єкти на діаграмі діяльностей

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

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

458

Відповідна залежність визначає стан конкретного об'єкту після виконання попередньої дії.

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

Повертаючись до попереднього прикладу з торговельною компанією, можна відзначити, що центральним об'єктом процесу продажу є замовлення або, точніше, стан його виконання. Спочатку до дзвінка від клієнта, замовлення як об'єкт відсутнє, і виникає лише після такого дзвінка. Проте це замовлення ще не заповнене до кінця, оскільки треба ще підібрати конкретний товар у відділі продажу. Після його підготовки замовлення передається на склад, де одночасно з відвантаженням товару остаточно дооформляється. Нарешті, після отримання підтвердження про оплату товару інформація про це заноситься у замовлення, і воно вважається виконаним і закритим. Така інформація може подаватися графічно у вигляді модифікованого варіанту діаграми діяльності цієї торгової компанії (рис. 21.9).

Примітка

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

На закінчення зупинимося на необхідності синхронізації окремих дій на діаграмі діяльності. Така необхідність виникає завжди, коли дії, що виконуються паралельно, впливають одна на одну. Якщо пригадати матеріал розділу 20, то стосовно діаграми станів з цією метою застосовувався спеціальний псевдостан – синхронізаційний стан. На діаграмі діяльності жодних додаткових позначень не використовують, оскільки синхронізація паралельних процесів може бути реалізована за допомогою переходів "розділення-злиття".

 

459

 

Відділ приймання і

 

оформлення

Відділ продажу

Склад

замовлень

 

 

Прийняти

 

 

замовлення

 

 

на товар

 

 

Замовлення

 

 

(отримано)

 

Отримати

Підібрати

Замовлення

товар

підготовлене

оплату за

 

 

товар

Замовлення

Відвантажити

 

 

(оформлене)

 

товар

 

 

Замовлення

Підготувати товар

 

(виконано)

 

до відсилання

 

 

 

Відіслати

 

 

товар клієнту

 

 

Рис. 21.9. Фраґмент діаграми діяльності торговельної компанії з

 

об'єктом-замовленням.

 

Як приклад розглянемо спрощену ситуацію з моделюванням

процесу спорудження будинку (див. розділ 20). Нагадаємо, що у цьому

прикладі спорудження будинку включає будівельні роботи (зведення

фундаменту і стін, зведення даху і внутрішні роботи), роботи з

електрифікації будинку (підведення електричної лінії, прокладання

прихованої електромережі і встановлення освітлювальних ламп).

Синхронізація паралельного виконання цього комплексу робіт може бути

явно вказана на діаграмі діяльності (рис. 21.10).

 

460

Рис. 21.10. Діаграма діяльності із синхронізацією паралельних дій.

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

Втім, деякі зі станів можуть бути і простими станами дії, у випадку якщо відповідна робота перетворюється на виконання елементарної дії, що не розкладається на окремі операції або прийоми.

21.5. Рекомендації до побудови діаграм діяльності