Escuela de Ingeniera Coquimbo Prof. Daro Rojas 2013 2
Control 1 - Pauta Objetivos Evaluar que el alumno sea capaz de modelar mediante UML el diseo del diagrama de clases para aplicaciones simples. Evaluar que el alumno sea capaz de disear e implementar un programa utilizando los conceptos bsicos de OO. Fecha Evaluacin 5 de Septiembre 2013 Duracin 45 minutos Parte I + 45 Parte II (todos al mismo tiempo) Otras Indicaciones En los primeros 45 minutos los computadores deben permanecer apagados En los segundos 45 minutos, se prohbe tener abierta cualquier aplicacin que no sea NetBeans. De no cumplir con ello ser motivo para retirar la prueba y dar por finalizada Al terminar la parte en computador deber (SOLO EN ESE MOMENTO) ingresar a Educ@ y enviarlo por medio de la plataforma. Cualquier intento de copia o trampa ser calificado con un 1.0 La prueba es individual en todo sentido Pruebas con letra ilegible o cdigo desordenado sin cumplir con las convenciones de escritura no sern revisados
Parte I Modelamiento UML (50%)
Construya el diagrama de clases UML para una aplicacin que considere el siguiente requerimiento:
La carrera de informtica de la UCN necesita una aplicacin para administrar los tarreos que realiza durante el ao, para la cual se han definido los siguientes requerimientos:
La aplicacin tiene un solo administrador que tiene login y password. Se necesita almacenar la informacin de cada tarreo como lo es la fecha, hora de inicio y lugar de su desarrollo (lugar general como por ejemplo en que universidad) Actualmente se posee un conjunto de juegos en los que se puede participar, donde podemos encontrar los shooter, deportivos, luchas y estrategia, donde para cada uno se necesita almacenar la cantidad de jugadores mnimo y mximo, nombre del juego y plataforma. Cabe destacar que para los shooter se deben administrar las distintas modalidades de juego multiplayer que posean cada uno, a los deportivos se debe agregar el tipo de control utilizado (se incluyen como deportivos los juegos que utilizan controles tipo wiimote y Kinect). Adems para los juegos de lucha se incluye el distintivo de retro para los juegos de luchas clases de antiguas plataforma. Cada tarreo se realiza con la participacin de equipos. Los equipos poseen nombre y estn integrados por dos o ms alumnos de la carrera, para los que se necesita el nombre real y alias. Los equipos pueden ser de distinto tamao con un mximo de 6 personas por equipo Para los juegos de lucha pueden participar solo 1 integrante por equipo Adems, por cada tarreo se almacena la tabla de posicin para el conjunto de juegos utilizado, adems del lugar especfico (por ejemplo sala) donde se realiza y hora de cada juego. Cabe hacer notar que no en todos los tarreos se juegan todos los juegos, solo se eligen algunos de ellos. El sistema debe ser capaz de entregar a planificacin de cada tarreo como hora, lugar y participantes El sistema debe ser capaz de desplegar el listado de equipos y miembros inscritos para cada tarreo Un equipo puede participar en ms de un juego, pero para cada uno de ellos puede presentar una lista distinta de personas. El sistema debe ser capaz de calcular el total de personas participantes El sistema es capaz de ingresar los equipos y juegos en forma separada a la organizacin de cada tarreo.
Posible solucin
Puntaje segn Nivel 0% 30% 50% 80% 100% Nivel de cumplimiento Ptje por Item No cumple Cumple Parcialmente Cumple Mnimamente Cumple Casi Todo Cumple en Totalidad Generalizacin 20% Usa notacin incorrecta o no reconoce la propiedad, repite atributos o mtodos, no aprovecha la propiedad de herencia Reconoce la propiedad pero no la aplica correctamente en las clases involucradas, no reconoce todos los atributos o mtodos, o agrega alguno que no existe Reconoce la propiedad y usa la notacin correcta, atributos y mtodos correctos, pero no realiza las asociaciones con la super clase o sub clase segn corresponde con el resto del diagrama Determina la super- clase y todas las sub clases con sus atributos correctamente
Asocia correctamente las clases con el diagrama
Aprovecha la propiedad de herencia Clases 30% Usa notacin incorrecta o no reconoce la existencia Determina menos de 7 clases en el problema en forma correcta, o determina al menos una clase que no existe, o convierte un atributo o mtodo en clase cuando no corresponde (o viceversa)
Inventa atributos o mtodos no especificados, faltan los descritos explcitamente en el problema
Define atributos especificados en las relaciones Determina al menos 7 de las clases correctamente con sus atributos, falla en al menos un mtodo o atributo Determina 7 o ms clases con atributos, mtodos y restricciones Asociaciones 25% No determina la propiedad o usa notacin incorrecta, invierte cardinalidades o no interpreta correctamente la notacin (invierte, asume otra propiedad, etc), Determina menos de tres asociaciones o posee ms de una cardinalidad incorrecta o no especificada. Define cardinalidades no presentes en el problema Asociaciones no se ajustan al enunciado relacionando elementos que no deberan estarlo o no relacionando lo que debera estar asociado. Determina 3 asociaciones todas con especificacin completa y correcta. Determina ms de 3 asociaciones, todas con direccin, cardinalidad, rol, tipo y restricciones correctamente especificadas.
Al menos una asociacin no es acorde al problema. Determina ms de 3 asociaciones, todas con direccin, cardinalidad, rol, tipo y restricciones correctamente especificadas.
Las asociaciones se ajustan totalmente al problema Clase de Asociacin o 25% No determina la propiedad o usa notacin incorrecta Determina la clase de asociacin en forma incorrecta Determina la clase de asociacin y sus atributos mltiple- asociacin para determinar relaciones n:m restricciones
La escritura incorrecta de nombres de clases o atributos sern consideradas notacin incorrecta.
Parte II Modelamiento e Implementacin Java (50%)
Desarrolle un programa en Java O.O. que implemente el siguiente diagrama de clases y sus respectivos requerimientos.
Requerimiento: Una consulta mdica, necesita un sistema para registrar las fichas de sus pacientes por cada consulta. Un paciente es identificado con nombre y edad, y cada mdico asignado mediante su nombre y cdigo. Una ficha incluye los datos del paciente, datos del mdico y los datos de la consulta que son el diagnstico y tratamiento indicados por el medico El sistema debe permitir ingresar las fichas (con todos sus datos) y tambin debe proveer la funcionalidad de poder consultar por la ficha de un paciente indicando su nombre Cada ficha tiene solo un paciente, un mdico y un solo registro de consulta
Diagrama de Clases
El siguiente diagrama de clases es entregado a ud. por el analista para su implementacin (Fig. 1)
Diseo de Interfaz de Usuario
Se incluye tambin en el requerimiento, el siguiente ejemplo de diseo de cmo se requiere la interfaz de usuario solicitada, con dos ejecuciones para el ingreso de datos (Fig.2) y consulta (Fig.3)
1) Ingresar Ficha Paciente 2) Ver Ficha de Paciente 3) Salir 1 Ingrese nombre medico: Mata Sano Ingrese codigo medico: 123 Ingrese nombre paciente: Juan Perez Ingrese edad paciente: 23 Ingrese Diagnostico: colesterol alto Ingrese Tratamiento: dieta blanda
1) Ingresar Ficha Paciente 2) Ver Ficha de Paciente 3) Salir 2 Ingrese nombre del paciente Juan Perez Nombre Paciente: Juan Perez Edad: 23 aos Nombre Medico: Mata Sano codigo: 123 Diagnostico: colesterol alto Tratamiento: dieta blanda 1) Ingresar Ficha Paciente 2) Ver Ficha de Paciente 3) Salir
Fig.3
Posible solucin en plataforma. Puntaje segn Nivel 0% 30% 50% 80% 100% Item Ptje por Item No cumple Cumple Parcialmente Cumple Mnimamente Cumple Casi Todo Cumple en Totalidad Clases 20% No implementa todas las clases, accede incorrectamente a los atributos o mtodos, o proyecto mal estructurado Implementa menos de las clases del enunciado o no considera todos los atributos o mtodos o visibilidad Declara todas las clases y atributos y mtodos , falla en a lo ms 1 atributo o en a lo ms 1 visibilidad Declara toda clase atributo y mtodo, falla la implementacin de los mtodos Todas las clases atributos y mtodos correctos Asociaciones 15% No relaciona clases, o relaciona a travs de otros mecanismos sin objetos cuando son requeridos Relaciona clases mediante la declaracin de atributos objeto, pero falla en al menos una cardinalidad Toda asociacin es implementada en su correcta cardinalidad Interfaz Usuario 15% No realiza nada de lo indicado en el ejemplo, excepto las impresiones de mensajes por pantalla Implementa manu, falla en setData() Cumple exactamente con el ejemplo Orden Cdigo 15% No cumple con ninguna de las indicaciones Cumple solamente con nombres de clases Cumple con todo , pero no identa o est desordenado Todo ordenado con las convenciones de clases, variables, mtodos e identacin del cdigo, ordenado Requerimiento 35% El programa no compila El programa no funciona, no hace nada til, pero hay desarrollo lgico en el cdigo fuente Funciona pero no cumple todo el requerimiento El programa funciona totalmente como se requiere