parcial_2doc_2007(posible_solucion_del_ejercicio).doc
TRANSCRIPT
Se aprueba con 95 puntos
Diseo de Sistema 2007
Examen Parcial
Apellido y Nombre:e-mail:
Prctica
Se desea modelar una carpintera dedicada a la construccin de muebles domsticos. El precio de cada mueble resulta del costo de cada parte del mismo ms un 25% de ganancia. Adems el tiempo que demanda construir el mismo, es la suma de los tiempos en que se tarda en conseguir cada una de sus partes mas un tiempo de ensamblaje.
Por otro lado el precio del mueble tambin vara segn el estilo del mismo, pudiendo ser estilo clsico, estilo moderno o los ms baratos que no tienen estilo, para los de estilo clsico por ejemplo se tiene en cuenta para el clculo del precio el nmero de molduras que pueda llegar a tener el mueble.
Cuando un trabajo entra a la carpintera, el jefe de carpintera es el encargado de avisar a los carpinteros, pintores y cortadores el trabajo que deben realizar y la fecha en que debe estar listo dicho trabajo, los cuales toman distintas reacciones (discuten, aceptan el trabajo, dan propuestas, etc.).70 puntos
Teora
1.- Que patrn de diseo utilizara si un mtodo debe comportarse en forma distinta no solo de acuerdo al tipo de objeto que lo llama sino tambin de acuerdo al tipo del parmetro que este recibe. Realice el correspondiente diagrama de clases dando un ejemplo del mismo.
20 puntos
2.- Realizar un anlisis desde el punto de vista del acoplamiento de los siguientes patrones detallando que nos permite desacoplar cada uno de ellos y que problema intenta resolver:
-Observer
-Facade
Realizar el correspondiente diagrama de clases de cada patrn, dando un ejemplo del mismo.25 puntos
3.- Que problemas trae la herencia mltiple y que soluciones plantea Alan Snyder a esta problemtica.
15 puntos
Nota: Se aprueba con 90 puntos. En todos los casos aclarar bien la implementacin de cada patrn y la cardinalidad en las clases.1)Ejercicio Prctico
Patrones utilizados:Facade
Factory
Singleton
Composite
Flyweight
State
Strategy
Null Object
Observer (se podra haber utilizado Chain of Responsibility)
_1256642416.vsdCarpinteria
Static Structure
+getPrecio()+getTiempo()
MuebleElement
+getPrecio()+getTiempo()
ParteMueble
+getPrecio()+getTiempo()
Mueble
1
*
+crearMuebleElement()
MuebleFactory
+getPrecio()
Estilo
+getPrecio()
Clasico
+getPrecio()
Moderno
+getPrecio()
Sin Estilo
+crearEstilo()
EstiloFactory
*
1
*
*
*
1
*
1
+notificarATodos()+addObserver()
Observado
+notificarATodosDeUnNuevoTrabajo()
Jefe de Carpinteria
+accion()
Observer
+reaccionarAnteNuevoTrabajo()
Carpintero
+reaccionarAnteNuevoTrabajo()
Cortador
1
*
Emplead
*
1
+reaccion()
ReaccionAnteTrabajo
+reaccion()
Queja
+reaccion()
Aceptacion
+reaccion()
Sin Reaccion
+crearReaccion()
ReaccionFactory
*
1
1
*
1
*
1
*
1
*