Anda di halaman 1dari 21

6.5 Modelo del Dominio del Problema.

El modelo del dominio del problema define un modelo de clases comn para todos los involucrados en el modelo de requisitos, analistas al igual que clientes. Este modelo de clases consiste de los objetos del dominio del problema, o sea objetos que tienen una correspondencia directa en el rea de la aplicacin. Como los usuarios y clientes deberan reconocer todos los conceptos, se puede desarrollar una terminologa comn al razonar sobre los casos de uso, y por lo tanto disminuyendo la probabilidad de malos entendimientos entre el analista y el usuario. Al discutirlo, se evolucionar el modelo del dominio del problema. Una tcnica utilizada cuando se trabaja con tal modelo es darle al cliente un papel y un lpiz y pedirle que dibuje su visin del sistema. Histricamente, el modelo del dominio del problema se utilizaba como el modelo de requisitos fundamental en ciertas metodologas, tales como Coad y Yourdon (1991), Booch (1991), y Rumbaugh (1991). Sin embargo, dadas sus limitaciones que impeda obtener los requisitos funcionales de un sistema, el modelo del dominio del problema dej de ser la base nica para el desarrollo completo del sistema y pas a ser un elemento adicional en la especificacin de los sistemas, como en el modelo de casos de uso. El propsito principal del dominio del problema en el modelo de requisitos de nuestra metodologa es formar una base comn de entendimiento del desarrollo y no para definir el sistema completo. Por lo tanto, se pueden aprovechar algunas de las heursticas de los mtodos anteriores para la identificacin de los objetos en el dominio del problema, logrando un glosario o diccionario de clases que sirve como comn denominador a todos los componentes del sistema, incluyendo a las diversas personas involucradas a lo largo del desarrollo. A diferencia de los mtodos anteriores, el modelo del dominio del problema no debe ser demasiado extenso, ya que varios grados de refinamiento sern hechos posteriormente. Y aunque suficiente describir el dominio del problema en trmino de objetos o clases, es posible refinar ms an mediante la inclusin de asociaciones, atributos, herencia y operaciones, siempre y cuando esto ayude a comprender mejor el problema y no se vuelva un esfuerzo demasiado grande durante esta etapa. Se debe tener

cuidado con hacer demasiado trabajo temprano ya que esto puede incluso dificultar su modificacin posterior durante el modelo de anlisis. La experiencia muestra que muchos (si no todos) los objetos del dominio aparecern durante el modelo de anlisis. Sin embargo, pueden haber cambios durante el modelo de anlisis, incluyendo la eliminacin de clase identificadas durante esta etapa, o incluso la incorporacin de clases adicionales. En esta seccin describiremos cmo identificar las clases del dominio del problema junto con aspectos adicionales, cmo asociaciones y atributos. Lo que definitivamente no se har aqu, y que era parte esencial de las metodologas anteriores, es identificar herencia y las operaciones durante esta etapa. La herencia y en especial las operaciones de un sistema son los aspectos de mayor complejidad, algo que nosotros elaboraremos de manera muy cuidadosa durante el diseo del sistema. Identificacin de Clases La identificacin de clases del dominio del problema se obtiene principalmente de algn documento textual que describa el sistema. Aunque pudiramos tomar como punto de partida los documentos desarrollados para el modelo de casos de uso, a menudo la descripcin original del problema es suficiente. Se comienza este proceso mediante la identificacin de las clases candidatas, explcitas o implcitas, a las que se refiera la descripcin del problema. Para ello se extraen todos los sustantivos de la descripcin del problema o de algn otro documento similar, de acuerdo a las siguientes consideraciones.

Los sustantivos en la descripcin del problema son los posibles candidatos a clases de objetos. Por ejemplo en "Un sistema de reservaciones que vende boletos para funciones a varios teatros", las clases candidatas seran, Sistema de Reservaciones, Boletos, Funcin y Teatro. Durante esta etapa, se debe identificar entidades fsicas al igual que entidades conceptuales. No se debe tratar de diferenciar entre clases y atributos durante sta etapa. Dado que no todas las clases se describen de manera explcita, siendo algunas implcitas en la aplicacin, ser necesario aadir clases que pueden ser identificadas por nuestro conocimiento del rea.

