Anda di halaman 1dari 9

Práctica

Diseño de Aplicaciones Orientadas a


Objetos. Curso 2017-2018

Timothy Read, Juan M. Cigarrán

V 1.1


Diseño de Aplicaciones Orientadas a Objetos

Contenido
Planteamiento Inicial .................................................................................................................... 2
Tareas Obligatorias (7 puntos) ..................................................................................................... 3
Primera parte ........................................................................................................................... 3
Segunda Parte .......................................................................................................................... 4
Tercera Parte ............................................................................................................................ 4
Cuarta Parte ............................................................................................................................. 5
Tarea Opcional (3 puntos) ............................................................................................................ 5
1
Integración ............................................................................................................................... 5
Normas y orientaciones ............................................................................................................... 6
Material a Entregar ...................................................................................................................... 6
Temas organizativos ..................................................................................................................... 6
Normas para los Tutores .............................................................................................................. 7
Centros Asociados vs. Prácticas en Asignaturas Obligatorias ...................................................... 8

Práctica 2017-2018
Diseño de Aplicaciones Orientadas a Objetos

Para la realización de la práctica de Diseño de Aplicaciones Orientadas a Objetos (DAOO)


vamos a tomar como punto de partida la práctica realizada el curso pasado en la asignatura de
Programación Orientada a Objetos (POO).

Tal y como se indica en la guía del curso, el propósito de DAOO es profundiza en la aplicación
de POO en escenarios más complejos. Las asignaturas han sido diseñadas así con ese objetivo.
Por este motivo, en la primera parte de DAOO se plantea un repaso de los contenidos teóricos
de POO, incidiendo en los aspectos gráficos y de interfaz de usuario, con el fin de aplicar dichos
conocimientos sobre una práctica con una cierta complejidad gráfica. De hecho, uno de los
capítulos de la guía de estudio hace referencia a los aspectos relacionados con diseño de
interfaces en Java, por lo que el apartado gráfico no debería suponer un problema. No 2
obstante, y con el fin de hacer accesible el desarrollo de la práctica a todos los estudiantes,
hemos decidido hacer OPCIONAL la parte final de ésta, es decir, la parte donde se integran los
patrones de diseño realizados por el estudiante dentro de la aplicación real.

Esto significa que si sólo realizáis la parte de la práctica que hace referencia a los patrones
podréis aprobar la práctica, pero con una nota máxima de 7 puntos sobre 10. Si, por el
contrario, decidís llevar a cabo la integración final podríais obtener una nota máxima de 10
sobre 10.

El Equipo Docente recomienda, evidentemente, que el estudiante curse POO antes de DAOO.
No obstante, los estudiantes que no pasen por POO, por el motivo que sea, pueden cursar
DAOO, pero el Equipo Docente no proporcionará resúmenes de la parte teórica de POO ni
tampoco una solución a la práctica de dicha asignatura. Aunque el enunciado de la práctica de
DAOO esté basado en la práctica de POO del año anterior, el estudiante debe tener claro que
el enfoque es totalmente diferente ya que, en esta asignatura, se pretenden aplicar los
conocimientos de patrones de diseño para su rediseño completo.

El objetivo principal de la práctica fue diseñar e implementar un sistema integrado de gestión


de un taller de vehículos (a partir de ahora, SIGTV). Dicho trabajo supuso una aproximación
genérica a los conceptos de la programación orientada a objetos, sin profundizar en aspectos
más relacionados con el diseño a alto nivel de la aplicación. Más concretamente, no se incidió
en el uso de patrones de diseño o en la aplicación del Modelo Vista Controlador para organizar
el conjunto de clases que formaban parte de la aplicación. En la práctica de la asignatura
Diseño de Aplicaciones Orientadas a Objetos pretendemos revisitar dicho trabajo aplicando los
nuevos conceptos aprendidos en la asignatura.

