OpenU.Ru
Символы-параметры, являющиеся сокращенной нотацией разнообразных образцов управления.
См. activity graph; collaboration;
state machine.
Нотация
Перечисленные ниже символы предназначаются для использования в диаграммах
деятельности, однако, при желании их можно включать и в диаграммы
состояния. Они не несут в себе ничего такого, что нельзя было бы выразить
с помощью основных символов, они просто заменяют собой некоторые образцы управления.
Разветвление. Разветвление - это ряд переходов, исходящих
из одного состояния, причем у одного из этих переходов всегда должно быть удовлетворено
сторожевое условие. Другими словами, когда наступает переключающее событие,
запускается только один из переходов. Сторожевые
условия представляют собой неотъемлемую часть разветвления управления. Если
переход является переходом по завершении, то разветвление будет наиболее оптимальным
проектным решением. Для удобства одно из выходных условий разветвления может
быть помечено ключевым словом else. Этот маршрут будет
использоваться в том случае, если не будет выбран никакой другой маршрут.
Разветвление изображается в виде ромба с одной входящей и двумя или более выходящими
стрелками. Стрелка входящего перехода помечается переключающим событием (если
таковое имеется). У каждого исходящего перехода есть свое сторожевое условие
(рис. 78).
Слияние. Слияние - это место, в котором сходятся два
или несколько возможных маршрута управления. Слияние обратно разветвлению. И
слияние, и разветвление изображаются на диаграмме с помощыо ромба, однако их
легко отличить - у ромба-слияния несколько входящих стрелок, а выходящая только
одна (рис. 78). Строгой необходимости в слияниях нет (множественные переходы,
которые входят в одно и то же состояние, представляют собой слияние), но на
диаграмме с их помощью удобно визуально изображать последствия предыдущего разветвления.
Рис. 78. Разветвление и слияние
Прием сигнала. Прием сигнала изображается в виде вогнутого
пятиугольника (прямоугольник, у которого в одну из сторон врезан треугольник).
Сигнатура сигнала находится внутри этого символа. Одна непомеченная стрелка
перехода идет от предыдущего состояния действия к пятиугольнику, а другая идет
уже от него - к следующему состоянию действия. Символ приема сигнала заменяет
собой метку сигнала, стоящую у перехода, который происходит и запускается при
завершении предыдущей деятельности (рис. 79). Кроме этого, от символа объекта
к выемке пятиугольника можно провести пунктирную стрелку, которая будет изображать
отправителя сигнала.
Рис. 79. Прием сигнала
Отправка сигнала. Отправку сигнала можно изобразить в виде выпуклого пятиугольника
(у которого к одной из сторон присоединен треугольник). Сигнатура сигнала находится
внутри этого символа. Одна непомеченная ничем стрелка перехода идет от предыдущего
состояния действия к пятиугольнику, а другая идет уже от него - к следующему
состоянию действия. Символ отправки сигнала заменяет собой метку отправки сигнала,
стоящую у перехода (рис. 80). Кроме этого, от вершины бокового треугольника
к символу объекта можно провести пунктирную стрелку, которая будет изображать
получателя сигнала.
Рис. 80. Отправка сигнала
Пример
На рис. 81 изображены две деятельности - EnterCreditCardData (ВнестиДеньгиСКредитнойКарты)
и ChargeCard (СнятьДеныи). После их завершения процесс переходит на следующую
ступень. По завершении деятельности EnterCreclitCardData наблюдается разветвление:
если запрошенная сумма превышает 25 долларов, нужна авторизация. В creditCenter
(Кредитный центр) отправляется request (запрос), В простом конечном автомате
это было бы показано в виде действия, прикрепленного к переходу, исходящему
из деятельности EnterCredit-CardData, что, но сути, представляет собой одно
и то же. AwaitAuthorization (ОжиданиеАвторизации) - это реальное состояние ожидания,
а не внутренняя деятельность. Этому состоянию необходим внешний сигнал из Кредитного
центра - authorize (авторизовать). Когда поступает этот сигнал, запускается
обычный переход и система начинает деятельность ChargeCard. Переключающее событие
можно было бы быть изобразить в виде метки на переходе от AwaitAuthorization
к ChargeCard. Просто это еще один вариант нотации, который несет в себе ту же
самую информацию.
На рис. 82 изображен тот же самый пример, однако без специальных символов управления.
Рис. 81. Диаграмма деятельности, на которой изображены отправка и прием сигналов
Рис. 82.