Se debe revisar los pronombres en la descripcin del problema para asegurar que no se haya perdido ningn sustantivo descrito de forma implcita. Para facilitar la identificacin de clases, se subrayan todos los sustantivos de la descripcin del problema.

En el caso del sistema de reservaciones de vuelos, partimos de la descripcin del problema y subrayamos todos los sustantivos, como se ve a continuacin:

El Sistema de Reservaciones de Vuelos es un sistema que permite al usuario hacer consultas y reservas de vuelos, adems de poder comprar los boletos areos de forma remota, sin la necesidad de recurrir a un agente de viajes humano. Se desea que el sistema de reservaciones sea accesible a travs del Internet (World Wide Web). Elsistema presenta en su hoja principal un mensaje de bienvenida describiendo los servicios ofrecidos junto con la opcin para registrarse por primera vez, o si ya se est registrado, poder utilizar el sistema dereservaciones de vuelos. Este acceso se da por medio de la insercin de un login previamente especificado (email del usuario) y una contrasea previamente escogida y que debe validarse. Una vez registrado el usuario, y despus de haberse validado el registro y contraseadel usuario, se pueden seleccionar de las siguientes actividades: Consulta de vuelos Reserva de vuelos Compra de boletos Laconsulta de vuelos se puede hacer de tres maneras diferentes: Horarios de Vuelos

Tarifas de Vuelos Informacin de Vuelo La consulta segn horario muestra los horarios de las diferentesaerolneas dando servicio entre dos ciudades. La consulta segn tarifas muestra los diferentes vuelos entre dos ciudades dando prioridad a su costo. La informacin de vuelo se utiliza principalmente para consultar el estado de algn vuelo, incluyendoinformacin de si existen asientos disponibles y de si, en el caso de un vuelo para el mismo da, si ste est en hora. Se puede incluir preferencias en lasbsquedas, como fecha y horario deseado, categora de asiento, aerolnea deseada y si se desea slo vuelos directos. La reserva de vuelo permite al clientehacer una reserva para un vuelo particular, especificando la fecha y horario, bajo unatarifa establecida. Es posible reservar un itinerario compuesto de mltiples vuelos, para uno o ms pasajeros, adems de poder reservar asientos. La compra permite al cliente, dada una reserva de vuelo previa y una tarjeta de crdito vlida, adquirir los boletos areos. Los boletos sern posteriormente enviados al cliente, o estarn listos para ser recogidos en el mostrador del aeropuerto previo a la salida del primer vuelo. Es necesario estar previamente registrados con un nmero de tarjeta de crdito vlida para poder hacer compras de boletos, o de lo contrario proveerla en el momento de la compra. Adems de los servicios de vuelo, el usuario podr en cualquier momento accesar, modificar o cancelar su propio registro, todo esto despus de haber sido elusuario validado en el sistema.

A partir de estos sustantivos se prepara una lista inicial de clases candidatas, como se muestra en la Tabla 6.1. Se debe excluir clases repetidas, manteniendo todos los nombres en singular.

Clases Candidatas Login Sistema de Reservaciones de Vuelo Sistema Registro Usuario Actividad Consulta Reserva Vuelo Boleto Areo Agente de Viajes Humano Sistema de Reservaciones Internet Tarifa de Vuelos World Wide Web Hoja Principal Mensaje de Bienvenida Servicios Opcin Reservaciones de Vuelos Acceso Informacin de Vuelo Horario Aerolnea Ciudad Tarifa Costo Estado Compra de Boletos Horario de Vuelos Consulta de Vuelos Reserva de Vuelos Email Contrasea Informacin Asiento Da Hora Preferencia Bsqueda Fecha Categora de Asiento Vuelo Directo Cliente Itinerario Pasajero Compra Tarjeta de Crdito Boleto Mostrador del Aeropuerto Nmero de Tarjeta de Crdito

