Sunteți pe pagina 1din 8

2010 Ingeniera de Software

INGES

INF1300

Modelo del Dominio (representado mediante un diagrama de clases)


Ejercicio Resuelto

1) La empresa ATodaPrueba desea construir una aplicacin para administrar su programa de clientes frecuentes. Este programa ofrece a los clientes varios tipos de beneficios, tales como puntos para compras, kilmetros de viajes, tarifas reducidas, arriendo de un auto grande por el precio de uno estndar, etc. El modelo de negocio de los programas de clientes frecuentes de ATodaPrueba es el siguiente. Una empresa que ofrece a sus clientes membreca en el programa de cliente frecuente es una empresa asociada al programa. Varias empresas pueden estar asociadas al programa, en cuyo caso los clientes que son miembros del programa pueden beneficiarse de los servicios ofrecidos por cualquiera de las empresas asociadas. Cual-quier persona cliente de una empresa asociada puede ingresar al programa de cliente frecuente llenando un formulario y obteniendo una tarjeta de membreca; entonces, pasa a ser un cliente del programa. La tarjeta es entregada a una persona, pero puede ser usada por toda una familia o una empresa. El programa de cliente frecuente permite a sus clientes ahorrar puntos. Cada empresa asociada decide cuntos puntos son asignados por una determinada compra. Los puntos ahorrados pueden usarse a su vez para comprar servicios de una de las empresas asociadas. Para contabilizar los puntos ahorrados por un cliente, a cada membreca corresponde una cuenta de cliente frecuente. Es posible hacer diversos tipos de transacciones sobre la cuenta. Por ejemplo, si el programa tiene cuatro empresas asociadas un supermercado, una cadena de bombas de bencina, un servicio de arriendo de autos y una lnea area entonces podra funcionar as. El supermercado permite usar los puntos ganados para comprar y da 5 puntos por cada compra regular de ms de $12,000; las bombas slo ofrecen descuentos de un 5% en cada compra; el arriendo de autos ofrece 20 puntos por cada $50,000 gastados; y la lnea area permite usar los puntos ganados para obtener vuelos gratis, y da un punto por cada 25 km de vuelo para pasajes pagados normalmente. En este caso, hay dos tipos de transacciones: aqullas en las que el cliente gana puntos, y aqullas en las que el cliente gasta puntos. Los clientes que usan extensivamente su membreca son recompensados con un mejor nivel de servicio. Por ejemplo, para el caso anterior, los clientes que estn en el nivel ms alto reciben los siguientes servicios adicionales: cada dos meses, el supermercado ofrece un artculo completamente gratis; las bombas ofrecen un descuento de 10% en cada compra; el arriendo de autos ofrece un auto ms grande por el mismo precio; y la lnea area ofrece un asiento en clase ejecutiva por el precio de uno econmico. Para tener acceso a este mejor nivel hay que cumplir con al menos una de estas condiciones: tres aos seguidos con una facturacin anual promedio de $2,500,000; o un ao con una facturacin de $7,500,000. ATodaPrueba maneja los datos de todos los clientes del programa y sus transacciones sobre las cuentas de cliente frecuente. Para ello, las empresas asociadas deben informar a ATodaPrueba de todas las tran-sacciones sobre tarjetas de membreca. Cada ao, ATodaPrueba enva nuevas tarjetas a todos sus clientes, y, cuando corresponde, actualiza el nivel de servicio; las tarjetas antiguas son invalidadas. Un cliente puede retirarse del programa, perdiendo los puntos que le quedaban; y ATodaPrueba puede invalidar una membre-ca si el cliente no ha usado su tarjeta por un cierto perodo de tiempo, por ejemplo, un ao. Construye un modelo de dominio que pueda deducirse de la informacin anterior.

Solucin: La siguiente solucin se presenta en dos partes, para no sobrecargar el diagrama: un diagrama de clases, que slo incluye las clases y sus relaciones (asociaciones); y los atributos correspondientes a cada clase. Las asociaciones en el diagrama se muestran sin direccin, porque en los modelos de dominio lo que interesa es simplemente identificarlas. Por lo mismo, los nombres de las asociaciones son verbos elegidos de manera que la secuencia <nombre-de-clase-1> <nombre-de-asociacin> <nombre-de-clase-2> forme una frase legible y significativa; por ejemplo, Programa Ofrece Membreca, Transaccin Opera-sobre Cuenta y Servicio Depende-de Nivel de Servicio.

2) Considera el siguiente modelo de dominio para un sistema de buzn de voz. En este sistema, una persona llama a un anexo y, suponiendo que la otra persona no contesta, deja un mensaje. La otra persona puede ms tarde recuperar los mensajes, guardarlos o borrarlos. Ya sea para dejar o recuperar un mensaje, primero hay que llamar al sistema; el sistema entonces pide el nmero del anexo del buzn con el que la persona se quiere comunicar. Cuando se establece la conexin con el buzn, el sistema dice un saludo: identifica el buzn y pide que el que llam deje un mensaje, o, si es el dueo, ingrese la contrasea del buzn. Si el que llam deja un mensaje, el sistema lo guarda en la cola de mensajes del buzn. Si el dueo ingresa la contrasea, el sistema le ofrece las opciones de recuperar los mensajes, cambiar la contrasea, o cambiar el saludo. La opcin de recuperar los mensajes permite escuchar, guadar o borrar los mensajes de a uno. a) Dibuja el diagrama de secuencia correspondiente a la realizacin del caso de uso Dejar un mensaje. b) Dibuja el diagrama de secuencia correspondiente a la realizacin del caso de uso Recuperar mensajes.

3) Mltiples clientes (en rigor, los objetos de software que los representan) comparten el acceso a la misma base de datos de vuelos de la lnea area, ya sea para consultar vuelos o para comprar pasajes. Cuando un cliente slo est consultando vuelos, cualquiera otros clientes pueden consultar vuelos al mismo tiempo. Sin embargo, cuando un cliente est comprando un pasaje para un vuelo, tiene que tener acceso exclusivo a la base de datos: ningn otro cliente puede tener acceso al mismo tiempo, ni para comprar pasajes ni para consultar vuelos. Para asegurar este comportamiento, se usa un objeto que controla el acceso de los clientes a la base de datos: los clientes que quieren tener acceso a la base de datos, ya sea para consultar vuelos o para comprar pasajes, deben solicitar el acceso a este objeto controlador. Cuando el controlador recibe una solicitud de acceso a la base de datos, acta de la siguiente manera: Si en ese instante ningn cliente tiene acceso a la base de datos, o si un cliente est consultando vuelos y el solicitante tambin quiere consultar vuelos, entonces el controlador concede el acceso y toma nota del nuevo cliente. En otro caso, no concede el acceso, pero toma nota del cliente que hizo la solicitud. Cuando un cliente termina su acceso a la base de datos, informa al controlador; y, si corresponde, el controlador entonces concede acceso a los clientes a los que no se los haba podido conceder. Dibuja un diagrama de secuencia del descrita en el enunciado.
UML

que ilustre la interaccin entre los distintos objetos

Solucin: La siguiente solucin se presenta en tres diagramas, para facilitar su comprensin. Primero, un diagrama que muestra la interaccin entre un cliente que quiere consultar y el controlador. Luego, un diagrama que muestra la interaccin entre un cliente que quiere comprar y el controlador. Finalmente, un diagrama que muestra la interaccin entre un cliente que ha terminado de consultar o de comprar y el controlador. Los diagramas muestran, adems, listas de clientes esperando el permiso para consultar o para comprar, manejadas por el controlador.

S-ar putea să vă placă și