Методы композиции и декомпозиции исполняемых UML моделей


Выделение составного состояния по общему возвратному переходу


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

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

Предлагаемая трансформация выполняется во многом аналогично предыдущей. На первом шаге выделяется множество состояний A1…An автомата S, для каждого из которых существует переход Ti, обладающий следующими свойствами: он срабатывает при условии t, в нем выполняются действия act, и после его завершения автомат возвращается в исходное состояние Ai. К автомату S добавляется новое составное состояние B, содержащее состояния A1…An, а для спецификации состояния В создается отдельная диаграмма D. К автомату S добавляется переход T из состояния B по стимулу t, выполняющий действия act и завершающийся оператором перехода в состояние истории (deep history state). Если у множества состояний A1…An имеется только одна входная точка A1, то возможно дальнейшее преобразование автомата. Все операторы перехода в состояние A1 заменяются операторами перехода в состояние В, а к состоянию В добавляется стартовый переход, ведущий в состояние A1.


Начало  Назад  Вперед



Книжный магазин