Está en la página 1de 2

Quiz #3

Tema: UML y Patrones de Diseño


Instituto Tecnológico de Costa Rica
Área Académica Ingeniería en Computadores
Algoritmos y estructuras de Datos 2
II Semestre 2021

Tiempo para resolverlo: 35 minutos

Nombre: NOTA

Carné:

INSTRUCCIONES:
● Responda el quiz con el nivel mínimo y suficiente de detalle, de acuerdo con lo visto en clase y el
material complementario. Respuestas en lápiz no admite reclamos.
● Cuando se solicite explicar la diferencia o la relación entre conceptos lo que se espera es que
establezca un criterio mediante el cual pueda diferenciarse o relacionarse los conceptos. Definir
cada concepto por separado no es correcto, por lo que este tipo de respuestas tendrán un puntaje
de cero.

PREGUNTAS

1. En el contexto del proyecto #1, proponga cómo podría aplicar el patrón Observador. Construya un
diagrama de clases que explique claramente cómo podría aplicarlo. (25 pts)

2. En el proyecto #1, se utiliza una arquitectura distribuida con dos componentes: un cliente y un
servidor. En los sistemas de información modernos, hay muchos componentes más que
simplemente un cliente y un servidor. Se le solicita diseñar un sistema que permite generar Alias de
URL, que funciona de la siguiente manera (25 pts):

○ El usuario ingresa a un sitio web donde introduce un URL y define un Alias para el mismo.
Por ejemplo, indica https://www.tec.ac.cr/foo/foo2/foo3 e indica que el Alias, por ejemplo:
financiero. El sistema genera entonces el nuevo URL corto: https://aka.tec/financiero.
Todos los URLs generados empiezan con https://aka.tec/

○ El sistema genera los URLS cortos con una expiración y sin permitir duplicados. Es decir no
pueden haber dos URLs con el mismo Alias. Y cada URL tiene una expiración en días.
Cuando se intente acceder a un URL expirado, dará un error.

○ Cuando un usuario accede a un URL generador previamente, el sistema será el que atiende
dicha peticion, valida que el URL no haya expirado y redirige al URL real.
Construya un diagrama de despliegue con los componentes identificados, explicando como
funciona la comunicación entre estos. Para cada componente, defina cuáles serían sus
responsabilidades. Piense en lo siguiente:

● ¿Dónde se almacenan los URLs generados? ¿Base de datos, archivo plano?

● ¿Cómo se comunica la página web con el servidor de la lógica de negocios? Puede


investigar brevemente sobre REST APIs

● ¿Cómo se podría tener tolerancia a fallas en caso que alguno de los componentes falle?
Puede investigar sobre balanceo de carga

Se califica el esfuerzo y el intento, no se calificará a detalle cada decisión que tomen para
resolverlo.

También podría gustarte