11.12.2012 Views

Model-Driven Evolution of Software Architectures - Software and ...

Model-Driven Evolution of Software Architectures - Software and ...

Model-Driven Evolution of Software Architectures - Software and ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!