Моделирования uml


H Illness fall ill get well 1


Download 1.84 Mb.
Pdf ko'rish
bet79/115
Sana16.06.2023
Hajmi1.84 Mb.
#1489923
1   ...   75   76   77   78   79   80   81   82   ...   115
Bog'liq
ivanov novikov unificirovannii jazik modelirovanija uml 2011

H
Illness
fall ill
get well
1
Рис. 4.8. Историческое состояние 
4.2.6. Вложенные машины состояний 
Если мы хотим описать на UML действительно сложное 
поведение, то мы должны иметь возможность сделать это по частям, 
используя принцип "разделяй и властвуй". И такая возможность в 
UML предусмотрена — это ссылочное состояние и состояния 
заглушки в UML 1, которым на смену в UML 2 пришел вложенный 
автомат с точками входа и выхода.
Эти механизмы похожи, но не тождественны. Мы изложим их в 
историческом порядке: сначала UML 1, потом UML 2. 
Ссылочное состояние (submachine state) — состояние, которое 
обозначает вложенный в него автомат.
На диаграмме ссылочное состояние изображается в виде фигуры 
простого состояния с именем, которому предшествует ключевое 


151
слово 
include
(1 на рис. 4.9). Семантика ссылочного состояния 
заключается в следующем. Если на диаграмме присутствует 
ссылочное состояние, то это означает, что в модели вместо 
ссылочного 
состояния 
присутствует 
составное 
состояние 
(и, соответственно, вложенный автомат), на которое делается ссылка. 
Таким образом, на одной диаграмме мы можем представить 
поведение, нарисовав его "крупными мазками", т. е. в терминах 
составных состояний верхнего уровня, а на других диаграммах 
раскрыть 
содержание 
составных 
состояний, 
нарисовав 
соответствующие автоматы и т. д. Критерий Дейкстры хорошего 
стиля программирования — "правильно написанный модуль должен 
помещаться на одной странице" — соблюдается. 
Прежде чем привести пример, поговорим о переходах между 
составными состояниями. Их можно подразделить на два типа: 
переходы "в" и "из" составных состояний (т. е. переходы
пересекающие 
границы 
составных 
состояний), 
и 
переходы, 
начинающиеся и заканчивающиеся на границах состояний. Вообще 
говоря, без переходов, пересекающих границы состояний, можно 
обойтись (равно как и без многого другого), но жаль упускать 
возможность. Если переход начинается и заканчивается на границе 
состояний, то вся работа вложенного автомата инкапсулирована в 
составном состоянии и никаких проблем нет — ссылочного состояния 
достаточно для включения одного автомата внутрь другого. Однако, 
если такие переходы есть (а мы договорились, что не хотим от них 
отказываться), то возникает проблема: грубо говоря, нам нужно 
провести стрелку с одной диаграммы на другую. Решением этой 
проблемы в UML 1 является состояние заглушки. 

Download 1.84 Mb.

Do'stlaringiz bilan baham:
1   ...   75   76   77   78   79   80   81   82   ...   115




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling