Está en la página 1de 8

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.

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

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.
2.
3.
4.
5.
6.

Aadir, modificar y eliminar usuarios (personal mdico y pacientes)


Buscar usuarios en base a diferentes criterios (nombre, DNI,) (usando interfaces)
Los mdicos podrn diagnosticar.
Aadir, modificar, consultar y eliminar distintos tipos tratamientos.
Guardar/Recuperar los datos de la aplicacin en fichero (usando la interfaz Serializable)
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.

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.

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

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.

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.
Directorio con imgenes

Paquete que incluye las clases del dominio

Paquete que incluye las clases de la interfaz


grfica
Clase que incluye el mtodo main

Fichero de propiedades
Fichero para explicaciones adicionales
Figura 3. Ejemplo de ventana con formulario principal

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)