parcial_2doc_2007(posible_solucion_del_ejercicio).doc

3
Diseño de Sistema 2007 Examen Parcial Apellido y Nombre: e-mail: Práctica Se desea modelar una carpintería dedicada a la construcción de muebles domésticos. El precio de cada mueble resulta del costo de cada parte del mismo más un 25% de ganancia. Además 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 también varía según el estilo del mismo, pudiendo ser estilo clásico, estilo moderno o los más baratos que no tienen estilo, para los de estilo clásico por ejemplo se tiene en cuenta para el cálculo del precio el número de molduras que pueda llegar a tener el mueble. Cuando un trabajo entra a la carpintería, el jefe de carpintería 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 Teoría 1.- Que patrón de diseño utilizaría si un método debe comportarse en forma distinta no solo de acuerdo al tipo de objeto que lo llama sino también de acuerdo al tipo del parámetro que este recibe. – Realice el correspondiente diagrama de clases dando un ejemplo del mismo. 20 puntos 2.- Realizar un análisis 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

Upload: sadoly7224

Post on 03-Sep-2015

212 views

Category:

Documents


0 download

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

*