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.

Ejemplos<br />

Flight<br />

Flightnr: Integer<br />

availableSeats(): Integer<br />

0 0.. *<br />

flights<br />

1<br />

plane<br />

Airplane<br />

numberOfSeats: Integer<br />

flights 0 0.. *<br />

passengers<br />

0..*<br />

PPerson<br />

name: String<br />

También es un lenguaje <strong>de</strong> <strong>con</strong>sultas (mismo<br />

po<strong>de</strong>r expresivo que SQL).<br />

Context Flight::availableSeats(): Integer<br />

body: plane.numberOfSeats – passengers->size()<br />

¿Cómo se expresa el hecho <strong>de</strong> que en ningún vuelo pue<strong>de</strong> haber<br />

más pasajeros p j que q asientos tiene el avión?<br />

Restricción OCL:<br />

Context Flight<br />

Inv: passengers->size() isUnique(numSegSoc)<br />

Context Persona::<strong>con</strong>tratarHipoteca(sum: Dinero, aval: Casa)<br />

pre: self.hipotecas.mensual->sum()+sum = aval.hipotecas.principal->sum()<br />

113<br />

115<br />

Ejemplos<br />

Casa<br />

Persona<br />

valor: Dinero<br />

0 0.. *<br />

casas<br />

1 numSegSoc: S S I<strong>de</strong>ntificador<br />

Id ifi d<br />

propietario sueldo: Dinero<br />

aval 1<br />

Hipoteca<br />

principal: Dinero<br />

<strong>con</strong>tratarHipoteca(sum: Dinero,<br />

aval: Casa) )<br />

1 <strong>con</strong>tratante<br />

0..* mensual: Dinero 0..*<br />

hipotecas fechaInicio: Fecha<br />

fechaFinal: Fecha<br />

hipotecas<br />

Reglas adicionales:<br />

1. Una persona pue<strong>de</strong> tener una hipoteca sobre una casa sólo si es el<br />

propietario.<br />

22. La fecha <strong>de</strong> inicio <strong>de</strong> cada hipoteca ha <strong>de</strong> ser menor que la <strong>de</strong> final final.<br />

3. El número <strong>de</strong> la seguridad social <strong>de</strong> cada persona ha <strong>de</strong> ser único.<br />

4. Sólo es posible <strong>con</strong>tratar una nueva hipoteca si el salario <strong>de</strong> la persona<br />

es suficiente.<br />

5. Sólo es posible <strong>con</strong>tratar una nueva hipoteca si el valor <strong>de</strong> la casa aval<br />

es suficiente.<br />

Ejemplos<br />

“Los PCs pue<strong>de</strong>n <strong>con</strong>ectarse <strong>con</strong> un único Hub, los servidores <strong>con</strong> uno o varios”<br />

Context PC<br />

Inv: cable_equipo->size() = 1<br />

Context Servidor<br />

Inv: cable_equipo->size() >= 1<br />

114<br />

116

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

Saved successfully!

Ooh no, something went wrong!