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


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

state machine
Position
entry/thePerson=person
exit/thePerson.excure()
Occupied
Vacant
destroy
create
destroy
occupy (person)
free()
free()
occupy(person)
Рис. 4.45. Машина состояний класса 
Person
В таком случае, операция назначения сотрудника на должность 
assignP2P()
может быть реализована двумя вызовами операций над 
объектами, являющимися ее аргументами: 
position.occupy(person) 
person.assign(position) 
Мы подошли к кульминации данного примера: указанные две 
операции можно вызвать в любом порядке или параллельно, более 
того, их можно вызывать с ожиданием возврата управления или без 
ожидания, т. е. синхронно или асинхронно — в любом случае 
взаимодействие автоматов, приведенных на рис. 4.44 и рис. 4.45, 
обеспечит требуемое поведение (если только в процесс обмена 
сообщениями не вмешается "посторонний" вызов операции одного из 
этих объектов).
Параллельное 
программирование — мощный 
способ 
моделирования поведения, и взаимодействующие конечные 
автоматы — великолепное 
средство 
параллельного 
программирования.


217
4.5.2. Ортогональные состояния и составные переходы 
В этом параграфе рассматриваются 
средства 
описания 
параллельности, применяемые на диаграммах автомата. 
На 
диаграммах 
автомата 
параллельное 
выполнение 
моделируется с помощью ортогональных (параллельных) составных 
состояний. По существу, идея параллельных состояний очень проста 
и легко воспринимается: внутрь составного состояния вложено 
несколько машин состояний, которые работают параллельно.
Переход в ортогональное составное состояние означает 
одновременный переход в начальные состояния всех областей 
данного ортогонального составного состояния (т. е., фактически, 
параллельный запуск всех вложенных машин состояний); в случае 
наличия перехода в ортогональное составное состояние каждая 
область должна иметь единственное начальное (или историческое) 
состояние, в противном случае модель считается противоречивой. 
Переход по событию и/или со сторожевым условием (т. е. 
любой переход не по завершении) из ортогонального составного 
состояние означает распространение данного перехода на все 
вложенные состояния всех областей; если унаследованный переход 
конфликтует с локально определенным переходом, то последний 
имеет приоритет (модель не считается противоречивой). 
Переход 
по 
завершении 
из 
ортогонального 
составного 
состояния срабатывает в том и только в том случае, когда машина 
состояний в каждой области перешла в заключительное состояние 
(т. е., фактически, это означает синхронное завершение всех 
вложенных машин состояний); в случае наличия перехода по 
завершении из ортогонального составного состояния каждая область 
должна иметь заключительные состояния и должен быть определен 
единственный переход по завершении, в противном случае модель 
считается противоречивой. 
Таким образом, семантика переходов, не пересекающих границу 
состояния, для ортогональных и последовательных составных 


218
состояний аналогична. Для описания переходов, пересекающих 
границу ортогонального составного состояния, вводится специальное 
понятие — составной переход. 

Download 1.84 Mb.

Do'stlaringiz bilan baham:
1   ...   105   106   107   108   109   110   111   112   ...   115




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