Anda di halaman 1dari 22
CAPITULO 14 14.1.1 Principales conceptos que se abordan en este capitulo: 1m desarrollo de una aplicacién completa Construcciones Java que se abordan en este capitulo (En este capitulo no se introduce ninguna construccién nueva de Java.) En este capitulo reunimos muchos de los principios de orientacién a objetos que hemos introducido en este libro mediante la presentacién de un extenso estudio de caso. Empren- deremos el estudio desde Ia fase inicial de la discusién del problema, a través del des- cubrimiento de las clases, el disefio y un proceso iterativo de implementacién y prueba. A diferencia de los capitulos anteriores, no es nuestra intencién introducir nuevos temas, sino que intentamos reforzar los temas presentados en la segunda mitad del libro tales de abstraccién, manejo de errores y diseiio de una aplicacién. como herencia, téct El estudio de caso El estudio de caso que usaremos es el desarrollo de un modelo para una compaiiia de taxis. La compaiiia estd considerando expandir sus operaciones a nuevas zonas de una cierta ciudad. La compaitia opera con taxis y con minibuses. Los taxis dejan a sus pasa- jeros en sus respectivos destinos antes de recoger nuevos pasajeros mientras que los mini- buses pueden recoger varios pasajeros en distintas ubicaciones durante el mismo viaje y trasladarlos a direcciones similares (por ejemplo, recogen varios huéspedes de distintos hoteles y los trasladan a diferentes terminales del aeropuerto). Basado en estimaciones del niimero de los clientes potenciales que tiene dicha zona, la compaiia desea saber si seré beneficioso expandirse y de ser asi, cudntos taxis necesitarian para operar efectivamente. Descripcién del problema El siguiente parrafo presenta una descripcién informal de los procedimientos de ope- racién de la compaiia de taxis, a la que se legé tras varios encuentros con sus inte- grantes. 450 Capitulo 14 ll Un estudio de caso La compania opera tanto con taxis como con minibuses. Los taxis se usan para transportar a un individuo (0 a un grupo pequeio de personas) desde una ubi- cacién de la ciudad a otra; los minibuses se usan para recoger individuos en distintas ubicaciones y transportarlos a sus diferentes destinos, Cuando la com- paiiia recibe la llamada proveniente de una persona, de un hotel, de un lugar de entretenimiento o de una organizacién turistica, trata de asignar un vehiculo para cumplimentar el viaje solicitado, Si no tiene vehiculos disponibles, no imple- ‘menta ninguna forma de sistema de espera. Cuando un vehiculo Mega a una determinada ubicacién de salida para recoger un pasajero, el conductor lo noti- fica a la compania; de manera similar, cuando se deja a un pasajero en su des- tino, el conductor también lo notifica a la compaiia Como hemos sugerido en el Capitulo 10, uno de los objetivos comunes del modelado es que nos ayude a aprender algo sobre la situacién que se modela, Resulta itil iden- tificar tempranamente qué es lo que deseamos aprender porque estos objetivos pueden tener mucha influencia sobre el disefio que producimos. Por ejemplo, si buscamos res- ponder cuestiones relacionadas con la rentabilidad que se podria obtener operando con Jos taxis en esa zona, debemos asegurarnos de que podremos obtener informacién a partir del modelo que nos ayudard a evaluar la rentabilidad. Por lo tanto, debemos con- siderar estas dos cuestiones: la frecuencia con que se pierden pasajeros potenciales debido a que no hay vehiculos disponibles para recogerlos y en el extremo opuesto, la cantidad de tiempo que los taxis permanecen ociosos por falta de pasajeros. Estas influencias no se encuentran en la descripcién basica de la manera en que opera nor- malmente la compaiiia de taxis sino que representan escenarios que tendremos que atra- vesar en el momento en que construyamos el disefio, Por lo tanto, podriamos agregar el siguiente parrafo a la deseripcion: El sistema almacena informacién sobre los pedidos de los pasajeros que no se pueden satisfacer; también proporciona informacién de la cantidad de tiempo que invierten los vehiculos en cada una de las siguientes actividades: trasladar pasajeros, ir a las ubicaciones en las que se solicita un taxi y estar ociosos. Sin embargo, para desarrollar nuestro modelo nos centraremos en la deseripeién ori ginal de los procedimientos de la compaiiia y dejaremos las caracteristicas adicionales como ejercicios para el lector. Ejercicio 14.1 {Considera que existe alguna informacién adicional que seria Util obtener a partir del modelo? De ser asi, agregue estos requerimientos a las descripciones dadas y Uselos en sus propias extensiones del proyecto. =r Analisis y disefo 14.2.1 Tal como lo hemos sugerido en el Capitulo 13, comenzaremos tratando de identificar las clases y sus interacciones en la descripcién del sistema, mediante el método sus- tantivo/verbo, Descubrir clases Los siguientes sustantivos estin presentes en la descripcidn, en su forma singular: compaiia, taxi, minibus, individuo, persona, ubicacién, destino, hotel, lugar de entre- 14.2.2 14.2 Analisis y disefio 451 tenimiento, organizacién turistica, vehiculo, ubicacién de salida, viaje, conductor y pasajero. El primer punto a tener en cuenta es que seria un error armar un conjunto de clases directamente a partir de esta lista de sustantivos; las descripciones informales raramente se escriben de forma tal que se ajusten a esta correspondencia directa. Generalmente, se hace necesario un primer refinamiento que consiste en identificar algunos sindnimos en la lista de sustantivos, es decir, palabras diferentes que se usan para nombrar la misma entidad. Por ejemplo, en este contexto, «individuo», «persona» y «viaje» funcionan como sinénimos de pasajero. Un segundo refinamiento es la eliminacién de aquellas entidades que realmente no es necesario que se modelen en el sistema. Por ejemplo, la descripcién identifica varias ‘maneras en que la compafiia de taxis puede ser contactada: por individuos, por hoteles, por lugares de entretenimiento, por organizaciones turisticas. ¢Ser realmente necesario contemplar estas distinciones? La respuesta dependera de la informacién que queremos obtener a partir del modelo. Seria importante distinguirlas si, por ejemplo, quisiéramos acordar descuentos a los hoteles que proveen un gran niimero de clientes 0 enviar mate- rial de publicidad a los lugares de entretenimiento que atin no solicitan el servicio. Si no se requiere este nivel de detalle, podemos simplificar el modelo «inyectando» pasa- jeros en él segiin algin patrén estadistico razonable. eicio 14.2 Considere la simplificacién del numero de sustantivos aso- ciados con los vehiculos. En este contexto, los sustantivos «vehiculo» y «taxin zson sinénimos? gEs necesario la diferenciacién entre «minibus» y «taxin? ¢Qué ‘ocurre con el sustantivo «conductor»? Justifique sus respuestas. Ejercicio 14.3 En este contexto, es posible eliminar alguno de los siguientes sustantivos": «ubicacién», «destino», «ubicacién de salida» y considerarlos como sinénimos?: Ejercicio 14.4 Identifique los sustantivos de alguna de las extensiones que agregé al sistema y realice las simplificaciones que considere necesarias. Usar tarjetas CRC La Figura 14.1 contiene un resumen de todos los sustantivos y los verbos asociados que quedaron después de llevar a cabo algunas simplificaciones en la descripcién ori- ginal. Ahora, cada uno de los sustantivos podria asignarse a una tarjeta CRC, prepa- rada para registrar sus responsabilidades y colaboradores identificados. A partir de este resumen, es claro que taxi y minibiis son especializaciones de una clase més general de vehiculo. La diferencia principal entre un taxi y un minibus es que un taxi siempre tiene el compromiso de recoger y transportar a un solo pasajero 0 @.un grupo pequeiio de pasajeros, pero un minibus trabaja simultineamente con miil- tiples pasajeros independientes. La relacién entre estas tres clases sugiere una jerarquia de herencia, en la que taxi y minibus representan subtipos de vehiculo. Ejercicio 14.5 Cree tarjetas CRC concretas para los sustantivos/clases iden- tificados en esta seccién, con el propésito de atravesar los escenarios que se sugieren en la descripcién del proyecto.

Anda mungkin juga menyukai