You are on page 1of 7

DESCRIPCION

'simplificado de reserva de vuelos para una agencia de viajes y servlclos:

~"'I~""~IC: ofrecen varies vuelos

.. , ". aabre y cierra las reserves para un deterrninado vuelo

. . . e reservar uno 0 mas vuelos y para diferentes pasajeros n;:,.'.-~~!~8:;:;,;h,;t;";"'"lI;I"'''' un unlco pasajero y un unico vuelo

cancelada· 0 conflrrnada

... aerCJpuerto de salida y otro do Uegada

diayuna hora de salida y un dla y hora de lIegada ,'. implicar escalas en aeropuertos

unahora de lIegaday hora de salida

.' atiende a una 0 mas ciudades

.. 5 ofrecenvarios vuelosc:;ompaniaAerea y Vuelo son conceptos , .• ,.;,.""',_.,,, •...•. ,, .. !.; .•••.. real can atributos y comportamientos. par 10 que son clases

model ado estatlco

Vuelo

\ra'f",r'llrtn la multi pilei dad de 'I.:' (por ellado de la clasa Vuelo) a la de .";:"=>I'T1,nc:: constderando compafiias aareas que ofrecen al menos

\alloci6n de que un vuelo es ofrecido normalmente por una (mica aelrBi2· .... ·· pero tarnblen puedo ser com partido por varias cornpanlas que 10 ,...n .... rt~"r~l"l·· Por eso charterer es un buen candldato para denominar at rei que iaAerea en la asociaci6n con Vuelo

Vuelo

EI hecho de a~riry cerrar las reservas represents un concepto dtnamlco, r~ferido a cambios en ~Iestado de un objeto Vuelo realizado porotro objeto .companiaAerea Una soluci6n;~bvia conslstlra en af\adir un atributo enumerado, estado, como se muestra en laslguiente figUra

Este no serfau~enfOqUe correcto: cada objeto posee un estado actual por enclrna de los valores cie. sus atributos, que pertenece a las propiedades intrinsecas del concepto de (Jbjeto. Por 10 tanto el concepto de estado no debe aparecer como un atribulo en I~s diagramas de clase y debe ser modelado en la vista dlnamlca utilizando 81 dlagrama de estado

MOdeiamiento de DatCJs

Universidad Nacional de I .

Vuelo

CompaniaAerea 1A ofrece

1 .. •

«; .estaCl_o: (DDlenD. cermool .

~,. . .. ~ ~ ~

charterer

Eh.llrl diagramaid¢c::lases los unicos conceptos dinarnlcos son las . operaclones La pregunta serla entonces. i.En que clase colocamos ·Ias operaciones que hemos identificado?

EN VUELO Y N'O"EN COMPANIAAEREA

En orientaci6n al obleto consideramos que el objeto sobre el cual reallzarlarnos un proceso debe declararlo como una operaclon. Colocaremos entonces las operaciones en la clase Vuelo y nos aseguramos que la clase CompaniaAerea tiene una asociaci6n con ella

I . CompaniaAerea I 1 __ * ottece L ~ Vuelo
charterer
-
-: "-a-brirReservaO -'_L __ . ._
....... ..,_ .
"'-~~ ....... -~.-- .£::~arReserva 0 .. ,.'
~ - - ...... ~ .. - La asociaci6n Ofrece seinstanclara en un conjunto de enlaces entre obJetos de las clases CompaniaAereay Vuelo, 10 cual permttira la clrculacion de mensajes de abrir y cerrar reservas entre estes objetos, como se puede ver en el siguiente diagrama de comunicaci6n

I :£IbnrReserva(J

2.cerr.lrReservaO I·· I

_--~ _-- V1 :Vuelo

: --- __ .----

'. "I :CompaniaAerea r~~~~--"---- . ... . ..

. '. ---~.- .. - .... ---

-- .. _---". --------1 V2'Vueio I

3 abnrReser/El() •

Un vuelo tiene un dia y una hora de salida y un dia y hora de lie gada

Estas noclones de Iechas y horas represantan simplemente val ores, por 10 que .. · .: [os modelarsmos como atrlbutos y no como simples oblates

I.'

1."

Vuelo

fechaSalido horasonoe ' fp,chuL!egadtl horoU8!J;:ldrt

abnr R asarvat I cermrRe'5er'J<)( i

Pag,46

Modelamiento de Datos

ierialndustrialde Sistemas

----(1" .. , rl ... I ..... \ rJr

J. Jr-. :'. ',. rfl .<: i, ,L-yr-.,'. _).J _In .J.

'G/ !)JJJ

La noclon de aeropuerto es cornpleja (posee un nombre perc adernas tiene una capacidad, sirve a ciudades, etc, Poresta razon hemos preferido modelarlos como clases y no coma meros atributos en la clase Vuelo

Una soluclon Inicial consiste en crear una asoclaclon con una multiplicidad de 2 colocada del lado de la clase Aeropuerto. Para evltar la confusion entre salida y lIegada, afiadiriamos una restrlcclon de {ordenado} del lad a de Aeropuerto

Vuelo /' ... --+.-----:';0. .,
.- Aeropuerto
fechnSahdn •
hOraSalido (ordenado] nomhre
fectmLiegada
horaUegoda
-aarQ.f.t~lertos.ali&.:r_'
jlSfopl.Te'ffOLieSfnd~ ----
abrirReservoO
cerrarReserv€lO Otra soluclon que puede resultar tentadoraseria la de crear dos subclases a partir de la clase Aeropuerto, pero tamblen es incorrecta porque dado que un aeropuerto as de salida para ciertos vuelos y de l1egada para otros

Vuelo /·------·-~~1 ,
AeropuertoSaUda 1'.
1ecfmSElfida ?--
horu50lid D
fachaLfegada
IloraLlegl:ldo ~ <, -,
oefQP.?eHgSajitltl~ -.-- ... _ ':,~1
_iWrepuer ot:tegad<1 --- r-"oeropuertoLlegada

obrirResarvo() r
cerrarReserlJ£I( ) ---,,_,------_._.
" Aeropuerto

Cada aero puerto atiende a una 0 varlas ciudades

aliellde '1.. , ~Udad __ 1
Aeropuerto
r' ...... _ ......
pag.47

-~ __ Pero'st'servlr slgnlfica, por ejemploJ cada metodo de transporte aereo que

- puedahallarse a rnenos de 30 Krns, entonces una cludad puede sor atendlda

por 0 0 mas aeropuertos. Mantendrernos esta segunda definicion - ; .

. . '~'.

Aeropuertof_O-_: iJl_ie_Il{_le L-j· ~CiUd.d~ __ 1

Cada escala tiene dos propiedades de acuerdo a las sentencias 8 y 9: hora de lIegada y hora de salida. Tamblen hay conexiones con otros vuelos y

_ aeropuertos, que son objetos, par 10 que es natural modelarlas como clases

Vuelo
feclmSahdo ? salida Aeropuerto
homSalida
fachallegado
horaUegofJa . ? lIegmh.1

?
abrirReservaO
r.errarReserlll( )
?j Escala
r----'--. ". ____ +_+_H
0_" nora Uegada 'J
horoSafida EI modelado completo de las sentenclas 8 y 9 tendra entonees el sJguiente aspecto:

Vuelo .L_'_~ ....
fechaSalida I. 0.: l salida Aeropuerto
homSolida ~_ ... r ~~ .. -~~
'I
fechaUegodo .. -
.- ',."
iloroLiagodo ( 0 .. . " lIegodo
j
_c -',
I 1 ;
abrirReselVoO <' C
cerrarReserva()
r'
\1 .. '.' Escala
"0' ~ 0.: horaLiegada !1~Il,e It/gar en
J6i'd~n~cio)" horaSalirJo 0, ,
. ,
J
'- pag.48

de Sistemas

Una Idea Inicial serla conslderar a las escalas como una espec\alizaci6n de

Aeropuerto .

Vuelo

fech[JS~----- 0." '~i1lid[l Aeropuerto htlraSflfi(jD I----------=.:.::=-j-- "'---,---

f8r:tullleYUlln

horaLieg[JIlu

o· . lIegodo

-.------------L..__-:-.:,-_-l

·1fS.·

.: [\

I ;

i

: i

. ,

---~ . -'~ .. ~--

Esci:ila

abrirRClser.m() cern) rR';sorvo ()

I"~

0.: twroLleglldf.l [ordenndo] homSalida

Pera no es una Idea recomendable porque lPodemos realmente conslderar que una escala es un tipo de aeropuerto? Adernas de no serlo, so recomlenda no utilizar este tlpo de soluclon para heredar de aeropuerto solo al nombre

En realldad, el concepto de ascala es lin tercer rol desempenado por Aeropuerto

Vuelo
fechaSalicln 0 .. · salido Aeropuerto
hOI,) S allda . ,,--_ ..
t
lechaUegOdo
f10rnLiegada O. · lI~gado
-
-_ . .....,.._". I
obrirResOlvn () 0 · 0 .. .
l:erforReSOI ... <11 ) ~ .. ,." .. _ .d __ ·"'·'·-_'_ ~ _ -~--
es:~Dlj.l-
, , _-'_ .. ,.. .. ....."...._.....-- (ordenadO)

Escalalnfo horal.leqada l1oroSalida

'v-, ~.~""

'--__;:;=-~."~ ..

La sentencla 5 pusde modelarse anadlendo 2 operaciones en la clase Reserva, de la mlsma manera que la sentencla 2

ccnclerns
Reserva 1 Vuelo
-.--,-.-".,-.~., .. --
~"-'"---'- teclwSahcW
cancelart) , homSohda
confinnorO fechaLiegodo
hOrilLiagal:I~1
abrirReservaO
conclerne cerrmResel vo( )
L-. __ ;:... ____
I
Pasajero
._ ,.,~" ~. __ ...... __ .~ __ r_ ~ P;ig.49

'Mode/amiento de Datos

_/[j" 'J"rr,\nr

o '.' r lon'

j Q-,:.~j) jlTfU

=: /" UJ·JJ

.,_____..-

Universidad Nacional de

Enfuncl6n de loanteriormente aclarado en ralaclcn con cllente y.pasaj~ro, .. deberiamos rescrlblr la sentencla 3 de una forma mas clara: un cliente puede reallzar varlas raservas, cada una de las cualas sa refiere a un vuelo

Esta nueva redacci6n nos llevaria al sigulente dlagrama:

r---=---- Ill) IJec/Jo
_£~I~~!~.~ . Reserva
0 ..
r-"-'--'_ , .. .-.-~- .. --- ... -
cnrmelnru
conrnrnartj
conde:
I
Vuelo
f-----,---. ---- Or;)

51 afiadlrnos la class Pasajero y completamos las multlpllcidadas tenemos el slglilente dlagrama, an el que la flacha de dlreccl6n Indica como leer el nombre de la asoclachln:

I_ .. ·.,..~uente __ .. Imhl?cll0 Reserva
0:
I ,,/ canceiart)
/'0.' conannan)
..... =r»>: Q •
// clJll.;iel
/' I fiR

En base a todo 10 anterior, tenemos el slgulente dlagrama pretlrnlnar:

ofrece

Reserva

I.:'

I..' "

.(

0 .. ' (ordenado)

salida

0 .. ' Vuelo

Aeropuerto nom-bre

fechaSalidn 110raSaiida

Uegada 0"' fechaUegada

I-------~----I horaLiegada

abn eservao 0 .. ' ce rra I Reservat)

escala

, , ,

.

,

0 . .'

EscaJalnfo horal.leqada horaSallda

atiende

1 . .'

110 hecno

Pag.50

I) "

0 . .' cancelnrt) conlilmmO

0".'

concrenre

Modelamiento de Datos

de Sistemas

Cliente
nomure :
apelhdo
oireccton
Teleiono
fox
--~
/lee/to
0:.'
Reserva
techa
.;-; nurnern
cancetart)
eonftrr ~m()
D .. '
COllciri!!
r
Pasalero
nombre
<1pellido al modelo con atgunos atrlbutos derlvados relevantes:

Mode/amiento de Datos

1-C;:.2mRL1:.!llaAe.fJHL
nombre

L .
otrece
L .
salida 0.' Vualo
Aeropuerto nurnero
-- .. ~~-.-~ 1 '.
nornbre -. ~, fechaSnhda
... _., ....... · ...... _·'..,..,IL.,~I',"'.- horaSalida
lIegadu O· fechaU~gada
1 horaLleaada
.,' ICii:iffiCiC")o-)
0." [ordenado] o. .. abnrReservaO
0 .. ' escala , , cef~arReservil( }
,
,
,
aliende Escalalnfo
horallegada
'1..' horaSalida
-cfudad (7aUraaoii-~)
- '"--, .. - '---'~ _"..,.-,-,-
nombre nombre

CO;jCleI1l8

-"-----0

lie

.. 1\

ANADIDO DE RESTR1CCIONSS Y ASOCIACIONES CUALIFICAOAS

COnW.Rl1~

nornbre

1_'

.. horallegada {c\ongel<ldOj nurtlero._. __

I Iduration ct1ncelar()

abrirResel\lil() confirr ar()

L-~r- __ _J_O_'="~~:r~de_n_a_dO_} __ :- O'_··~r.e~rr~~~rR~e~s~e~~(~)_j 0.'

0 .. ' escata : COlle/eme

/ I Resrriecione;

Escalalnfo )

horaUegoou

homS<:lhda

Iduracion /

'. '. I{duraclon ,,~~

-. - rhoraSaHda - homuegiltl<ill

alien de

_e.?sa!!iI!fL nomine apellido

Cludad

-: Pag.51