Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Самовчитель по UML.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
2.26 Mб
Скачать

6.4. Складовий стан і підстан

Складовий стан (composite state) – такий складний стан, який складається з інших вкладених в нього станів. Останні виступатимуть по відношенню до першого як підстани (substate). Хоча між ними має місце відношення композиції, графічно всі вершини діаграми, які відповідають вкладеним станам, зображаються усередині символу складового стану (мал. 6.6). В цьому випадку розміри графічного символу складового стану збільшуються, так щоб вміщати в себе всі підстани.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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