137
переменной,
запись блока данных в файл, посылка сигнала и т. д. В
UML предусмотрено несколько типов действий, похожих по
семантике на действия в наиболее
распространенных языках
программирования.
Однако
UML
не
является
языком
программирования и, тем самым, не претендует на то,
чтобы быть
универсальным языком описания действий. Поэтому понятие
действия в UML сознательно недоопределено — оставлена свобода,
необходимая инструментам для непротиворечивого расширения
семантики действий UML до семантики
действий конкретного языка
программирования.
Здесь,
в
контексте
обсуждения
машины
состояний UML, стоит подчеркнуть два обстоятельства.
Действие является атомарным и непрерываемым. При
выполнении действия на переходе или в состоянии не могут
происходить события, прерывающие выполнение действия.
Точнее
говоря, событие может произойти, но система обязана задержать его
обработку до окончания выполнения действия.
Действие является безальтернативным и завершаемым. Раз
начавшись, действие выполняется до конца.
Оно не может
"раздумать" выполняться или выполняться неопределенно долго.
Действия являются важнейшей частью описания поведения с
помощью конечных автоматов. В UML действия,
составляющие
процедуру реакции, фактически ничем не ограничены: в так
называемых не интерпретируемых действиях могут быть скрыты,
например,
любые
программистские
трюки.
Более
того,
последовательность действий на переходе также является действием.
(Синтаксически,
действия
в
последовательности
Do'stlaringiz bilan baham: