Programa de Ingeniería de Sistemas – Ingeniería de Software I DIAGRAMAS DE CLASES ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
EJERCICIO 1 RESER!A DE !"ELOS
El sistema de reserva de vuelos es un sistema que permite al usuario hacer consultas y reservas de vuelos, además de poder comprar los billetes aéreos de forma remota, sin la necesidad de recurrir a un agente de viajes humano. Se desea que el sistema de reservas sea accesible a través de la World Wide Web. El sistema actualmente tiene un erminal de Servicio de !eserva en donde se presenta un mensaje de bienvenida describiendo los servicios ofrecidos junto con la opci"n para registrarse por primera ve#, o si ya se está registrado, poder utili#ar el sistema de reserva de vuelos. Este acceso se da por medio de la inserci"n de un login previamente especificado $direcci"n de correo electr"nico del usuario% y una contrase&a previamente escogida y que debe validarse. 'na ve# registrado el usuario, y después de haberse validado el registro y contrase&a del usuario, se pueden seleccionar las siguientes actividades( • )onsulta de vuelos. • !eserva de vuelos. • )ompra de billetes. *a consulta de vuelos se puede hacer de tres maneras diferentes( • +orarios de uelos. • arifas de uelos. • nformaci"n de uelo *a consulta segn horario muestra los horarios de las diferentes aerol/neas que dan servicio entre dos ciudades. *a consulta segn tarifas muestra los diferentes vuelos entre dos ciudades ordenados por su costo. *a informaci"n de vuelos se utili#a principalmente para consultar el estado de algn vuelo, incluyendo informaci"n de si e0isten asientos disponibles y, en el caso de un vuelo para el mismo d/a, si éste está en hora. Se pueden incluir preferencias en las bsquedas, como fecha y horario deseado, categor/a de asiento, aerol/nea deseada y si se desean s"lo vuelos directos. *a reserva de vuelo permite al cliente hacer una reserva para un vuelo particular, especificando la fecha y horario, bajo una tarifa establecida. Es posible reservar un itinerario compuesto de mltiples vuelos, para uno o más pasajeros, además de poder r eservar asientos. *a compra permite al cliente, dada una reserva de vuelo previa y una tarjeta de crédito válida, adquirir los billetes aéreos. *os billetes serán posteriormente enviados al cliente, o estarán listos para ser recogidos en el mostrador del aeropuerto antes de la salida del primer vuelo. Es necesario estar previamente registrado con un nmero de tarjeta de crédito válida para poder hacer compras de billetes, o bien proveerla en el momento de la compra. 1demás de los servicios de vuelo, el usuario podrá en cualquier momento leer, modificar o cancelar su propio registro, todo esto después de haber sido el usuario validado en el sistema. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SOL"CI#$ Se presentan los diagramas de clases obtenidos mediante apro0imaciones sucesivas. El proceso de construcci"n del diagrama de clases implica la realimentaci"n de las soluciones conseguidas tantas veces como sea necesario, sin implicar por ello mayor o menor capacidad de los analistas. El primer paso a reali#ar va a ser la dentificaci"n de )lase. 2ara ello se subrayan todos los sustantivos en la descripci"n del problema, identificándose los siguientes sustantivos, correspondientes a las clases candidatas $e0cluyendo repeticiones y manteniendo todo en singular%( Sistema de reserva de vuelo +ora )ompra de billetes Sistema 2referencia +orario de vuelos 'suario 3squeda arifa de vuelos )onsulta 4echa nformaci"n de !eserva +orario Entrevista uelo 1gente de viajes humano 1erol/nea 3illete aéreo Sistema de reservas )iudad *ogin World 5ide 5eb arifa 6irecci"n de correo electr"nico S! )osto )ontrase&a !at"n Estado !egistro eclado nformaci"n 1ctividad 7onitor )ategor/a de asiento )onsulta de vuelos 7ensaje de bienvenida uelo directo !eserva de vuelos Servicios )liente 1siento 8pci"n tinerario 6/a 1cceso 2asajero arjeta de crédit o 7ostrador del aeropuerto )ompra 3illete 9mero de tarjeta de crédito 8perador
Diagramas de Clases
El segundo paso que vamos a reali#ar va a ser la Selecci"n de )lases. En este proceso de selecci"n vamos a eliminar las clases innecesarias, para ello vamos a e0plicar el desarrollo completo de algunas clases y sus consideraciones de elecci"n, siendo el resto deducibles de forma inmediata.
A Clases red%ndantes& Cliente ' "s%ario :'suario; puede ser más descriptivo para una aplicaci"n informática. En el caso del Sistema de !eserva, :)liente; es más descriptivo y se mantiene. *os sustantivos eliminados se listan a continuaci"n con los sustantivos preferidos entre paréntesis( )onsulta de vuelo $consulta%. • !eserva de vuelo $reserva%. • )ompra de billete $compra%. • Sistema de reservas de vuelo $sistema de reservas%. • 3illete $billete aéreo%. • )osto $tarifa%. • arifa de vuelo $tarifa%. • uelo directo $vuelo%. • *ogin $email%. • +orario $hora%. • 4echa $d/a%. • 6irecci"n de correo electr"nico $email%. •
( Clases irrele)antes& 7ostrador del 1eropuerto, 1gente de iajes +umano y 3illete 1éreo.
C Clases im*re+isas& Sistema, Servicios, 1ctividad, 2referencia, 3squeda, nformaci"n, Estado, 8pci"n, 1cceso, tinerario, son clases imprecisas. 6urante la introducci"n de herencia puede que sea necesario una clase para compartir aspectos comunes a ambas clases.
D $om,res de +lases& aeropuerto en lugar de ciudad.
E Clases -%e son atri,%tos& 9mero de arjeta de )rédito es un atributo de arjeta de )rédito, )ategor/a de 1siento $asiento%, informaci"n de vuelo $vuelo% y horario de vuelo $vuelo%.
. Clases -%e son o*era+iones& )onsulta, )ompra, !eserva.
G Clases de interfa+es de %s%ario& mensaje de bienvenida, hoja principal.
/ Clases del sistema +om*leto& Sistema de reserva.
I Clases a+tores& )liente, 8perador $opcional, ya que es una ampliaci"n del sistema%. 1 continuaci"n tenemos cuáles son las clases candidatas de nuestro sistema a anali#ar( !eserva uelo 1erol/nea 1eropuerto arifa
asiento d/a hora pasajero tarjeta de
contrase& email registro S!
6espués de haber identificado y seleccionado las clases, se construye un primer diagrama de clases para el dominio del problema $ver 4igura <.<%. )omo podemos observar, se han eliminado aquellas clases candidatas que son atributos. <=> Salida < 8rigen < <
DIA
<=>
*legada
!"ELO
<
)one0i"n
AEROP"ER0O
<
<
Escalas
<
<=> <=> <
6estino
<
AEROLI$EA
<
2ertenece
.ig%ra 11 2rimera apro0imaci"n al diagrama de clases. El siguiente paso que reali#aremos será la Identifi+a+in de las Rela+iones. nicialmente se muestran las relaciones básicas e0istentes entre las diferentes clases del sistema. 2ara ello identificamos las siguientes frases( • !eserva de vuelos. • 1sientos en un vuelo. • 4echa y horario de vuelo. • 1erol/nea deseada. • arifa de vuelo. tinerario de vuelos. • !eescribimos las frases para as/ obtener las candidatas( • El vuelo contiene reservas. El vuelo contiene asientos. El vuelo tiene d/a y hora. • El vuelo pertenece a una aerol/nea. El v uelo tiene tarifas. • El vuelo se compone de un itinerario. El pasajero tiene reservas. El pasajero posee una tarjeta de crédito. • ras haber identificado y seleccionado las asociaciones, se construye un diagrama de clases con las asociaciones, los roles y la multiplicidad quedando el diagrama de clases que se muestra en la 4igura <.<. El !%elo se denomina por medio de un nmero, tiene como origen un aeropuerto en una ciudad y tiene como destino un aeropuerto de otra ciudad. 'n vuelo puede tener mltiples escalas y mltiples vuelos, se relacionan por medio de cone0iones. El vuelo pertenece a una aerolínea y puede operar varios días a la semana teniendo un horario de salida y otro de llegada. El Aero*%erto sirve como origen, destino y escalas de un vuelo. El aeropuerto se encuentra en una ciudad de un pa/s determinado. Se identifica una clase adicional, como A)in, y las relaciones básicas e0istentes entre las clases 1erol/nea, 1vi"n, arifa, 1siento y uelo. *a Aerolínea provee servicio de mltiples vuelos entre diferentes ciudades bajo diferentes horarios. *a aerol/nea se identifica por un nombre. 'n )%elo en una fecha determinada se hace en un tipo de a)in particular. El tipo de avi"n define la cantidad má0ima de pasajeros que pueden viajar en ese vuelo para esa fecha. *os diferentes vuelos tienen mltiples tarifas para compra de billete, variando segn la clase de billete, si son de ida o de ida y vuelta, y dependiendo de las diversas restricciones y ofertas e0istentes. En las reservas de vuelos se puede incluir una solicitud de asignaci"n de asiento, especificando preferencias como pasillo o ventana. El nmero de asientos disponibles en un vuelo particular depende del tipo de avi"n que opere ese d/a. En el diagrama de la 4igura <.? se muestran las relaciones entre las clases descritas anteriormente.
0ARI.A
<=>
61@
<=> 8fertas@!es
<
!"ELO
<=> Escalas <=>
A!IO$
<
<
<=>
<=>
<
ASIE$0O
AEROLI$EA
.ig%ra 12 Segunda apro0imaci"n al diagrama de clases. 8tras de las relaciones que se encuentran son las siguientes( • El horario de un vuelo se define segn los días en que opera. • El horario de un vuelo se determina por su 3ora de salida y hora de llegada durante los días que opera. 1s/ pues, el diagrama resultante de esta asociaci"n entre la clase 6/a y +ora se muestra en la 4igura <.A. • 2ara poder tomar un vuelo es necesario contar con una reser)a previa, la cual debe pagarse antes de una fecha l/mite, que puede ser el propio d/a del vuelo. 'na reserva puede hacerse para mltiples vuelos y mltiples pasajeros. *a reserva cuenta con una clave que identifica un re gistro de reserva particular.
<
DI
/ORA
A
.ig%ra 14 !elaci"n entre las clases +ora y 6/a. Se identifica una clase adicional llamada 2ago, que consta de informaci"n sobre la cantidad, fecha y tipo de transacci"n. 2or ra#ones de seguridad, los pagos de billete se hacen mediante tarjeta de crédito. El diagrama que muestra las relaciones anteriores es el de la 4igura <.B.
!"ELO
<=>
<=>
RESER!A
<
PAGO
<=>
<=>
<=>
<=>
<=>
PASAJERO
<
<=>
0ARJE0A
.ig%ra 15 ercera apro0imaci"n al diagrama de clases. 4inalmente identificamos los atributos segn la descripci"n del problema. *os atributos de las clases l os hemos podido obtener antes de proceder a la determinaci"n de las asociaciones, pero en este caso nos ha parecido más fácil su representaci"n al final, aunque es obvio que mientras estábamos obteniendo las relaciones e0tra/amos los atributos. 1s/ pues, tenemos los siguientes atributos asociados a cada clase(
$om,re de la Clase
$om,re del Atri,%to
uelo 1eropuerto 1erol/nea 1vi"n 1siento arifa !eserva 2ago arjeta 2asajero
9mero )iudad - 2a/s 9ombre )ompa&/a - ipo - 9.C 2asajeros 4ila - *etra )lase D 2recio - mpuestos )lave D )osto - otal ipo D 4echa D )antidad 9ombre D 9mero D ipo D 4echa - encimiento 9ombre D 6irecci"n D )iudad D 2a/s - )"digo 2ostal - eléfono )asa eléfono 8ficina D 4a0 - Email
En la 4igura <. se muestra las clases con sus atributos y en la 4igura <.F se muestra el diagrama completo final con todas las clases y sus relaciones.
.ig%ra 16 1tributos de las clases identificadas.
AEROLI$EA
A!IO$
< 2osee <=>
7 $om,re
AEROP"ER0O
- Com
- $om,re - Ci%dad - País
*a8í a - 0i*o - $9 Pasa :eros < <
<=> *e pertenece
Es reali#ado por <=>
0ARI.A
<=>
da@
<
<
6estino
<=>
<
8rigen
)one0i"n
!"ELO <=> <
-C
l a s e
- $;
- Pre+io - Im*%esto
<=>
s
8fertas
<=>
Escalas
mer o
<
< < <
<
<
<=>
)ontiene
ASIE$0O
)ontiene <=>
Salida
<=>
-.
RESER!A - Cla)
*legada
i l a -L e t r a
< iene
/ORA
<
PAGO < iene <=>
- 0i*o - .e+3a - Canti
e - Costo 0otal
<=> <=>
dad
<=>
<=>
DIA
+ace <=>
PASAJERO - $om,re - Dire++in - Ci -P
a í s
%d ad
- Cdigo
P o s t a l -0 e l < f o n o C
asa
- 0el
-.
no Ofi+in a
a = -E 7 m a i l
+ace <=>
0ARJE0A < 2osee <=>
- $om,re - $;mero
.ig%ra 1> ersi"n final del diagrama de clases.
- 0i*
o - .e+ 3a - !e n+i mi ent
o