Planteamiento Inicial
La Práctica del presente curso va a ser diseñar e implementar un sistema integrado de gestión
de un taller de vehículos (SIGTV). Todos que somos dueños de algún tipo de vehículo (moto,
coche, furgoneta, etc.) tenemos experiencia de llevar el nuestro al taller para algún tipo de
revisión y/o reparación. Puede que sea un puesto a punto antes de las vacaciones o algún viaje
largo, o debido a un problema concreto o ruido que hace o alguna fuga de líquido, etc. Hace
años el responsable de un taller no habrá hecho más que apuntar en un libro una breve
descripción del vehículo, el motivo por el cual ha acudido al taller su dueño y algún número de
contacto. Hoy en día, debido en parte de la competición entre talleres y el deseo de aportar

Práctica 2017-2018
Diseño de Aplicaciones Orientadas a Objetos

servicios de calidad para poder fidelizar al cliente, los talleres usan sistemas de gestión para
todo el proceso de recepción, proceso y facturación de cada vehículo que pasa por el taller.

En general, las funciones que tienen un SIGTV son varias según el perfil de su usuario
(recepcionista, mecánico, comercial, jefe del taller) e incluyen las siguientes:

• Recepción de vehículo: a entrar un vehículo en el taller hay que generar una ficha
con los datos (si ya no forma parte del registro histórico del taller) más
importantes (marca, modelo, matrícula, cliente, etc.), dejar constancia del motivo
de la visita (problema mecánico, revisión, etc.) e imprimir el formulario de
autorización que el dueño tiene que firmar para dejar constancia de su permiso
3
para llevar a cabo el trabajo.

• Asignación de los trabajos a los mecánicos: según que vayan terminando trabajos
el jefe del taller va asignando nuevos vehículos.

• Proceso de los vehículos: un mecánico, a terminar la reparación de un vehículo,


acude al sistema para ver los siguientes trabajos que le toca. Según la información
en el sistema tiene que investigar el problema, llevar a cabo el trabajo, y dejar
constancia del proceso en el sistema para que el comercial puede informar al
cliente que su vehículo está listo para recoger. Una vez que el mecánico termina
con un coche le aparece el siguiente que tiene que trabajar. Si por el motivo que
sea (por ejemplo, falta piezas o que un cliente no ha dado su autorización a realizar
una reparación debido al gasto) un mecánico dejar un trabajo en un estado sin
completar (anotando en el sistema el motivo) y pasa al siguiente trabajo.

• Gestión de usuarios: altas, bajas, modificaciones de las personas que figuran en el


sistema (miembros del taller, jefe, mecánico, comercial y clientes). La primera vez
que acude un cliente al taller hay que darle de alta en el sistema.

• Gestión de clientes por parte del comercial: comunicar a los clientes el precio de
una reparación, informarles que su vehículo está listo para recoger, presentar
ofertas especiales (por ejemplo, revisión antes de la inspección técnica del
vehículo [ITV] o ir de vacaciones, revisión de los neumáticos, frenos).

Tareas Obligatorias (7 puntos)Ver practicas de otros años (2014-15 apuntrix)


El estudiante deberá proceder a realizar la aplicación SIGTV aplicando los
conceptos aprendidos en la asignatura Diseño de Aplicaciones Orientadas a Objetos. Más
concretamente, se pide que el estudiante realice las siguientes sub-tareas para llevar a
buen término la realización de la práctica.

Primera parte
El estudiante deberá plantear el desarrollo completo de la práctica basándose en una
aproximación basada en Modelo Vista Controlador. De este modo, deberá definir claramente
qué clases van a definir su modelo, cuáles serán las tareas del controlador para gestionar el

Práctica 2017-2018
Diseño de Aplicaciones Orientadas a Objetos

flujo entre la vista y el modelo, así como el modo en el que los diferentes elementos de la
aplicación se mostrarán en pantalla e interactuarán entre ellos.

Responda a estas preguntas por escrito en su memoria de práctica antes de pasar a la


siguiente parte:

1- ¿Es útil aplicar el Modelo Vista Controlador en esta situación? Razone la respuesta.
2- Haga un pequeño esquema donde se pueda ver claramente de que tareas específicas
es responsable cada componente del MVC.
3- ¿Será necesario implementar un patrón Observer para recoger los eventos producidos
en la interfaz? Razone la respuesta.
4
4- Realice un diagrama de clases inicial donde modele los distintos actores de la
aplicación, lo que definiría el modelo, e identifique propiedades compartidas entre
estos.

Segunda Parte
Dado que el taller dispone de diversos tipos de vehículos similares entre sí, coches
(microcoche, familiar, berlinas, monovolúmenes, etc.), motos, etc. Se pide hacer uso de un
patrón factoría para la instanciación de dichos objetos.

Responda a estas preguntas por escrito en su memoria de práctica antes de pasar a la


siguiente parte:

1- ¿Resulta adecuado aplicar Abstract Factory o Factory Method para instanciar los
diferentes vehículos en el taller? ¿Cuál de los dos patrones sería más adecuado
utilizar? Razone su respuesta.
2- Haga un diagrama de clases genérico aplicando el patrón y adáptelo a las condiciones
específicas de la práctica.
3- Implemente el modelo en Java y realice una sencilla clase main donde se vea el patrón
funcionando.

Tercera Parte
Podemos entender el sistema de altas y bajas de vehículos en el taller como una sencilla
máquina de estados. Se pide hacer uso del patrón estado para modelar la secuencia de pasos
que deben seguirse para las altas y bajas en el taller.

Responda a estas preguntas por escrito en su memoria de práctica antes de pasar a la


siguiente parte: (se dará de alta un vehículo cuando llega al taller y se registra y se da de baja cuando ha
finalizado su reparación)
1- ¿Resulta adecuado aplicar Estado para la gestión de los vehículos? Razone su
respuesta.
2- Haga un diagrama de clases genérico aplicando el patrón y adáptelo a las condiciones
específicas de la práctica.
3- Implemente el modelo en Java y realice una sencilla clase main donde se vea el patrón
funcionando.

Práctica 2017-2018
Diseño de Aplicaciones Orientadas a Objetos

Cuarta Parte
Finalmente, se pide hacer uso del patrón observador para notificar a los usuarios que su
vehículo está terminado y disponible para recoger.

Responda a estas preguntas por escrito en su memoria de práctica antes de pasar a la


siguiente parte:

1- ¿Resulta adecuado aplicar Observador para llevar a cabo estas notificaciones? Razone
su respuesta.
2- Haga un diagrama de clases genérico aplicando el patrón y adáptelo a las condiciones
específicas de la práctica. 5
3- Implemente el modelo en Java y realice una sencilla clase main donde se vea el patrón
funcionando.

Tarea Opcional (3 puntos)

Integración
Finalmente, el estudiante podrá integrar las decisiones de diseño tomadas en los puntos
anteriores en la arquitectura Modelo Vista Controlador que se ha definido en la primera parte
de la práctica. Como resultado de esta integración, se obtendrá un proyecto Java completo
que, al ser ejecutado, permitirá ejecutar el SIGTV de acuerdo a las especificaciones dadas en el
enunciado de esta práctica.

Práctica 2017-2018
Diseño de Aplicaciones Orientadas a Objetos

Normas y orientaciones
Para realizar la práctica se seguirá el siguiente método de trabajo:

§ En primer lugar, deberá leerse detenidamente el enunciado de esta práctica.


