Ноу Інти, лекція, діаграма активностей крупним планом
Анотація: Діаграма активностей (або, як часто говорять, діаграма діяльності) - діаграма UML, що виглядає найбільш простий, оскільки нагадує звичну всім блок-схему. Насправді ж діаграма активності - це щось більше, ніж блок-схема, хоча цілі у них схожі: обидві вони відображають певний алгоритм. Ми вже зустрічалися з такими діаграмами в лекції "Види діаграм", а тепер розглянемо їх більш уважно. У цій лекції ми розглянемо такі питання: а адже це зовсім не блок-схема; приклади використання таких діаграм; поради з побудови діаграм активностей
Але ж це зовсім не блок-схема!
Як ми вже говорили, діаграми активностей (Activity Diagrams) є поданням алгоритмів деяких дій (активностей), що виконуються в системі. Ми вже знаємо, що нотація UML пропонує п'ять подань системи:
- Вид системи з точки зору прецедентів.
- Вид з точки зору проектування.
- Вид з точки зору процесів.
- Вид з точки зору розгортання.
- Вид з точки зору реалізації.
І при цьому кожен з перерахованих способів подання системи може містити послідовності дій, які можуть бути описані за допомогою алгоритмів. Ось тут-то і виходять на сцену діаграми діяльностей. Взагалі кажучи, будь-який елемент моделі, що має динамічну поведінку, може бути доповнений діаграмою діяльності - саме для уточнення цієї самої динаміки. Як добре підходить по контексту приклад слід згадати можливість застосування діаграм активності для опису бізнес-процесів, що існують в компанії (нотації Grapes-BM, BPML / BPMN і ін.). Ось вже де сама як там не є динаміка!
Можна побудувати кілька діаграм діяльності для однієї і тієї ж системи, причому кожна з них буде фокусуватися на різних аспектах системи, показувати різні дії, що виконуються всередині її. Новомосковсктель, звичайно ж, зрозумів, що, коли ми говоримо про динаміку. ми маємо на увазі поведінку системи в цілому або її частин. Говорячи більш формально, діаграми активності, в общем-то, не мають монополії на опис поведінкових особливостей динамічних частин системи. Для цієї ж мети можуть використовуватися ще діаграми прецедентів. послідовності, кооперації і станів. Чому ж ми говоримо саме про діаграмі активності? Ні, не тільки тому, що так називається ця лекція.
Саме на діаграмі діяльності представлені переходи потоку управління від однієї діяльності до іншої. Це, по суті, різновид діаграми станів, де всі або більша частина станів є деякими діяльностями, а все або більшість переходів спрацьовують при завершенні певної діяльності і дозволяють перейти до виконання наступної. Як ми вже говорили (повторення - мати навчання), діаграма діяльності може бути приєднана до будь-якого елементу моделі, що має динамічну поведінку. До речі, виходячи з вищесказаного, логічніше говорити не "діаграма діяльності", а "діаграма діяльностей" - у множині. А ще ми припускаємо, що Новомосковсктель розуміє сенс понять "діяльність", "перехід" і "об'єкт". Про об'єкти як про примірники класів ми вже говорили раніше. Поняття ж діяльності (activity) як протяжного в часі складеного (неатомарного) обчислення (дії, action) і переходу як передачі контролю, сподіваємося, зрозумілі інтуїтивно, без додаткових пояснень.
Діаграми діяльності дозволяють моделювати складний життєвий цикл об'єкта. з переходами з одного стану (діяльності) в інше. Але цей вид діаграм може бути використаний і для опису динаміки сукупності об'єктів. Вони застосовні і для деталізації деякої конкретної операції. причому, як ми побачимо далі, надають для цього більше можливостей, ніж "класична" блок-схема. Діаграми діяльності описують перехід від однієї діяльності до іншої. на відміну від діаграм взаємодії, де акцент робиться на переходах потоку управління від об'єкта до об'єкта.
Без пояснень зрозумілий також сенс символу, що передує прийняттю душа і співу і наступного за ними - він означає розпаралелювання. а потім знову злиття воєдино (синхронізацію) потоків управління, т. е. операції "спів" і "душ" виконуються одночасно. Нотація проста: кілька потоків управління зливаються в один або один потік розділяється на кілька. Третього не дано (рис. 4.3).
Звичайно, це не єдині відмінності діаграми активностей від блок-схеми. На діаграмі діяльностей можна не тільки показати паралельно виконувані дії, а й вказати стану об'єктів (так само, як і на уявленнях кінцевих автоматів, про які нам так багато говорили в університетах), також є можливість показувати розподіл ролей і т. Д. Ось ще приклад, що підтверджує, що діаграма активностей - це щось більше, ніж блок-схема (рис. 4.4).
Сенс діаграми цілком зрозумілий і без додаткових пояснень. Як ви вже, звичайно, здогадалися, на ній показано роботу з веб-додатком, яке вирішує якусь завдання у віддаленій базі даних. Привертає увагу дивне розташування активностей на цій діаграмі: вони як би розкидані по трьох бігових доріжках, кожна з яких відповідає поведінці одного з трьох об'єктів - клієнта, веб-сервера і сервера баз даних. Завдяки цьому легко визначити, яким з об'єктів виконується кожна з активностей, і несподівано приходить розуміння того, що "дивина" цієї діаграми, виявляється, дуже спрощує її сприйняття.
Аналогія з доріжками дійсно дуже вдала. Саме таке офіційна назва елемента нотації UML. що дозволяє вказати розподіл ролей на діаграмі активностей. Тільки доріжки це не бігові, а плавальні - вони так і називаються: swimlanes. Більш формально, доріжка - частина області діаграми діяльності, на якій відображаються тільки ті діяльності, за які відповідає конкретний об'єкт.
Призначені вони для розбиття діаграми відповідно до розподілу відповідальності за дії. Ім'я доріжки може означати роль або об'єкт. якому вона відповідає. При використанні доріжок нотація злегка змінюється. Ось як, наприклад, виглядає діаграма з попереднього прикладу, перемальована з використанням доріжок (рис. 4.5).