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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Ejercicio<br />

“Un Hub no pue<strong>de</strong> <strong>con</strong>ectarse <strong>con</strong>sigo mismo a través <strong>de</strong><br />

un puerto”<br />

Context Cable_Hubs<br />

Inv: Puerto_Hub.hub->asSet()->size() = 2<br />

Ejemplos<br />

EEspecificación ifi ió d<strong>de</strong>l l valor l iinicial i i l y d<strong>de</strong>rivado i d d<strong>de</strong> atributos/association t ib t / i ti ends: d<br />

<strong>con</strong>text Person::income : Integer<br />

init: parents.income->sum() * 1% -- pocket allowance<br />

d<strong>de</strong>rived:if i d if self.age lf < 18<br />

then parents.income->sum() * 1% -- pocket allowance<br />

else job.salary -- income from regular job<br />

endif<br />

Subexpresiones (let):<br />

<strong>con</strong>text Person inv:<br />

let income : Integer = self.job.salary->sum() in<br />

if isUnemployed then<br />

income < 100<br />

else<br />

income >= 100<br />

endif<br />

117<br />

119<br />

Ejemplos<br />

parents<br />

0..*<br />

children 0..*<br />

Ejemplos Ejemplos. Colecciones.<br />

Colecciones<br />

Tipos: Set, Or<strong>de</strong>redSet, Bag, Sequence.<br />

Operaciones <strong>de</strong> bucle <strong>con</strong> colecciones:<br />

select(expr): selecciona los elementos que cumplan una <strong>con</strong>dición.<br />

coleccion->select( expresion-logica )<br />

coleccion->select( l i l t( v | expresion-logica-<strong>con</strong>-v)<br />

i l i )<br />

coleccion->select( v : Type | expresion-logica-<strong>con</strong>-v)<br />

<strong>con</strong>text t t CCompany iinv:<br />

self.employee->select(age < 25)->notEmpty()<br />

<strong>con</strong>text Company inv:<br />

self.employee->select(gen<strong>de</strong>r=female)->notEmpty()<br />

118<br />

120

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

Saved successfully!

Ooh no, something went wrong!