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

20.6. Складні переходи

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

15.6.1. Переходи між паралельними станами

В окремих випадках перехід може мати декілька станів-джерел і декілька цільових станів. Такий перехід отримав спеціальну назву – паралельний перехід. Введення в розгляд паралельного переходу обумовлене необхідністю синхронізувати і/або розділити окремі підпроцеси на паралельне виконання без специфікації додаткової синхронізації в паралельних підавтоматах.

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

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

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

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

20.6.2. Переходи між складеними станами

Перехід, стрілка якого з’єднана з межею деякого складеного стану, позначає перехід у складений стан (перехід b на рис. 20.12). Він еквівалентний переходу в початковий стан кожного з підавтоматів (можливо, єдиному), що входять до складу даного суперстану. Перехід, що виходить зі складеного стану (переходи f і g на рис. 20.12), відноситься до кожного з вкладених підстанів. Це означає, що об'єкт може покинути складений суперстан, знаходячись в будь-якому з його підстанів. Для цього цілком достатньо виконання події і сторожової умови.

Рис. 20.12. Різні варіанти переходів в (із) складений стан

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