OpenU.Ru
На диаграмме деятельности или последовательности место в конечном автомате,
в котором сходятся два или более маршрутов управления. Слияние обратно разветвлению.
Антоним: branch.
См. junction state.
Семантика
Слияние - это соединение двух или более маршрутов управления. В конечном автомате у одного состояния есть несколько входящих переходов. Для того чтобы изобразить слияние, не требуется никаких специальных модельных конструкций. Если слияние является частью одного непрерывного маршрута, то его моделируют в виде переходного состояния.
Нотация
На диаграммах состояний, деятельности или последовательности слияние изображается
в виде ромба с несколькими входящими и одним исходящим переходом. Сторожевые
условия в данном случае не нужны. Пример слияния показан на рис. 122.
Точно такой же ромб используется для изображения разветвления (обратного, но
смыслу). Впрочем, отличить их совсем несложно - у разветвления один входящий
и несколько исходящих переходов, причем у каждого из них есть сторожевое условие.
Допускается комбинация разветвления и слияния, однако она не очень удобна.
При этом у ромба будет несколько входящих и несколько помеченных исходящих переходов.
Следует помнить, что слияние существует исключительно для того, чтобы сделать
нотацию более удобной и наглядной. В принципе можно обходиться и без него -
никакой дополнительной информации оно не несет. Как правило, слияние используется
в паре с разветвлением.
Обсуждение
Необходимо четко различать два вида слияния - merge и join. Первое (merge)
используется при соединении двух и более альтернативных путей управления. При
выполнении будет выбран только один из этих путей. Синхронизация при этом не
требуется.
Второй вид слияния (join) указывает на соединение двух и более параллельных
путей управления. При выполнении будут работать все эти пути, а слияние произойдет
только после того, как все они достигнут исходного для слияния состояния.