Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектування інформаційних систем.doc
Скачиваний:
94
Добавлен:
21.09.2019
Размер:
28.77 Mб
Скачать

22.2.1. Розгалуження потоку керування

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

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

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

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

Умовою розгалуження може служити сума, що знімає клієнт зі свого поточного рахунку. Якщо ця сума перевищує $1000, то можуть знадобитися додаткові дії, пов'язані зі створенням і наступним руйнуванням об'єкта 4. Якщо ж сума перевищує $50, але не перевищує $1000, то керування передається об'єкту 3. І, нарешті, якщо сума не перевищує $50, то керування одержує об'єкт 2. При цьому об'єкти 1, 2 і 3 постійно існують у системі. Об'єкт 4 створюється, тільки якщо справедлива перша з альтернативних умов. В іншому випадку він може бути ніколи не створений. Після виконання необхідних дій об'єкти 2 і 3 просто інформують об'єкт 1 про завершення відповідних операцій, не вимагаючи від його ніяких дій (пунктирна стрілка). Об'єкт 4 після завершення своїх дій знищується, передаючи керування об'єкту 3, роблячи його активним (фокус керування).

22.2.2. Стереотипи повідомлень

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

  • "call" (викликати) – повідомлення, що викликає операції або процедури приймаючого об'єкта. Якщо повідомлення із цим стереотипом рефлексивне, то воно ініціює локальний виклик операції в самого об'єкта, що послав це повідомлення;

  • "return" (повернути) – повідомлення, що повертає значення виконаної операції або процедури об'єкту, що її викликав. Значення результату може ініціювати розгалуження потоку керування;

  • "create" (створити) – повідомлення, що вимагає створення іншого об'єкта для виконання певних дій. Створений об'єкт може одержати фокус керування, а може й не одержати його;

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

  • "send" (послати) – позначає посилання іншому об'єкту деякого сигналу, що асинхронно ініціюється одним об'єктом і приймається (перехоплюється) іншим. Відмінність сигналу від повідомлення полягає в тому, що сигнал повинен бути явно описаний у тому класі, об'єкт якого ініціює його передачу.

Нижче представлена діаграма послідовності для розглянутого вище випадку розгалуження, доповнена стереотипними значеннями (рис. 22.7).

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

Примітка

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

Рис. 22.7. Діаграма послідовності зі стереотипними значеннями повідомлень