Tabla 6.1. Clases Candidatas para el sistema de reservaciones de vuelo identificadas de la descripcin del problema. Seleccin de Clases

A partir de las clases candidatas, se debe seleccionar las clases relevantes tomando en cuenta los siguientes consideraciones:

Todas las clases deben tener sentido en el rea de la aplicacin, la relevancia al problema debe ser el nico criterio para la seleccin. Como regla general, se debe escoger los nombres para las clases con cuidado, que no sean ambiguos y que mejor se apliquen al problema. Este es uno de los procesos ms difciles. Los nombres deben ser establecidos con un formato consistente (e.g. nombres en singular). No hay que preocuparse durante esta etapa sobre asociacin, agregacin, o herencia. Primero hay que tener las clases especficas correctas para no suprimir detalles en el intento de ajustarse a estructuras preconcebidas. Ante la duda, se deben conservar las clases, ya que posteriormente siempre habr oportunidad para eliminarlas. Se deben eliminar clases redundantes, si estas expresan la misma informacin. La clase ms descriptiva debe ser guardada. Se deben eliminar clases irrelevantes, que tienen poco o nada que ver con el problema. Esto requiere juicio porque en un contexto una clase puede ser importante mientras que en otro contexto la clase podra no serlo. Se deben clarificar las clases imprecisas. Algunas clases pueden tener bordes mal definidos o demasiado generales. Se deben eliminar las clases que debieran ser atributos ms que clases, cuando los nombres corresponden a propiedades ms que entidades independientes. Se deben eliminar las clases que debieran ser roles ms que clases, cuando los nombres corresponden al papel que juegan las clases ms que entidades independientes. Se deben eliminar las clases que debieran ser operaciones ms que clases, si las entidades representan operaciones que son aplicadas a los objetos y no entidades manipuladas por si mismas. Se deben eliminar las clases que corresponden a construcciones de implementacin si estn alejadas del mundo real, por lo cual deben ser eliminadas del anlisis. No se necesita una clase para representar una entidad fsica. Por ejemplo: subrutinas, listas, y arreglos, son clases tpicas de implementacin; Internet y World Wide Web son el medio de implementacin del sistema Se debe eliminar clases que correspondan aspectos de interfaces de usuario y no de la aplicacin.

Se debe eliminar clases que correspondan a todo un sistema completo. Se debe eliminar clases que correspondan a actores del sistema. Se deben agregar clases implcitas que no aparezcan en la descripcin del problema.

Tomaremos algunas de las clases candidatas del sistema de reservaciones de vuelo identificadas anteriormente y seleccionamos las que mejor se apliquen a nuestro problema, como se ve a continuacin:

Clases redundantes: Cliente y Usuario. Esta decisin puede ir para ambos lados de igual manera. En el caso del Sistema de Reservaciones, consideramos que Usuario es ms descriptivo por ser la persona que utilice el sistema y se guarda. Clases irrelevantes: Mostrador del Aeropuerto, Agente de Viajes Humano y Boleto Areo. Si el sistema generara o se refiriera a un boleto areo, esta clase se mantendra. Clases imprecisas: Sistema, Servicios, Actividad, Preferencia, Bsqueda, Informacin, Estado, Opcin, Acceso, Itinerario, son clases imprecisas. Durante la introduccin de herencia puede que sea necesario una clase para compartir aspectos comunes a ambas clases. Nombres de clases: Aeropuerto en lugar de Ciudad Clases que son atributos: Nmero de Tarjeta de Crdito es un atributo de Tarjeta de Crdito, Categora de Asiento (Asiento), Informacin de Vuelo (Vuelo), y Horario de Vuelo (Vuelo) Clases que son operaciones: Consulta, Compra, Reserva. Clases de interfaces de usuario: Mensaje de Bienvenida, Hoja Principal. Clases del sistema completo: Sistema de Reservaciones Clases actores: Cliente.

La Tabla 6.2 muestra las modificaciones a las clases candidatas originales.


