Моделирования uml


H Illness go(Illness) goBack() H*


Download 1.84 Mb.
Pdf ko'rish
bet112/115
Sana16.06.2023
Hajmi1.84 Mb.
#1489923
1   ...   107   108   109   110   111   112   113   114   115
Bog'liq
ivanov novikov unificirovannii jazik modelirovanija uml 2011

H
Illness
go(Illness)
goBack()
H*
Applicant
hire()
move()
Unemployed
hire()
fire()
4
1
2
3
5
6
Рис. 4.48. Составные переходы 
Поведение машин состояний в параллельных областях 
составного состояния 
Employed
на диаграммах рис. 4.47 и рис. 4.48 
независимо — каждая из групп параллельных состояний "живет своей 
жизнью".


224
4.5.3. Развилки и слияния 
В этом параграфе рассматриваются 
средства 
описания 
параллельности, применяемые на диаграммах деятельности. 
Диаграмма деятельности похожа на привычную блок-схему, но 
допускает использование различных дополнительных обозначений. 
Это правило распространяется, прежде всего, на моделирование 
параллелизма: основные средства моделирования параллельного 
поведения на диаграммах деятельности имеют много общего с 
рассмотренными в предыдущем параграфе, плюс некоторые 
дополнительные особенности. Основными средствами являются уже 
рассмотренные 
развилки 
и 
слияния, 
а 
дополнительным — 
обусловленный поток управления. Рассмотрим их все по порядку. 
Развилки 
и 
слияния — это 
средства 
визуализации 
составных переходов. Диаграмму деятельности можно трактовать 
как диаграмму состояний, в которой используются (в основном) 
переходы по завершении. Что же такое составной переход по 
завершении? В сущности, это очень простая и естественная 
конструкция, может быть даже более естественная, чем общий случай 
составного перехода. 
Составной переход по завершении на диаграмме деятельности 
имеет следующие особенности. 
Во-первых, никто не использует данный термин: все применяют 
названия частных случаев нотации: развилка, слияние, линейка 
синхронизации. Все эти случаи являются составными переходами по 
завершении. 
Во-вторых, семантика данных конструкций определяется в 
UML 1 в терминах потоков управления. В общем случае имеется 
линейка синхронизации, которой инцидентны входящие (один или 
более) и исходящие (один или более) сегменты переходов. Семантика 
состоит в следующем. Сначала все деятельности, инцидентные 


225
входящим сегментам, должны завершиться. После этого параллельно 
запускаются все деятельности, инцидентные исходящим сегментам.
В-третьих, семантика данных конструкций определяется в 
UML 2 альтернативным, но эквивалентным способом в терминах 
маркеров. Развилка создает столько копий пришедшего маркера 
(управления или данных), сколько имеется исходящих дуг и запускает 
созданные маркеры во все исходящие дуги. Слияние, напротив, 
дожидается получения маркеров по всем входящим дугам, после чего 
отправляется маркер по единственной исходящей дуге. Общий 
случай — линейка синхронизации (с несколькими входящими и 

Download 1.84 Mb.

Do'stlaringiz bilan baham:
1   ...   107   108   109   110   111   112   113   114   115




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling