Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Унифицированный язык моделирования (Unified Mod...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.06 Mб
Скачать

Нотация

Детализация состояния показывает его точную структуру. В дополнение к секциям (необязательным) названия и внутреннего перехода, состояние может иметь секцию включающую область, содержащую вложенную диаграмму. В целях удобства и красоты, текстовые секции могут быть сокращены по горизонтали внутри графической области.

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

Детализация состояния на разобщенные подсостояния изображается показом вложенной диаграммы состояний в графической области.

Начальное (псевдо) состояние показывается как маленький, полностью залитый, круг. В конечном автомате верхнего уровня переход из начального состояния может помечаться создающим объект событием; иначе он не должен помечаться. Отсутствие пометки означает переход к составному состоянию. Начальный переход может иметь действие. Начальное состояние - условный символ; объект не может находиться в таком состоянии, а должен перейти в реальное состояние.

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

Пример

Рисунок 41. Последовательные подсостояния

Рисунок 42. Параллельные подсостояния

События Семантика

Событие - заслуживающее внимание происшествие. Для практических целей на диаграммах состояний оно является происшествием, вызывающим переход состояния. События могут быть нескольких видов (необязательно взаимно исключающих друг друга):

выделенное условие становится истинным (обычно описывается как логическое выражение). Это - Событие Изменения. Оно описывается ключевым словом when с последующим логическим выражением в круглых скобках. Событие происходит, когда значение выражения изменяется с ложного на истинное. Заметим, что оно отличается от условия защиты: Условие защиты вычисляется одновременно с возникновением его сообщения; если оно ложно, то переход не происходит и сообщение теряется. Например: when(баланс < 0).

получение явного сигнала одним объектом от другого. Это - Событие Сигнал. Оно описывается сигнатурой события, как условием инициирования, на переходе.

получение объектом запроса операции. Это - Событие Вызов. Оно описывается сигнатурой операции, как условием инициирования, на переходе. Визуальных отличий от события сигнала нет; предполагается, что они различаются по названиям.

завершение назначенного периода времени после выделенного события (часто наступления текущего состоянием) или наступление заданных даты/времени. Это - Событие Времени. Оно описывается временным выражением, как условием инициирования, на переходе. Одним из распространенных временных выражений является отсчет времени от момента наступления текущего состояния; что описывается ключевым словом after с последующим количеством времени в круглых скобках. Например: after (10 seconds).

Объявление события имеет область действия внутри пакета, в котором оно возникает, и может использоваться в диаграммах состояния для классов, которые видимы в пакете. Событие не является локальным для класса.