Clases Candidatas Sistema de Reservaciones de Vuelo Sistema Usuario Modificacin Eliminada (sistema completo) Eliminada (imprecisa) Eliminada (actor)

Consulta Reserva Vuelo Boleto Areo Agente de Viajes Humano Sistema de Reservaciones Internet World Wide Web Hoja Principal Mensaje de Bienvenida Servicios Opcin Reservaciones de Vuelos Acceso Login Email Contrasea Registro Actividad Consulta de Vuelos Reserva de Vuelos Compra de Boletos Horario de Vuelos

Eliminada (operacin) Eliminada (operacin)

Eliminada (irrelevante) Eliminada (irrelevante) Eliminada (sistema completo) Eliminada (implementacin) Eliminada (implementacin) Eliminada (interface) Eliminada (interface) Eliminada (imprecisa) Eliminada (imprecisa) Renombrada: Reservacin Eliminada (imprecisa) Eliminada (atributo) Eliminada (atributo) Eliminada (atributo) Renombrada: RegistroUsuario Eliminada (imprecisa) Eliminada (operacin) Eliminada (operacin) Eliminada (operacin) Eliminada (duplicada con Horario)

Tarifa de Vuelos Informacin de Vuelo Horario Aerolnea Ciudad Tarifa Costo Estado Informacin Asiento Da Hora Preferencia Bsqueda Fecha Categora de Asiento Vuelo Directo Cliente Itinerario Pasajero Compra Tarjeta de Crdito Boleto

Eliminada (duplicada con Tarifa) Eliminada (atributo)

Renombrada: Aeropuerto

Eliminada (redundante) Eliminada (imprecisa) Eliminada (imprecisa)

Eliminada (atributo) Eliminada (atributo) Eliminada (imprecisa) Eliminada (operacin) Eliminada (atributo) Eliminada (atributo) Eliminada (atributo) Eliminada (redundante y actor) Eliminada (imprecisa)

Eliminada (operacin) Renombrada: RegistroTarjeta Eliminada (irrelevante) Eliminada (irrelevante)

Mostrador del Aeropuerto Nmero de Tarjeta de Crdito

Eliminada (atributo)

Tabla 6.2. Clases Candidatas para el sistema de reservaciones de vuelo identificadas de la descripcin del problema. Las clases identificadas se muestran en la Tabla 6.3. Ntese que se agregaron dos nuevas clases, Avin y ViajeroFrecuente, que no aparecan en la descripcin del problema. Esto se hizo para lograr un dominio ms completo. En general, distintos analistas identificarn listas similares de clases, aunque siempre con alguna variacin.

Clases Identificadas Vuelo Tarifa Reservacin Asiento Registro Pasajero Usuario RegistroTarjeta Horario Avin Aerolnea ViajeroFrecuente Aeropuerto

Tabla 6.3 Clases identificadas para el sistema de reservaciones de vuelo. Diagrama de Clases Despus de haber identificado y seleccionado las clases, se debe construir el diagrama de clases para el dominio del problema. Este diagrama se muestra en la Figura 6.31 y puede ayudar a identificar clases adicionales, y servir de base para encontrar las atributos y asociaciones entre ellas.

Figura 6.31. Diagrama de clases identificadas para el sistema de reservaciones de vuelo. Aunque se puede parar aqu el proceso de desarrollo del dominio del problema, continuaremos con la identificacin de asociaciones y atributos para el sistema de reservaciones de vuelo. Identificacin de Asociaciones El proceso de identificacin de asociaciones es bastante similar al de identificacin de clases, slo que en lugar de sustantivos buscamos frases que relacionen sustantivos correspondientes a clases ya identificadas. Lamentablemente, hasta all llega la similitud, que se vuelve bastante difcil esta identificacin por lo restringido de la descripcin del problema. El documento de casos de uso tiende a ser mucho ms importante para la identificacin de estas frases. Dado que en nuestra metodologa las asociaciones y operaciones del sistema sern identificadas durante el modelo de diseo, aqu nos limitaremos a dar un pequeo ejemplo de la identificacin de asociaciones en base a nuestro conocimiento del dominio del problema. (En cierta manera escogimos como ejemplo el desarrollo de un sistema de reservaciones de vuelos por ser un dominio al cual la mayora de los lectores podrn fcilmente relacionarse.) Diagrama de Clases con Asociaciones En lugar de tomar como punto de partida la descripcin del problema o los documentos de casos de uso, simplemente identificamos nuestras propias frases correspondientes al dominio del problema del sistema de reservaciones, como se muestran en la Tabla 6.4. Este proceso de

