enunciadopracticaspoo2013-14.pdf

8
  Grado en Ingeniería Informática Prácticas de Programación Orientada a Objetos. Objetivo: Desarrollar los conceptos teóricos del paradigma de programación orientada a objetos que han sido impartidos en clase. Reconocer y utilizar las buenas prácticas en la programación orientada a objetos. Conocer el lenguaje JAVA. Enunciado: Un hospital requiere un registro riguroso de la historia clínica de sus pacientes: datos personales, diagnósticos, tratamientos, personal médico que le atendió, etc. Cuando un nuevo paciente ingresa en el hospital, este puede ser registrado como mínimo con su nombre y DNI o por su número clínico de paciente. Además también se le podrá asignar otra información personal como edad, sexo y dirección. En ese momento también se le asignará un médico de entre los disponibles en el hospital. La asignación de médico será aleatoria entre aquellos médicos que menos pacientes tengan asignados. El personal médico, tanto médicos como enfermeros, también es registrado cuando se incorpora al hospital. El sistema registra en este caso el nombre y DNI del personal médico y un código de  personal que le identifica en el hospital, junto al res to de sus datos personales (edad, sexo, dirección). Además, en el caso de los médicos se registrará su número de colegiado. Los médicos tienen asociado un conjunto de pacientes a los que pasan consulta. Así, cuando un médico pasa consulta, realiza un diagnóstico al paciente en el que anota el tipo de diagnóstico (leve, medio, grave) y el tratamiento que se le va a aplicar. El tratamiento que se le aplica a un paciente puede ser una medicación o una operación. Todo tratamiento tiene un código identificador único. Si el tratamiento es una operación, esta puede ser realizada únicamente por los médicos cirujanos. Los médicos cirujanos tienen la especialidad de Cirugía y son los únicos que pueden operar. Además, en cada operación asistirá un enfermero para auxiliar al cirujano y tendrá una fecha programada. Cada operación tiene un nombre asociado. Si el tratamiento es una medicación, se le asignará un enfermero al paciente para que le suministre la medicación. La medicación viene determinada por el nombre del fármaco y la cantidad que se le suministra al paciente. La aplicación para la gestión del hospital será programada en el lenguaje Java [1] utilizando el entorno de desarrollo Eclipse. La práctica será realizada en grupos de dos alumnos y será desarrollada en tres entregas. Tras cada entrega puede ser realizada una revisión y al finalizar todas las entregas se hará una entrevista para defender el trabajo de prácticas.

Upload: juanitoelmasmejor69