§ Realice cada uno de los pasos propuestos y no pase al siguiente hasta no haber resuelto
los anteriores. Tenga en cuenta que el apartado de integración requiere de la
implementación de TODOS los patrones propuestos en los pasos primero, segundo y
tercero.
§ Por cada apartado deberá responder a TODAS las preguntas propuestas que deberá
documentar en la memoria de la práctica. 6
§ Todo el código que escriba deberá estar convenientemente documentado (i.e. incluyendo
JavaDocs y comentarios).
§ Especifique claramente en la documentación cuales son las clases de Test para cada uno
de los pasos propuestos.

Material a Entregar
Memoria: La memoria constará de los siguientes apartados:
§ Portada con título “Práctica de Diseño de Aplicaciones Orientada a Objetos – Junio
2018” y los datos del estudiante: Nombre, Apellidos, dirección de correo electrónico y
teléfono.
§ Cada sección de la memoria se corresponderá con cada uno de los apartados
propuestos en este enunciado.
§ Por cada sección se deberán responder a TODAS las preguntas propuestas incluyendo
de manera clara los diagramas de clases propuestos.
§ Los códigos asociados a cada sección deberán incluirse al final de la memoria en una
sección de ANEXOS donde se identifique claramente a que sección se corresponden
cada uno de los códigos.
Código: incluyendo todos los ficheros *.java y *.class de los distintos proyectos realizados en la
práctica (Un proyecto Eclipse por apartado), así como la memoria en formato electrónico
(preferiblemente html o pdf). El soporte estará libre de virus. No se corregirá ni se tendrá en
cuenta ninguna práctica que esté infectada por un virus.

Una vez terminada la práctica el estudiante tiene que hacer un archivo comprimido (rar o zip)
de la memoria y el código y, en el apartado de “Entrega de trabajos”, subir una copia a la
plataforma aLF según las instrucciones puestas en el curso virtual.

Temas organizativos
1. La realización de la práctica es obligatoria. Sólo se podrá aprobar la asignatura si la
práctica ha sido previamente aprobada.
2. La detección de prácticas copiadas implica su suspenso en las dos convocatorias del
curso.

Práctica 2017-2018
Diseño de Aplicaciones Orientadas a Objetos

3. La práctica deberá realizarse utilizando como IDE Eclipse.


4. Después de un trabajo inicial de diseño, las prácticas se hacen en los centros asociados
supervisadas por el tutor de la asignatura. El trabajo a realizar con la práctica tiene dos
partes: el diseño y la implementación. Cada estudiante deberá llevar su diseño el día
en que se realicen las prácticas para que el tutor lo supervise y el estudiante pueda
realizar la implementación.
5. La práctica es individual. Las prácticas cuyo código coincida total o parcialmente con el
de otro estudiante serán motivo de suspenso para todos los implicados (copiadores y
copiados), no pudiéndose examinar ninguno de ellos en el presente curso académico.
6. Cada tutor establecerá unas fechas para la realización de la práctica. El tutor puede 7
organizar las sesiones que considere necesarias para la práctica pero tiene que haber
al menos una sesión presencial obligatoria. El tutor entrará en el espacio virtual de la
asignatura dentro de aLF, antes del 1 de junio, para meter las notas para sus
estudiantes.
7. No habrá sesión extraordinaria de prácticas ya que la asignatura ya debe estar
implantada en todos los centros asociados. En caso de que algún estudiante no tuviera
tutor, deberá dirigirse a cualquier otro centro asociado donde se imparta la asignatura.
8. El estudiante debería dirigirse a su tutor para cualquier duda que tenga sobre su
práctica y solamente al equipo docente (por correo electrónico) en el caso de que su
tutor no pueda resolver su problema. En este caso pedimos al estudiante que, además
de sus datos personales, nos envíe el nombre del centro asociado en el que está
matriculado y el de su tutor.
9. Evidentemente se puede usar los foros para realizar consultas a los compañeros pero
nunca para intercambiar código.

Normas para los Tutores


Como se puede apreciar, el papel del tutor es fundamental en todos los aspectos de la
práctica tanto en el planteamiento de los problemas, su desarrollo y su integración final.
Tratándose de una asignatura obligatoria, cada estudiante debería tener acceso a un tutor.