identificacin es sencillo cuando el problema es muy limitado y el dominio es fcil de analizar. De lo contrario se requiere un proceso de identificacin mucho ms extenso como veremos en la etapa de diseo.

Asociaciones Identificadas Un vuelo contiene reservaciones Un vuelo se dirige a un aeropuerto Un vuelo contiene tarifas Un vuelo se efecta en un avin Un vuelo contiene asientos Un vuelo pertenece a una aerolnea Un vuelo tiene un horario Un pasajero puede acumular millas como viajero frecuente Un pasajero efecta reservaciones Una reservacin requiere de un registro de tarjeta de crdito Un registro de tarjeta pertenece a un registro de usuario

Tabla 6.4 Asociaciones identificadas para relacionar clases en el dominio del problema. Despus de haber identificado las asociaciones, se debe construir una versin del diagrama de clases que incluya estas asociaciones, como se muestra en la Figura 6.32.

Figura 6.32. Diagrama de clases con asociaciones entre clases identificadas. Se omiten los nombres de las asociaciones.

Diagrama de Clases con Roles Despus de haber hecho el diagrama de clases con asociaciones, se puede construir una versin del diagrama de clases incluyendo roles. Como se explic en el captulo 4, el nombre del rol describe el papel que juega una clase en la asociacin desde el punto de vista de la otra clase. Si hay una sola asociacin entre un par de clases, y el nombre de la clase describe adecuadamente su rol, se puede omitir los nombres de rol. Para tal propsito, modificamos levemente las asociaciones identificadas anteriormente, como se muestran en la Tabla 6.5.

Asociaciones Identificadas con Roles Un vuelo contiene reservaciones Un vuelo tiene un aeropuerto de destino Un vuelo tiene un aeropuerto de origen Un vuelo puede hacer en escalas en otros aeropuertos Un vuelo contiene tarifas de ida y vuelta Un vuelo contiene tarifas solamente de ida Un vuelo se efecta en un avin Un vuelo contiene asientos Un vuelo pertenece a una aerolnea Un vuelo tiene un horario de llegada Un vuelo tiene un horario de salida Un pasajero puede acumular millas como viajero frecuente Un pasajero efecta reservaciones

Una reservacin requiere de un registro de tarjeta de crdito Un registro de tarjeta pertenece a un registro de usuario Un vuelo puede tener mltiples conexiones

Tabla 6.5 Asociaciones identificadas con roles para relacionar clases en el dominio del problema. Se extiende el diagrama de clases con asociaciones para incluir roles, como se muestra en la Figura 6.33.

Figura 6.33 Diagrama de clases con asociaciones y roles entre clases identificadas. Se omiten los nombres de las asociaciones. (O/W representa one way o solamente ida, mientras que R/T representa round trip o viaje redondo.) Diagrama de Clases con Multiplicidad Despus de haber hecho el diagrama de clases con asociaciones y roles, se puede construir una versin del diagrama de clases incluyendo multiplicidad. Se determina la multiplicidad para cada asociacin.

Para tal propsito, modificamos levemente las asociaciones identificadas anteriormente, como se muestran en la Tabla 6.6. Ntese que la multiplicidad, al igual que las relaciones entre las clases, son bastante subjetivas pudiendo variar entre analistas. Dentro de esa subjetividad todas deben transmitir un dominio del problema similar.

