Está en la página 1de 3

DESCRIPCIN DEL PROBLEMA Consider un club de golf tan exclusivo que nicamente permite jugar con los palos

y pelotas que el mismo alquila. La cantidad de material disponible en el club es reducida; concretamente, 50 pelotas y 20 palos de golf. Como paso previo a jugar, cada socio del club debe solicitar el alquiler del material necesario. Hay dos clases de socios: novatos y experimentados. Los jugadores con experiencia siempre alquilan una nica pelota y entre 2 y 5 palos para jugar. Un jugador novato suele alquilar un nmero mayor de pelotas (nunca ms de 5 pelotas) y dos nicos palos. En base a la descripcin previa, desarrolla un programa Java que simule la actividad que un grupo de jugadores lleva a cabo en las instalaciones del mencionado club. Concretamente, habr 7 jugadores con experiencia y otros 7 novatos. Cada jugador repetidamente muestra el siguiente comportamiento, independientemente de su clase: decide jugar y reserva el material necesario, juega durante un tiempo, devuelve el material que ha usado, y, finalmente, descansa durante un rato. En ningn caso podr comenzar a jugar si no dispone del material necesario. Del mismo modo, no iniciar su descanso hasta haber devuelto el material usado para jugar, estas funciones debern ser ejecutadas por programas distintos que se ejecuten de forma sincronizada. Para entender cul es el funcionamiento del sistema implementado, cada jugador deber representar por la salida estndar su comportamiento: 1. Antes de realizar una reserva deber escribir un mensaje donde muestre su identidad y el nmero de recursos solicitados. Una vez haya conseguido reservar el material que necesita, escribir un mensaje indicando su identidad, los recursos alquilados y su intensin de comenzar a jugar. Antes de realizar una devolucin deber escribir un mensaje donde muestre su identidad y los recursos devueltos. Una vez completada la devolucin, escribir un mensaje indicando su identidad, los recursos devueltos y su intensin de descansar. Por homogeneidad en el formato de los mensajes, la representacin de la identidad de un jugador y el material que reserva/usa/devuelve se ajustar al siguiente formato: identidad - accin[nmero de pelotas, nmeros de palos]. Por ejemplo, 2 - Reserva[1,3] representa que el jugador con identificador 2 reserva 1 pelota y 3 palos.

2. Una vez desarrollado el programa anterior, analiza su comportamiento en lo relativo a equidad, la existencia o esperas innecesarias, la posibilidad de bloqueos, etc. Crea un fichero, llamado anlisis P4 miNIP.txt, que contenga las el anlisis, esto se puede realizar mediante conteo de ejecuciones de tiempos de juego y espera por cada uno de los jugadores, determinando cual es el que realizo la eleccin ms optima.

3. Los jugadores novatos se organizan de dos en dos, para compartir tanto las pelotas como los palos de golf. El funcionamiento debe ser como sigue. Cuando un jugador llega al club, espera a que haya otro; acuerdan entonces cuntas pelotas van a pedir y, mientras uno de ellos las pide, el otro pide los dos palos necesarios. Cuando ambos han obtenido lo que esperaban, van juntos al terreno de golf(es decir, el primero que acaba debe esperar al otro).

4. Para implementar el sistema anterior el alumno deber codificar tres clases: Simulador, Jugador y Club. La clase Club implementar el monitor que gestiona la concurrencia en el uso del material disponible en el club. Como mnimo deber encapsular dos atributos que representen el nmero de pelotas y palos de golf disponibles y dos mtodos para su reserva y devolucin. Cada objeto de la clase deber ser fcilmente configurable desde el punto de vista de la cantidad de recursos inicialmente disponibles.

5. La clase Jugador implementa los procesos del sistema. No es necesario codificar una clase diferente para cada tipo de jugador. El constructor de la clase debe ser programado para asignar un identificador nico y el tipo de jugador al que pertenece cada objeto concreto. Internamente, el comportamiento que exhibe un jugador (reservar material, jugar, devolver material y descansar) ser repetido un nmero de veces concretas qu tambin ser configurable a travs del constructor. El tiempo que dedica a jugar y descansar ser aleatorio (no superior a 10 segundos para cada actividad) y podr ser diferente en cada ocasin. 6. Finalmente, la clase Simulador es la aplicacin Java que configura y ejecuta el sistema. Contendr el mtodo main() donde sern declarados los elementos que constituyen el sistema: los jugadores, el club y el material disponible inicialmente. Inicialmente. Genere una GUI para la configuracin de los 14 jugadores como mximo (7 con experiencia y 7 novatos), Esta clase implementar un socket de servicio para poder atender todas las peticiones de los usuarios.

ENTREGABLES

1. El diseo deber contener al menos los siguientes elementos: A. Diagrama de flujo de la aplicacin. B. Diagramas de clases, comportamientos y objetos (ver diagramacin UML) C. Generacin de las GUI correspondientes para la ejecucin de cada uno de los apartados, incluyendo el mdulo de estadsticas. D. Cdigos documentados. E. Impresin de pantallas de la ejecucin y prueba del sistema. 2. Elaborar el reporte correspondiente, el cual debe contener al menos los siguientes elementos: a. Portada e ndice. b. Introduccin. Esta seccin deber incluir una introduccin a la teora bsica de la aplicacin diseada. c. Diseo de la solucin. Deber incluir todos los elementos mencionados en el punto 1. d. Conclusiones. Comentarios, conclusiones y/o problemas que se presentaron a lo largo de la prctica. e. Bibliografa. En el formato APA f. Rubrica de evaluacin.

3. Elaboracin del proyecto en equipos de mximo 3 personas, se entrega el 17 de abril en un horario de 7am a 12 pm.

GUA DE OBSERVACIN PARA LA IMPLEMENTACIN DE UN ALGORITMO EVOLUTIVO PARALELO

DATOS GENERALES DEL PROCESO DE EVALUACIN


Nombre de los alumnos Matrculas: Firmas de los alumnos:

Asignatura

Fecha:

Periodo Cuatrimestral

Nombre del profesor

Firma del profesor

INSTRUCCIONES
Revisar los documentos o actividades que se solicitan y marque en los apartados SI cuando la evidencia a evaluar se cumple; en caso contrario marque NO. En la columna OBSERVACIONES ocpela cuando tenga que hacer comentarios referentes a lo observado.

Valor del reactivo Proyecto 10%

Caracterstica a cumplir (Reactivo) SI

CUMPLE NO NA

OBSERVACIONES

Introduccin. Expresa el contenido de la prctica, incluyendo el problema a resolver, as como la descripcin de los conceptos usados en el planteamiento. Anlisis y Diseo. Incluye el anlisis y los diagramas que identifican y explican claramente los elementos del anlisis. Cdigo. Se aplica el paradigma orientado a objetos, con estilo de codificacin y documentacin del cdigo. Pruebas. Anexa una seccin de pruebas donde presenta ejemplos del funcionamiento del planteamiento de la solucin.

15%

15%

10%

10%

Conclusiones. Expresa sus opiniones sobre los resultados obtenidos. Desempeo. El trabajo se entrega en la fecha establecida, observando: puntualidad, responsabilidad, limpieza, orden, ortografa y gramtica adecuada. Bibliografa. Presenta mnimo dos referencias bibliogrficas en el formato adecuado. Eficacia. El programa resuelve el problema planteado.

15%

10%

15%