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

20.4.1. Послідовні підстани

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

Для прикладу розглянемо звичайний телефонний апарат. Він може знаходитися в різних станах, одним з яких є стан дозвону до абонента. Очевидно, для того, щоб подзвонити, необхідно зняти телефонну трубку, почути тоновий сигнал, після чого набрати потрібний телефонний номер. Таким чином, стан дозвону до абонента є складеним і складається з двох послідовних підстанів: "підняти телефонну трубку" і "набрати телефонний номер". Фрагмент діаграми станів для цього прикладу містить один складений стан і два послідовних підстанів (рис. 20.7).

Рис. 20.7. Приклад складеного стану з двома вкладеними послідовними підстанами

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

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

Це можна пояснити таким чином. Кожна сукупність вкладених послідовних підстанів є підавтоматом того автомата, якому належить даний складений стан. Оскільки кожний автомат може мати за визначенням єдиний початковий і єдиний кінцевий стани, то для підавтомата ця умова також повинна виконуватися (рис. 20.7).

20.4.2. Паралельні підстани

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

Проте окремі паралельні підстани можуть, у свою чергу, складатися з декількох послідовних підстанів (підавтомати 1 і 2 на рис. 20.8). В цьому випадку за визначенням об'єкт може знаходитися тільки в одному з послідовних підстанів підавтомата. Таким чином, для абстрактного прикладу (рис. 20.8) допустиме одночасне знаходження об'єкту в підстанах (1, 3, 4) (2, 3, 4) (1, 3, 5) (2, 3, 5). Неприпустимо знаходження об'єкту одночасне в підстанах (1, 2, 3) або (3, 4, 5).

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

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

Якщо який-небудь з підавтоматів прийшов в свій кінцевий стан раніше інших, то він повинен чекати, поки й інші підавтомати не прийдуть в свої кінцеві стани.

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

Рис. 20.9. Складений стан з прихованою внутрішньою структурою й спеціальною піктограмою