Asociaciones Identificadas con Roles y Multiplicidad Un vuelo contiene mltiples reservaciones Una reservacin se relaciona con mltiples vuelos Un vuelo tiene un aeropuerto de destino Un vuelo tiene un aeropuerto de origen Un vuelo puede hacer escalas en mltiples aeropuertos Un vuelo contiene mltiples tarifas de ida y vuelta Un vuelo contiene mltiples tarifas solamente de ida Un vuelo se efecta en mltiples aviones (dependiendo del da) Mltiples vuelos se efectan en un mismo avin (en diferente momento) Un vuelo contiene mltiples asientos Un vuelo pertenece a una aerolnea Un vuelo tiene mltiples horarios de llegada (correspondiendo a diferentes destinos) Un vuelo tiene mltiples horarios de salida (correspondiendo a diferentes destinos) Un pasajero puede acumular millas en mltiples cuentas de viajero frecuente Un pasajero efecta mltiples reservaciones Mltiples pasajeros pueden pertenecer a una misma reservacin Mltiples reservaciones pueden requerir de un mismo

registro de tarjeta de crdito Un registro de tarjeta pertenece a un registro de usuario Un vuelo puede tener mltiples conexiones

Tabla 6.6 Asociaciones identificadas con roles y multiplicidad para relacionar clases en el dominio del problema. Se extiende el diagrama de clases con asociaciones y roles, para incluir multiplicidad, como se muestra en la Figura 6.34.

Figura 6.34 Diagrama de clases con asociaciones, roles y multiplicidad entre clases identificadas. Se omiten los nombres de las asociaciones. Identificacin de Atributos De manera similar a asociaciones se puede determinar los atributos del dominio del problema. Este proceso tiene una complejidad similar al de identificacin de las asociaciones. Sin embargo, identificar atributos puede resultar hasta ms difcil de lograrlo a travs de un proceso de bsqueda a partir de la descripcin del problema e incluso del documento de casos de uso. En lugar de esto, simplemente identificamos nuestros propios atributos para las distintas clases identificadas para el dominio del problema del sistema de reservaciones, como se muestran en la Tabla 6.7.

Clases

Atributos

Vuelo Reservacin

Nmero Clave

RegistroUsuario Nombre, Direccin, Colonia, Ciudad, Pas, Cdigo Postal, Telfono Casa, Telfono Oficina, Fax, Email, Login, Password Horario Aerolnea Aeropuerto Tarifa Asiento Pasajero RegistroTarjeta Avin Da, Hora Nombre Nombre, Ciudad, Pas Clase, Precio, Impuestos Fila, Letra Nombre Nombre, Nmero, Expedidor, Vencimiento Fabricante, Modelo

ViajeroFrecuente Nmero, Aerolnea

Tabla 6.7 Atributos identificados para las clases identificadas en el sistema de reservaciones de vuelo. Nuevamente, este proceso de identificacin es sencillo cuando el problema es muy limitado y el dominio es fcil de analizar. De lo contrario se requiere un proceso de identificacin mucho ms extenso como veremos en la etapa de diseo. No es necesario listar todos los atributos, solamente los atributos ms relevantes, omitiendo atributos menores. Diagrama de Clases con Atributos

Se extiende el diagrama de clases con asociaciones, roles y multiplicidad, para incluir los atributos principales, como se muestra en la Figura 6.35.

Figura 6.35 Diagrama de clases con asociaciones, roles, multiplicidad y atributos para clases identificadas. Se omiten los nombres de las asociaciones y slo se muestran los atributos ms relevantes. Diccionario de Clases El diccionario de clases o diccionario de datos describe textualmente las clases identificadas durante el modelo del dominio del problema. Este diccionario sirve como un glosario de trminos y se muestra a continuacin.

Vuelo - Se denomina por medio de un nmero. El vuelo tiene como origen un aeropuerto en una ciudad y tiene como destino un aeropuerto de otra ciudad. Un vuelo puede tener mltiples escalas y mltiples vuelos se relacionan por medio de conexiones. El vuelo pertenece a una aerolnea y puede operar varios das a la semana teniendo un horario de salida y otro de llegada. Reservacin - Para poder tomar un vuelo es necesario contar con una reservacin previa, la cual debe pagarse antes de una fecha

