MIT OpenCourseWare


6.171 Ingeniería de software para aplicaciones web. Otoño 2003

Página principal
¿Qué es OCW?
Ayuda
Feedback
Preguntas frecuentes
Glosario
 
 
Página principal del curso
Programa
Calendario
Lecturas
Trabajos
Exámenes
  Otras fuentes

   MIT

   
 

Examen de mitad de trimestre. Otoño 2003

Normas  

Éste es un examen no presencial. Puede realizarlo donde quiera y utilizar todos los recursos que desee. El único requisito es hacerlo sin ayuda de nadie (sin colaboradores, ni siquiera los miembros de su equipo). Si recurre a la sección de un libro o a una página web, cite la fuente. Una calificación de 80/100 es un resultado muy bueno para este examen, así que si hay una parte que se le resiste o no le interesa, contéstela rápidamente y pase a las que sí le interesan. Cuando haya terminado el examen, envíe el resultado por correo electrónico (en texto sin formato, por favor) al profesor. Al principio del mensaje, incluya un párrafo en el que quede claro que el examen lo ha realizado sin ayuda de nadie. Dispone de una semana para realizar el examen.

Recursos

A continuación, detallamos los recursos que pueden servirle de ayuda para responder las preguntas.

¿Problemas? ¿Tiene alguna pregunta?

Envíe un mensaje de correo electrónico al profesor.

Pregunta 1: Desarrollo de un modelo de datos

Acceda a friendster.com. Si aún no es miembro, suscríbase para obtener una cuenta.

  1. Busque a Ben, utilizando la búsqueda de usuarios, y agréguelo como amigo (Ben dijo que se inició en los estudios de informática porque quería conocer a mucha gente interesante). Haga esto cuanto antes para que pueda terminar los ejercicios con suficiente tiempo.
  2. Analice la página que describe a los usuarios. Preste mucha atención a la información que aparece en el perfil, incluidos los comentarios de otros amigos.
  3. Agregue a otros amigos (sería buena idea agregar a otros compañeros de clase).
  4. Cambie las películas o los programas de televisión favoritos para encontrar a gente con los mismos gustos. Preste atención al modo en que el sitio presenta esta información.
  5. Agregue algunos testimonios de sus amigos.
  6. Busque personas de su red que vivan en ciudades que no sean Boston.

Ahora, desarrolle un modelo de datos para el sitio friendster.com. Su modelo de datos deberá ser lo suficientemente completo como para gestionar todas las acciones descritas anteriormente y hacer funcionar el núcleo principal de friendster.com. (Omita las secciones de compras y eventos ("Shopping" y "Events")). Asuma la existencia de una tabla de usuarios con claves user_id. El modelo de datos deberá incluir las limitaciones de integridad correspondientes y los índices para facilitar las consultas que considera necesarias para las páginas a las que acaba de acceder. El modelo de datos deberá contener también los comentarios correspondientes.

Compruebe su modelo de datos insertándolo en un RDBMS y asegurándose de que se aceptan sin errores las sentencias CREATE TABLE y la definición de índices. Probablemente deberá crear un nuevo usuario de base de datos para que las definiciones de la tabla no entren en conflicto con el resto de tablas que tal vez haya definido para el proyecto en equipo.

Extensión de la respuesta: si el modelo de datos contiene más de 15-20 tablas, lo más probable es que se enfrente a muchos casos especiales. Lo importante es obtener correctamente la estructura del modelo de datos y las relaciones. No dedique mucho tiempo a comprobar que cuenta con todas las columnas necesarias de cada tabla. Por ejemplo, bastará con decir "-- ... columnas de dirección..." para referirse a la existencia de un modo de almacenar la dirección, la ciudad, la provincia, etc., de un miembro.

Pregunta 2: Consultas más complejas de SQL

Con el modelo de datos de la Pregunta 1, escriba dos programas informáticos:

Parte a: un programa que genere la página "buscar gente de mi red o amigos que vivan en un radio de 80 kilómetros y que afirmen estar interesados en conocer gente para citas". El programa deberá mostrar una lista de personas dentro de dicha distancia geográfica en orden ascendente.

Parte b: una programa que genere la página "¿Qué relación tengo con esta persona?" y que muestre todas las conexiones posibles entre dos personas.

Idóneamente, cada programa debe ser una consulta sencilla de SQL. Aceptaremos el uso de bloques de lenguaje de procedimiento, es decir, procedimientos almacenados. Sugerencia: puede presuponer la existencia de una tabla o de una función que proporcione la latitud / longitud de un centroide dentro del código postal concreto.

