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
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.
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.
• 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).
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.
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.
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.
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.
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.
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:
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
Práctica 2017-2018
Diseño de Aplicaciones Orientadas a Objetos
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.
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