lmite, que puede ser el propio da del vuelo. Una reservacin puede hacerse para mltiples vuelos y mltiples pasajeros. La reservacin cuenta con una clave identificando un rcord de reservacin particular. RegistroUsuario - Para poder utilizar el sistema de reservaciones, el usuario debe estar registrado con el sistema. El registro contiene informacin acerca del usuario que incluye nombre, direccin, colonia, ciudad, pas, cdigo postal, telfono de casa, telfono de oficina, fax, email, login y password. Horario - El horario de un vuelo se determina por su hora de salida y hora de llegada durante los das que opera. Aerolnea - La aerolnea provee servicio de mltiples vuelos entre diferentes ciudades bajo diferentes horarios. La aerolnea se identifica por un nombre. Aeropuerto - El aeropuerto sirve como origen, destino y escalas de un vuelo. El aeropuerto se encuentra en una ciudad de un pas determinado. Tarifa - Los diferentes vuelos tienen mltiples tarifas para compra de boleto, variando segn la clase de boleto, si son de ida o de ida y vuelta, y dependiendo de las diversas restricciones y ofertas existentes. Asiento - Una reservacin de vuelo puede incluir la asignacin de asiento, especificada mediante una fila y un nmero. El nmero de asientos disponibles en un vuelo particular dependen del tipo de avin que opere ese da. Pasajero - Para poder hacer una reservacin se requiere dar el nombre del pasajero. Varios pasajeros pueden aparecer bajo una sola reservacin. RegistroTarjeta - Para poder hacer un pago con una tarjeta de crdito, se debe tener un registro de tarjeta. El registro contiene informacin acerca de la tarjeta incluyendo nombre, nmero, expedidor y vencimiento. LA tarjeta est ligada a un registro de usuario. Avin - Un vuelo en una fecha determinada se hace en un tipo de avin particular. El tipo de avin define la cantidad mxima de pasajeros que pueden viajar en ese vuelo para esa fecha. ViajeroFrecuente - El pasajero tiene la opcin de acumular millas para un vuelo particular si cuenta con una tarjeta de viajero frecuente para la aerolnea correspondiente.

El modelo del dominio del problema puede hacerse bastante complejo en el caso de sistema de gran tamao, para lo cual es necesario separar las clases en mdulos. De tal manera, el modelo completo se dividira en una coleccin de mdulos, donde cada mdulo es una agrupacin lgica de clases y sus asociaciones correspondientes. Para el sistema de reservaciones de vuelo podemos identificar dos mdulos principales para el dominio del problema de acuerdo a la relacin lgica entre las clases. Estos mdulo son Registro, conteniendo las clases que guardan informacin sobre el usuario del sistema y Servicios conteniendo las clases que guardan informacin sobre los vuelos, pasajeros y reservaciones. En otras palabras, las clases para el mdulo de registro se relacionan con la utilizacin del sistema ligados al actor Base de Datos de Registro, mientras que las clases para el mdulo de servicios se relacionan con el propio sistema de reservaciones ligados al actor Base de Datos de Reservaciones. La razn de separar en dos mdulos va muy de la mano con la existencia de estos dos actores secundarios, ya que al corresponder cada actor secundario a una base de datos, los mdulos afianzan esta correspondencia. Sin embargo, esto no tiene por qu ser realmente as, pudiendo existir un slo mdulo para una sistema con mltiples actores secundarios o incluso mltiples mdulos por cada actor secundario. A continuacin describimos los mdulos para el sistema de reservaciones de vuelo. Servicios En la Figura 6.36 se muestra las clases pertenecientes al mdulo de Servicios del sistema de reservaciones.

Figura 6.36 Diagrama de clases para el mdulos de Servicios del sistema de reservaciones de vuelo. Registro En la Figura 6.37 se muestra las clases pertenecientes al mdulo de Registro del sistema de reservaciones.

Figura 6.37 Diagrama de clases para el mdulos de Servicios del sistema de reservaciones de vuelo.