12.05.2013 Views

Modelado de Software con UML2.0 - Universidad Autónoma de ...

Modelado de Software con UML2.0 - Universidad Autónoma de ...

Modelado de Software con UML2.0 - Universidad Autónoma de ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Máquinas q <strong>de</strong> Estados<br />

Ejemplo. Herramienta <strong>de</strong> Dibujo (iv)<br />

Mo<strong>de</strong>s<br />

mo<strong>de</strong>Select(Insert)/<br />

Canvas.Insert<br />

mo<strong>de</strong>Select(Move)/<br />

Canvas.Move<br />

Insert<br />

mo<strong>de</strong>Select(Delete)/<br />

Canvas.Delete<br />

mo<strong>de</strong>Select(Insert)/<br />

Canvas.Insert<br />

Move<br />

mo<strong>de</strong>Select(Delete)/ ( )/<br />

Canvas.Delete<br />

Delete<br />

mo<strong>de</strong>Select(Move)/<br />

CCanvas.Move M<br />

Diagramas <strong>de</strong> Actividad<br />

Refinamiento <strong>de</strong> los diagramas <strong>de</strong> estados estados.<br />

Los estados representan p la ejecución j <strong>de</strong> acciones o<br />

subactivida<strong>de</strong>s<br />

Las transiciones son disparadas p cuando se completan p estas<br />

acciones o subactivida<strong>de</strong>s<br />

Semántica basada en tokens.<br />

Flujos dirigidos por procesamiento interno (en los<br />

diagramas <strong>de</strong> estados normales son dirigidos por eventos<br />

externos).<br />

Semántica basada en Re<strong>de</strong>s <strong>de</strong> Petri. No obstante no se<br />

107<br />

da una transformación a Re<strong>de</strong>s <strong>de</strong> Petri.<br />

105<br />

Canvas<br />

onDrawingMouse1Press(x,y)<br />

Idle<br />

move<br />

insert<br />

Máquinas <strong>de</strong> Estados<br />

Ejemplo Ejemplo. Herramienta <strong>de</strong> Dibujo (v)<br />

Idle<br />

[Shapes in Circle]/<br />

Insertingg<br />

ddrawCircle(x,y) Ci l ( )<br />

[Shapes in Rectangle]/<br />

drawRectangle(x,y)<br />

[Shapes in Triangle]/<br />

drawTriangle(x,y)<br />

C<br />

Moving<br />

<strong>de</strong>lete<br />

insert<br />

Idle<br />

Deleting<br />

onDrawingMouse1Press(x,y)/<br />

movingObject=find_closest(x,y)<br />

i Obj t fi d l t( ) onDrawingMouse1Click(x,y)/<br />

D i M 1Cli k( )/<br />

find_closest(x,y).<strong>de</strong>l()<br />

onDrawingMouse1Release(x,y)<br />

Moving<br />

onDrawingMouse1Motion(x,y)/<br />

oldCoords=coords(movingObject)<br />

move(movingObject, distance(oldCoords, (x,y)))<br />

Diagramas g <strong>de</strong> Actividad<br />

Ejemplo<br />

[found<br />

coffee]<br />

Find<br />

Beverage g<br />

Put Coffee<br />

Put Filter<br />

in Filter in Machine<br />

Add Water<br />

to Reservoir<br />

move<br />

Turn on<br />

Machine<br />

Brew<br />

coffee<br />

<strong>de</strong>lete<br />

106<br />

/ coffeePot.turnOn<br />

[no coffee]<br />

Get<br />

Cups<br />

light goes out<br />

Pour<br />

Coffee<br />

[found cola] Get cans<br />

of cola<br />

[no cola]<br />

Drink<br />

108

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

Saved successfully!

Ooh no, something went wrong!