Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №5.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
298.47 Кб
Скачать

Композитные состояния.

С помощью кнопки Композитное состояние на диаграмму можно добавлять одноименные элементы (также называемые составными состояниями).

Композитное состояние обладает всеми свойствами обычных состояний. Помимо этого, оно может содержать другие состояния, называемые подсостояниями. Для добавления подсостояний можно перетаскивать их внутрь композитного состояния мышью или сразу создавать их в контейнере, кликая внутри области композитного состояния.

Вот так выглядит композитное состояние из двух подсостояний + псевдосостояний:

Рис.10. Пример композитного (составного) состояния.

Навигация по подсостояниям может осуществляться через элемент «Подвершины» окна свойств композитного состояния.

Композитные состояния часто применяют для описания подавтоматов. Однако композитное состояние может содержать как один, так и несколько параллельных подавтоматов. Обычно при описании параллельных последовательностей подсостояний композитное состояние разделяют на регионы пунктирной линией, но это не является обязательным и в ArgoUML не реализовано. Подсостояния могут быть вовсе не определены, если необходимо скрыть внутреннюю структуру композитного состояния (В ArgoUML композитное состояние, в котором не определены подсостояния, внешне не отличается от обычного состояния).

Исторические состояния

В силу разных причин выполнение композитного состояния может прерываться. Историческое состояние (history state) применяется в контексте композитного состояния. Оно используется для запоминания того из последовательных подсостояний, которое было текущим в момент выхода из композитного состояния. Существует две разновидности исторического состояния: недавнее (shallow) и давнее (deep).

Shallow history всегда является первым подсостоянием в композитном состоянии (переход извне всегда осуществляется в это состояние, оно же заменяет начальное псевдосостояние). При первом переходе в композитное состояние, историческое состояние всегда пусто, и выполняет роль начального (при этом начальное псевдосостояние все равно отображается на диаграмме). При всех последующих переходах, историческое состояние автоматически осуществляет переход в то подсостояние, которое было текущим в момент выхода из этого композитного состояния. При достижении конечного псевдосостояния композитным состоянием, историческое состояние обнуляется и снова будет выполнять роль начального псевдосостояния. Недавнее историческое состояние может запоминать только текущее подсостояние того автомата, к которому относится. При этом запомненное подсостояние, в свою очередь, может также быть композитным.

Deep history применяется для запоминания всех подсостояний любого уровня вложенности. Семантика аналогична недавнему историческому состоянию.

Следующая диаграмма показывает семантику исторического состояния. В данном примере композитное состояние «Обработка» может прерываться в подсостояниях «Проверка 1» и «Проверка 2». После возврата в состояние «Обработка» управление автоматически перейдет в то состояние, на котором обработка была прервана.

Рис.11. Пример использования исторического состояния.