Post on 06-Oct-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

  • GradoenIngenieraInformtica

    Prcticas de Programacin Orientada a Objetos. Objetivo: Desarrollar los conceptos tericos del paradigma de programacin orientada a objetos que han sido impartidos en clase. Reconocer y utilizar las buenas prcticas en la programacin orientada a objetos. Conocer el lenguaje JAVA. Enunciado: Un hospital requiere un registro riguroso de la historia clnica de sus pacientes: datos personales, diagnsticos, tratamientos, personal mdico que le atendi, etc. Cuando un nuevo paciente ingresa en el hospital, este puede ser registrado como mnimo con su nombre y DNI o por su nmero clnico de paciente. Adems tambin se le podr asignar otra informacin personal como edad, sexo y direccin. En ese momento tambin se le asignar un mdico de entre los disponibles en el hospital. La asignacin de mdico ser aleatoria entre aquellos mdicos que menos pacientes tengan asignados. El personal mdico, tanto mdicos como enfermeros, tambin es registrado cuando se incorpora al hospital. El sistema registra en este caso el nombre y DNI del personal mdico y un cdigo de personal que le identifica en el hospital, junto al resto de sus datos personales (edad, sexo, direccin). Adems, en el caso de los mdicos se registrar su nmero de colegiado. Los mdicos tienen asociado un conjunto de pacientes a los que pasan consulta. As, cuando un mdico pasa consulta, realiza un diagnstico al paciente en el que anota el tipo de diagnstico (leve, medio, grave) y el tratamiento que se le va a aplicar. El tratamiento que se le aplica a un paciente puede ser una medicacin o una operacin. Todo tratamiento tiene un cdigo identificador nico. Si el tratamiento es una operacin, esta puede ser realizada nicamente por los mdicos cirujanos. Los mdicos cirujanos tienen la especialidad de Ciruga y son los nicos que pueden operar. Adems, en cada operacin asistir un enfermero para auxiliar al cirujano y tendr una fecha programada. Cada operacin tiene un nombre asociado. Si el tratamiento es una medicacin, se le asignar un enfermero al paciente para que le suministre la medicacin. La medicacin viene determinada por el nombre del frmaco y la cantidad que se le suministra al paciente. La aplicacin para la gestin del hospital ser programada en el lenguaje Java [1] utilizando el entorno de desarrollo Eclipse. La prctica ser realizada en grupos de dos alumnos y ser desarrollada en tres entregas. Tras cada entrega puede ser realizada una revisin y al finalizar todas las entregas se har una entrevista para defender el trabajo de prcticas.

  • 2

    Entrega de prcticas: Entrega febrero-junio:

    La prctica se desarrollar en distintas fases, que repercutirn eventualmente en varios entregables. Los plazos de entrega de las prcticas son los siguientes (mirar las entregas para ver requisitos y forma de entrega):

    - Entrega 1: 22 de noviembre de 2013. - Entrega 2: 20 de diciembre de 2013. - Entrega 3 (final): 22 de enero de 2014.

    NOTA: Quien no realice alguna de las tres entregas propuestas, podr entregar el proyecto final el 22 de enero de 2014. Este proyecto final consiste en desarrollar todas las entregas planteadas. La evaluacin del proyecto final ser sobre el 100% de la nota sin contar la evaluacin continua anterior.

    Entrega 1. Anlisis y Diseo:

    El alumno deber describir los requisitos bsicos de la aplicacin, describiendo los actores que interactan en el sistema, las posibles clases que intervienen en la aplicacin, y la relacin entre dichas clases. Para el diseo, el alumno crear un diagrama de clases en lenguaje UML que modele las interacciones bsicas entre las clases del domino del problema. Para la elaboracin de dichos diagramas se puede opcionalmente utilizar herramientas de modelado como Visual Paradigm [2] o Argouml [3].

    Objetivos:

    - Introducir al alumno en el ciclo de desarrollo del software. - Conocer los principios bsicos de la extraccin de requisitos. - Conocer y aplicar correctamente el concepto de clase. - Establecer relaciones entre clases mediante relaciones de clientela. - Utilizar el concepto de herencia como mecanismo de reutilizacin de cdigo donde se ha

    de cumplir la relacin es-un entre las clases. - Aplicar los factores internos de calidad del software con el objetivo de conseguir los

    externos.

    Fecha de entrega: 22 de noviembre de 2013.

    Valoracin de la prctica: 20% de la nota final.

    Instrucciones de la Entrega 1

    Qu debo entregar? Un documento pdf nombrado con el DNI que incluya el anlisis, diseo e implementacin de una estructura de clases correcta identificando roles del sistema y usando diagrama de clases UML

  • 3

    Cmo debo entregarlo? En el campus virtual, siguiendo las especificaciones propuestas en el documento Formato documentacin practicas POO que se encuentra en el campus virtual. Dnde debo entregarlo? Campus virtual, tarea Prctica. Entrega1.

    Evaluacin de la Entrega 1:

    La estructura de clases es correcta y cumple con los principios de la programacin orientada a objetos (80% de la nota de la Entrega 1).

    Existe una explicacin fundamentada para la estructura de clases diseada (10 % de la nota de la Entrega 1).

    La memoria est bien redactada y estructurada (10 % de la nota de la Entrega 1).

    Entrega 2. Fase de implementacin del modelo:

    El alumno deber implementar las clases diseadas en el anlisis y diseo siguiendo los objetivos de esta entrega, e incluyendo la siguiente funcionalidad mnima. Adems el alumno podr incluir sus aportaciones a la aplicacin.

    Funcionalidad mnima exigida en Junio:

    Para superar la prctica con un 5 deber estar implementada correctamente la siguiente funcionalidad:

    1. Aadir, modificar y eliminar usuarios (personal mdico y pacientes) 2. Buscar usuarios en base a diferentes criterios (nombre, DNI,) (usando interfaces) 3. Los mdicos podrn diagnosticar. 4. Aadir, modificar, consultar y eliminar distintos tipos tratamientos. 5. Guardar/Recuperar los datos de la aplicacin en fichero (usando la interfaz Serializable) 6. Datos creados para probar la prctica.

    Objetivos:

    - Introducir al alumno en el ciclo de desarrollo del software.

    - Aplicar el principio de ocultacin de la informacin en la definicin de una clase.

    - Definir correctamente la visibilidad de las declaraciones.

    - Definir adecuadamente mtodos de acceso y modificacin para los atributos de una clase.

  • 4

    - Entender el concepto de propiedad calculada. Valorar cuando una propiedad conviene

    representarla con un atributo o realizar un clculo para su obtencin.

    - Comprender la utilidad de los constructores como mecanismo de inicializacin de los

    objetos. Asimismo, aplicar reutilizacin en la definicin de constructores.

    - Aplicar la sobrecarga en la definicin de mtodos como facilidad del lenguaje para definir

    signaturas coherentes de mtodos y reutilizar la implementacin entre mtodos

    sobrecargados.

    - Definicin y uso de constantes.

    - Conocer la diferencia entre atributos o propiedades de instancia y de clase, y aplicarlos

    correctamente.

    - Comprender la semntica de las referencias en Java.

    - Establecer relaciones entre clases mediante relaciones de clientela.

    - Utilizar el concepto de herencia como mecanismo de reutilizacin de cdigo donde se ha

    de cumplir la relacin es-un entre las clases.

    - Entender la necesidad de la redefinicin de mtodos en la aplicacin de la herencia.

    - Comprender el concepto de polimorfismo, ligadura dinmica y visibilidad para la

    herencia.

    - Comprender el concepto de igualdad de objetos frente a identidad.

    - Definir correctamente la copia de objetos en Java.

    - Valorar la utilidad de la representacin textual de un objeto y realizar su implementacin.

    - Documentar correctamente las clases en JavaDoc.

    - Utilizar el concepto de paquete como mecanismo de organizacin del cdigo.

    - Comprender la importancia de la aplicacin de una convencin de nombrado en la

    escritura de cdigo. Aplicar la convencin de nombres de Java.

    Fecha de entrega: 20 de diciembre de 2013.

    Valoracin de la prctica: 40% de la nota final.

    Instrucciones de Entrega 2

    Qu debo entregar? Un zip nombrado con el DNI que incluya: el proyecto Eclipse (cuyo nombre tambin ser el dni), el documento pdf nombrado con el DNI que incluya el anlisis, diseo e implementacin de la estructura de clases correcta identificando roles del sistema y usando diagrama de clases UML, y la documentacin Javadoc del cdigo.

  • 5

    Cmo debo entregarlo? En el campus virtual, siguiendo las especificaciones propuestas en el documento Formato documentacin practicas POO que se encuentra en el campus virtual. Dnde debo entregarlo? Campus virtual, tarea Prctica. Entrega2.

    Evaluacin de la Entrega 2:

    A la hora de evaluar la Entrega 2 de la prctica se tendrn en cuenta varios criterios que determinan el grado en la calificacin; estos son:

    La estructura de clases es correcta y cumple con los principios de la Programacin Orientada a Objetos.

    El cdigo est optimizado. El cdigo est comentado.

    Antes de calificar se comprueba que: La memoria est bien redactada y estructurada. La funcionalidad mnima haya sido implementada.

    Entrega 3. Implementacin de la interfaz grfica: La interfaz grfica que se propone para esta aplicacin consta de una ventana principal desde la cual se realizan todos los procesos de gestin. Esta consta de dos partes: Administracin y Hospital (ver Figura 1). Desde Administracin se tiene acceso a toda la funcionalidad de gestin de usuarios del sistema.

    Figura 1 Ejemplo de pantalla principal

    Mientras que desde Hospital, los mdicos podrn acceder a los diagnsticos e historial clnico del

  • 6

    paciente (ver Figura 2).

    Figura 2. Ejemplo de pantalla Hospital

    En la parte central se muestra un cuadro de texto donde introducir el paciente a buscar por su nombre o nmero clnico La bsqueda de pacientes se activar al pulsar INTRO sobre el cuadro de texto o con un botn Buscar. El resultado de la bsqueda mostrar los pacientes que hay en la base de datos que coincidan con el criterio de bsqueda, como se muestra en la Figura 2.

    Cada vez que se quiera diagnosticar o consultar el historial clnico de un paciente se mostrar una ventana secundaria con el formulario para introducir los datos correspondientes o para consultar, respectivamente. Una restriccin importante es que una vez creada la ventana con el formulario no se crear un nuevo objeto cada vez que se abra. Es decir, la primera vez que se pulsa en el botn correspondiente se crea el objeto que representa la ventana y se muestra. Las sucesivas veces slo se muestra la ventana, no se crea un objeto.

    Fecha de entrega: 22 de enero de 2014.

    Valoracin de la prctica: 40% de la nota final.

    Instrucciones de entrega

    Qu debo entregar? Un zip nombrado con el DNI que incluya: el proyecto Eclipse (cuyo nombre tambin ser el dni), el documento pdf nombrado con el DNI que incluya el anlisis, diseo e implementacin de la estructura de clases correcta identificando roles del sistema y usando diagrama de clases UML, y la documentacin Javadoc del cdigo. Cmo debo entregarlo? En el campus virtual, siguiendo las especificaciones propuestas en el documento Formato documentacin practicas POO que se encuentra en el campus virtual. Dnde debo entregarlo? Campus virtual, tarea Prctica. Entrega3.

  • 7

    Evaluacin de la Entrega 3:

    A la hora de evaluar la Entrega 3 de la prctica se tendrn en cuenta varios criterios que determinan el grado en la calificacin; estos son: La estructura de clases es correcta y cumple con los principios de la Programacin Orientada a

    Objetos. Existe una explicacin fundamentada para la estructura de clases diseada. Incluye estructuras polimrficas. El cdigo est optimizado. El cdigo est comentado. Existe un correcto control de errores tanto a nivel de excepcin en la ejecucin como de

    interfaz de usuario. Se valorar como puntuacin extra la realizacin de la funcionalidad ampliada para septiembre. Antes de calificar se comprueba que: La memoria est bien redactada y estructurada. La funcionalidad mnima haya sido implementada

    Estructura del proyecto final

    La Figura 3 muestra la estructura que debera tener el proyecto final.

    Figura 3. Ejemplo de ventana con formulario principal

    Clase que incluye el mtodo main

    Paquete que incluye las clases de la interfaz grfica

    Paquete que incluye las clases del dominio

    Fichero de propiedades

    Fichero para explicaciones adicionales

    Directorio con imgenes

  • 8

    Entrega septiembre: La entrega de septiembre consiste en desarrollar las tres entregas que se describen a continuacin, junto con los requisitos adicionales para esta convocatoria.

    Qu debo entregar? Un zip nombrado con el DNI que incluya: el proyecto Eclipse (cuyo nombre tambin ser el DNI) y un documento con la memoria.

    Cmo debo entregar? En el campus virtual, siguiendo las especificaciones propuestas en el documento Formato documentacin practicas POO que se encuentra en el campus virtual.

    Cundo debo entregar? 1 de septiembre de 2014. Dnde? Campus virtual, tarea Prctica septiembre.

    Funcionalidad mnima exigida en Septiembre:

    Para superar la prctica con un 5 deber estar implementada correctamente la siguiente funcionalidad:

    1. Toda la funcionalidad mnima de convocatorias anteriores. 2. Aadir un nuevo tipo de tratamiento: Operacin externa. En la cual la operacin se

    realiza fuera del hospital y por tanto, debe figurar el nombre del hospital dnde se realizar.

    3. Permitir a un mdico trasladar un paciente suyo a otro mdico

    Referencias bsicas de la prctica: [1] P. Deitel y H. Deitel. JAVA cmo programar. 9 edth. Ed. Pearson, 2012. [2] Visual Paradigm, http://www.visual-paradigm.com/ (ltimo acceso 23 de octubre de 2013) [3] ArgoUML, http://argouml.tigris.org/ (ltimo acceso 23 de octubre de 2013)