Los tutores deben seguir los siguientes pasos:

§ Ayudar a los estudiantes al principio del curso con el planteamiento de la práctica.


§ Indicar a los estudiantes que habrá al menos una sesión obligatoria de
seguimiento de la práctica.
§ Una vez terminada y entregada la práctica, el tutor tiene que entrar en el espacio
virtual de la asignatura dentro de aLF, antes del 1 de junio, para meter las notas
para sus estudiantes.
§ Comunicar la calificación a sus estudiantes.

Práctica 2017-2018
Diseño de Aplicaciones Orientadas a Objetos

Centros Asociados vs. Prácticas en Asignaturas Obligatorias


Las prácticas son esenciales en las titulaciones de Informática porque, entre otras cosas,
permiten a los estudiantes adquirir conocimientos importantes sobre los aspectos más
aplicados de ciertas asignaturas, lo cual resulta de gran relevancia e interés a la hora de
acceder a un puesto laboral relacionado con la Informática. Para orientar y ayudar a los
estudiantes, así como para comprobar que realmente un estudiante ha realizado su práctica
de forma satisfactoria, ésta se debe realizar en un Centro Asociado bajo la supervisión de un
tutor, quien decide, en última instancia, la forma en la cual se organiza el desarrollo de la
misma en su Centro Asociado (número de sesiones presenciales obligatorias, forma de
entrega, etc.) 8

De vez en cuando sucede que un estudiante se pone en contacto con un Equipo Docente del
Departamento de Lenguajes y Sistemas Informáticos (L.S.I.) porque se ha matriculado en una
asignatura obligatoria en un Centro Asociado que no le proporciona un tutor para supervisar la
práctica, aun cuando se le ha permitido matricularse. El estudiante busca en el Equipo Docente
que se le proporcione una solución a este problema, como por ejemplo, la posibilidad de asistir
a unas sesiones extraordinarias de prácticas en la Sede Central de la U.N.E.D. en Madrid o la
posibilidad de realizar la práctica por su cuenta en casa, enviándola a continuación al Equipo
Docente para su corrección. Sin embargo, los Equipos Docentes de L.S.I. no disponen de
recursos para poder llevar a cabo ninguna de estas dos alternativas.

Un Centro Asociado que ha permitido a un estudiante matricularse en una asignatura


obligatoria de una carrera de Informática debería ayudarle a encontrar una solución al
problema de la realización de las prácticas. Si se trata de una asignatura donde no se han
matriculado muchos estudiantes, quizás el centro no cuente con recursos para proporcionar
un tutor específicamente para la asignatura. Si hay otro Centro Asociado cerca que dispone de
tutor, quizás el estudiante pueda realizar la práctica allí. Pero si no es así, el Centro Asociado
debería proporcionar un tutor para supervisar y corregir las prácticas de sus estudiantes. Lo
más razonable sería que fuera un tutor de otra asignatura de Informática en el mismo Centro
el que hiciera la sesión de prácticas para los estudiantes de la asignatura en cuestión, y al final
de la sesión evaluara los trabajos de los estudiantes, según las pautas marcadas por el Equipo
Docente, haciendo llegar a éste las calificaciones otorgadas.

Por lo tanto, un estudiante que tras haberse matriculado en una asignatura obligatoria en un
Centro Asociado, se encuentre con que el centro no tiene tutor para dicha asignatura, debería
dirigirse al Director del Centro Asociado, para solicitar de él una solución, tal como se ha
presentado aquí, es decir, alguien que pueda supervisar y corregir su práctica con plenas
garantías. En el caso de que el Director no le proporcione una solución, el estudiante debería
comunicárselo, por escrito, lo antes posible, al Director del Departamento de L.S.I., Dra. Dª.
Lourdes Araujo.

Práctica 2017-2018

Anda mungkin juga menyukai