Model-Driven Evolution of Software Architectures - Software and ...
Model-Driven Evolution of Software Architectures - Software and ...
Model-Driven Evolution of Software Architectures - Software and ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
140 Chapter7. <strong>Model</strong>-<strong>Driven</strong>Migration<br />
dostateisusedtocreateadynamicconditionalbranchthatdependsonthe<br />
actiononits incomingtransitions.Alternativepathsmaybejoinedusinga<br />
junctionPseudostate.<br />
Nodesinastatemachineareconnectedbytransitionsthatmodelthe<br />
TransitionfromoneState(source)toanother(target).ATransitionisfired<br />
byan Event(trigger). ATransitionwithoutsuchanexplicittriggerisfired<br />
byanimplicitcompletionEventthatisgenerateduponcompletion<strong>of</strong>all<br />
activitiesinthecurrentlyactiveState.A GuardisaBooleanexpressionattachedtoaTransitionthatdisablesorenablesitsfiringuponoccurrence<strong>of</strong><br />
itstrigger(dependingonwhetheritevaluatestotrueort<strong>of</strong>alse).The effect<br />
<strong>of</strong>aTransitionspecifiesanActiontobeexecuteduponitsfiring.Notethat,<br />
althoughtheremightbeacausalrelationshipbetweenactions<strong>and</strong>events<br />
(e.g.,acalleventgeneratedbyacallaction),UMLdoesnotallowtomake<br />
sucharelationshipexplicitwithouttheuse<strong>of</strong>OCL.Finally,aStateMachine<br />
consists<strong>of</strong>aset<strong>of</strong>transitions<strong>and</strong>atopStatethatisaCompositeState.<br />
Asanexample<strong>of</strong>howthismetamodelisusedinpractice,considerthe<br />
statemachinesinFigure7.5 <strong>and</strong>7.6onpage142,whichcorrespondto<br />
theprocesswafer<strong>and</strong>unloadwaferrequestsasintroducedinSection7.3.2.<br />
Suchstatemachinesarethesourcemodelsforthemigration. Notethat<br />
ourexamplerequestswereadoptedfromtwodistinctsupervisorycontrol<br />
componentswithanindicativeorder<strong>of</strong>magnitude<strong>of</strong>10requests,10-10 2<br />
states,<strong>and</strong>10 2 -10 3 transitions. Althoughweuseactualmanufacturing<br />
requestsasrunningexamples,wedonotdepictordiscusstheserequests<br />
infulldetailforreasons<strong>of</strong>confidentiality.<br />
Fromthenumber<strong>of</strong>choicepseudo-states<strong>and</strong>guardedtransitionsitbecomesclearthatconditionalexecutionisthedominantconcernintheprocesswaferrequestinFigure7.5.<br />
Inotherwords,theactivatedpathis<br />
dependentonconditionalsynchronisation(e.g., wafer@measure)withother,<br />
concurrentlyexecutingrequests.<br />
Figure7.6onpage142illustratesthataftertheactualtransfer<strong>of</strong>the<br />
wafer(TRANSFER_FINISHED)thealternativecompletionsequences<strong>of</strong>subsequent<br />
activities,whichareassociatedwiththe UR_moved<strong>and</strong> WS_movedevents,<br />
arespecifiedexhaustively. Furthermore,observetheuse<strong>of</strong>twodistinct<br />
resourceusagepatternsforWS<strong>and</strong>URinourunloadwaferrequest: for<br />
WSonlyanavailableEvent(WS available)<strong>and</strong>releaseAction(release WS)<br />
arespecified,forURalsoaclaimAction(claim UR)hasbeenspecified.<br />
Notethatforreasons<strong>of</strong>simplicity,wechoosenottoincluderesource<br />
usage<strong>and</strong>setupsinthespecification<strong>of</strong>theprocesswaferrequest. Even<br />
fromourexamplerequestsitbecomesclearthat,inpractice,concernsare<br />
addressedusingamultitude<strong>of</strong>idioms<strong>and</strong>constructs. Thisisthemain<br />
reasonfortheintroduction<strong>of</strong>ournormalisationstep.