Compruebe las consultas insertando el modelo de datos de la Pregunta 1 en el RDBMS que ha estado utilizando este semestre (aunque puede utilizar un espacio de tablas / base de datos / espacio de nombres independiente). Rellene las tablas al menos con los siguientes datos de prueba (puede incluir más si lo desea):

  • George tiene 57 años, le gustan las galletitas saladas, el servicio de transporte Segway Human Transporters, Tejas y los coches deportivos. George vive en EE.UU., en el código postal 20500.
  • Dick tiene 60 años, le gustan las hamburguesas dobles con queso y bacon, y defiende el ahorro de energía. Dick prefiere no revelar su lugar de residencia.
  • Ken tiene 55 años, defiende el ahorro energético, le gusta Tejas y el culturismo. Ken vive en EE.UU., en el distrito de Houston - 77002.
  • Arnold tiene 55 años, le gusta California, el culturismo y los coches deportivos. A Arnold le interesa tener citas con mujeres. (Su modelo de datos no incluye las citas a ciegas como posible objetivo para conocer gente). Arnold vive en el código postal 90210.
  • Britney tiene 22 años, le gusta la física de semiconductores y está interesada en conocer tanto a hombres como a mujeres (siempre y cuando sean ricos y famosos, y tengan como poco 6 licenciaturas del MIT). Britney ha facilitado el código posta 90210 como suyo propio, ya que pasó mucho tiempo allí mientras trabajaba en una película.
  • George es amigo de Dick.
  • Dick es amigo de Ken.
  • Ken es amigo de Arnold.
  • George es amigo de Britney.

Imprima una sesión de la base de datos que utilizará para las consultas (para el apartado (b) podría realizar consultas para ver la relación de amistad posible entre George y Arnold).

Tenga en cuenta que cabe la posibilidad de que comience a realizar las consultas y descubra que quiere modificar el modelo de datos. Es un método totalmente natural para mejorar un sistema. Pruebe que un modelo de datos acepta consultas y realice las modificaciones necesarias hasta conseguirlo.

Dedique solamente varias horas a esta pregunta. Obtendrá una calificación parcial si demuestra que su línea de acción es la correcta, es decir, si consigue realizar varias consultas pequeñas con las que obtenga datos útiles para resolver el problema más grande.

Pregunta 3: Análisis de usabilidad

Basándose en la experiencia de la Pregunta 1, identifique tres problemas de usabilidad en Friendster y redacte instrucciones para que los programadores puedan resolverlos. Calificación adicional: envíe estas ideas por correo electrónico a los colegas de Friendster y adjunte sus respuestas.

Extensión de la respuesta: 1 página.

Pregunta 4: Extensión de la aplicación con informática distribuida

José Frío Cuarenta, administrador senior del MIT, ha decidido que las redes de amistad tienen mucho futuro y quiere trasladar la magia de Friendster al MIT mediante la creación de MITster. Al ser el responsable total de la organización, concibe esta tarea como una aplicación independiente en la que cada persona afiliada al MIT pueda registrarse y acceder al sitio. Philip '82 y Gerry '68 pueden descubrir que ambos viven en la misma ciudad, que comparten aficiones e intereses y que están conectados mediante Hal 'XX [¿qué tipo de conexión? La conocemos, pero no podemos decírsela].

José le introduce en el proyecto para diseñar los requisitos del sistema y su primera pregunta es: ¿por qué no utilizamos Friendster? José responde que no está contento con las características de la comunidad de Friendster. Un grupo de amigos debería poder crear un grupo paralelo improvisado para crear un foro de debate, un espacio de trabajo en el que colaborar, una agenda de eventos, etc.

Usted señala que los servidores independientes ofrecían buenos resultados en la década de los 90, pero que en el siglo XXI el pilar fundamental es la informática distribuida. Tal vez el objetivo debería ser aumentar los servicios de Friendster, y no tanto suplantarlos. Un miembro del MIT podría acceder a un servidor sencillo y obtener todos los servicios de Friendster además de servicios adicionales para grupos de amigos del MIT.

Está claro que será necesario definir algún tipo de servidor que albergue las características adicionales de la comunidad. ¿Qué tipo de interfaz SOAP querría obtener de Friendster? Escriba una descripción de 1 ó 2 páginas (en español) de la interfaz que desea obtener y un archivo WSDL para incluir un fragmento de la interfaz.

De nuevo, lo que buscamos es una estructura razonable, no una solución completa que contenga todos los campos definidos posibles. Basta con que entregue algunos fragmentos elididos y comentados.

Pregunta 5: Diversión con el alojamiento de datos

Utilizando el modelo de datos de Levi Strauss definido en el ejemplo de la sección Data Warehousing, escriba consultas de SQL que ofrezcan respuesta a las siguientes preguntas:

  • Para todas las regiones de EE.UU., ¿cuántos clientes compraron pantalones por segunda vez, en comparación con las ventas de pantalones a primeros clientes?
  • Comenzando por la concepción de este negocio, ¿cuáles son las ventas adicionales de cada mes, en meses por orden ascendente?

Suponga ahora que le pedimos que prepare un informe con la talla media de cintura de los pantalones enviados, dividido por regiones. ¿A qué tabla agregaría la columna waist_size (talla cintura) y por qué?

Entrega del examen

Envíe las respuestas por correo electrónico al profesor.

Al principio del mensaje, incluya un párrafo en el que quede claro que el examen lo ha realizado sin ayuda de nadie.

 

Massachusetts Institute of Technology © 2003 MIT | Información Jurídica | Privacidad
Todo uso del sitio de MIT OpenCourseWare y sus materiales de curso queda sujeto a las condiciones y términos de uso detallados
en la sección sobre Información Jurídica
Copyright © 2003 Portal Universia S.A. Todos los derechos reservados
(Avda. de Cantabria s/n - Edif. Arrecife, planta 00.28660 Boadilla del Monte) - Madrid. España.
Contacta con nosotros: Usuarios | Empresas-Instituciones-Medios comunicación
Código Ético | Aviso Legal | Política de confidencialidad | Quiénes somos: Sala de Prensa