Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería del Software
Grado en Ing. Computadores, Grado en Ing. Informática,
Grado en Ing. del Software y Doble Grado en Ing. Informática ‐ Matemáticas
Facultad de Informática. Universidad Complutense de Madrid
Segundo parcial examen final de junio 2018
1. [4,5] Dado el caso de uso del final del ejercicio (CDU):
a. [2] Proporciona diagramas de clases necesarias para la implementación del CDU
aplicando los patrones de arquitectura multicapa requeridos en el proyecto de la
asignatura.
b. [2,5] Proporciona diagramas de secuencia necesarios para la implementación del
CDU con la arquitectura del apartado anterior.
Queremos hacer una pequeña aplicación para gestionar una tienda de guitarras.
La aplicación considera constructores y modelos de guitarras. Un constructor puede
fabricar muchos modelos o ninguno. Todo modelo ha de tener un constructor, y sólo uno.
De un constructor nos interesa saber su nombre y dirección. De un modelo de guitarra nos
interesa saber el nombre del modelo, el material de la tapa, y el material de aros y fondo
(el mismo para ambos).
Todas las entidades se gestionan a través de un identificador único que es creado
automáticamente por el sistema cuando son creadas.
En este contexto nos centramos en el caso de uso/requisito funcional alta de modelo de
guitarra. Los datos de entrada son el identificador del constructor, el nombre del modelo,
el material de la tapa, y el material de aros y fondo. El sistema debe comprobar que no hay
ya un modelo de guitarra con ese nombre (esté activo o no) y que el constructor existe y
está activo.
2. [2,5] Genera los diagramas UML para caracterizar la estructura estática [1 punto] y
comportamiento dinámico [1,5 puntos] descritos en el siguiente fragmento de código:
public class A {
private Boolean x;
while(it.hasNext())
{
B b= it.next();
int i= b.g();
d.h(i);
}
res= d.r();
}
return res;
}
}
private int y;
}
private String z;
}
public interface B {
private String s;
public class D {
private String w;
APELLIDOS: NOMBRE: ……...……………
DNI/NIE: FIRMA:
(MODELO A: ENTREGA ESTA HOJA CON LAS RESPUESTAS MARCADAS)
3. [3] Marca con un círculo la respuesta correcta en cada una de las siguientes preguntas.
Cada respuesta correcta suma 0,5 puntos y cada respuesta incorrecta resta 0,25.
1. ¿Qué patrón organiza objetos en estructuras de árbol para representar jerarquías de
parte‐todo?
a. Command
b. Iterator
c. Decorator
d. Composite
2. Un inconveniente del patrón Fachada es:
a. Oculta a los clientes los componentes del subsistema
b. Reduce el número de objetos con los que tratan los clientes
c. Hay que actualizar la fachada al incluir nuevas operaciones
d. No impide que las apps utilicen las clases del subsistema
3. Motivación del patrón Decorador:
a. Queremos añadir responsabilidades dinámicamente a objetos individuales
b. La herencia es una solución dinámica
c. Un enfoque más rígido es encerrar el componente en otro objeto
d. Todas ciertas
4. El patrón Mediator debe aplicarse cuando:
a. Un conjunto de objetos se comunican de forma compleja, con
interdependencias difíciles de comprender
b. Las interdependencias resultantes están estructuradas
c. Es fácil reutilizar un objeto que referencia otros objetos
d. Cuando hay que dividir en dos un sistema
5. El patrón Observador debe aplicarse cuando:
a. Una abstracción tiene dos aspectos y uno depende del otro
b. Cuando un cambio en un objeto requiere cambiar otros
c. Cuando un objeto debería ser capaz de notificar a otros
d. Todas ciertas
6. El patrón _________________ permite que interactúen clases que tenían interfaces
incompatibles
a. Interactor
b. Decorator
c. Adapter
d. Command