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 ...
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