MIT OpenCourseWare


6.170 Curso práctico en ingeniería del software.

Página principal
¿Qué es OCW?
Ayuda
Feedback
Preguntas frecuentes
Glosario
 
 
Página principal del curso
Programa
Calendario
Material de clase
Trabajos
Exámenes
  Lecturas obligatorias
  Otras fuentes
  Prácticas
  Grupos/Clases de repaso
  Herramientas
  Proyectos

   MIT

   
 

Trabajos

Ejercicio 5: Foliotracker, 1ª Parte

PLAZO DE ENTREGA: 6ª semana

Le aconsejamos que lea todos los problemas antes de comenzar a trabajar.

Introducción

En los dos ejercicios siguientes, usted construirá Foliotracker, un programa de aplicación para seguir el comportamiento de una cartera de títulos valores. El primer ejercicio debe estar hecho y entregado para calificación antes de empezar con el segundo.

En los dos primeros ejercicios, decidirá la funcionalidad básica de su programa. Para ello diseñará una interfaz gráfica de usuario (GUI), y especificará una interfaz para la programación de aplicaciones (API), a través de la cual, la GUI accederá a los componentes del código que obtienen la cotización de las acciones y que mantienen una base de datos de valores y demás. La ventaja de dividir esta aplicación en dos partes (una GUI front-end y la implementación back-end),class="revisarojo" creando una API bien definida, es permitir que distintos tipos de clientes front-end accedan a su sistema y hagan uso de su funcionalidad. De hecho, no va a escribir todo el código que implemente a la API; en su lugar, escribirá un stub: es decir, una parte de código que se usa para testear a un cliente de la API, pero que proporciona sólo una funcionalidad muy limitada. Por ejemplo, usted puede hacer que el stubno compute nada y que simplemente busque los valores en una tabla fija. Este stub le permitirá montar y testear la GUI y le asegurará que la funcionalidad es aceptable. En el segundo ejercicio, implementará la funcionalidad de la API propiamente dicha. No es preciso que haga cambios en la GUI o en la API.

El primer ejercicio centra su interés el diseño de la API y la implementación de la GUI. Necesitará aprender a utilizar Swing. El tutorial en línea de Java™, que se encuentra en http://java.sun.com/docs/books/tutorial/ , incluye una sección sobre Swing y las clases de la Fundación Java;class="revisarojo" lo encontrará en http://java.sun.com/docs/books/tutorial/uiswing/ .

El segundo ejercicio hace hincapié en el diseño del back-endy su implementación. No será necesario que aprenda nada nuevo, pero tendrá la oportunidad de refinar sus habilidades de diseño con tipos de datos abstractos, modelos de objetos, etc. No necesita implementar el código para obtener la cotización de las acciones; le proporcionaremos una clase con un método simple que toma un símbolo de transacción como una cadena y devuelve una cotización.

Ejercicio 5

El programa Foliotracker permite al usuario seguir los contenidos y el comportamiento de diversas carteras de valores. Un Foliotracker se puede utilizar para gestionar y mantener diversas carteras de valores, una cartera es una colección de títulos valores. Un cartera podría también contener meta-datos class="revisarojo" sobre la historia de las transacciones de una persona, sobre las estadísticas, etc. Foliotracker descubre el valor actual de las acciones consultando, a través de la web, con un servidor de cotizaciones de títulos valores. Su tarea principal consiste en determinar la funcionalidad de Foliotracker. Como mínimo, debería ser posible:

 

  • crear múltiples portafolios;
  • ver las posiciones (nombre de la acción, número de acciones suscritas, cotización por acción y valor de la participación), en una cartera de valores;
  • aumentar y disminuir el número de acciones;
  • ver el valor total de una cartera.
Le hemos facilitado algunas capturas de pantalla de posibles funcionalidades.

Aquí tiene algunas características posibles que podría tener en cuenta e incluir en su diseño:
  • guardar la información de la cartera en disco;
  • indicar si la cotización está subiendo o bajando, marcando quizás el texto con colores o utilizando pequeñas flechas de color;
  • permitir que el usuario introduzca el precio al que se compró la acción para calcular ganancias y pérdidas;
  • mantener un seguimiento de las fluctuaciones;
  • colocar centinelas que realicen una acción cuando los valores aumenten o disminuyan;
  • ordene las posiciones atendiendo al valor, al símbolo de transacción, etc.
Le recomendamos que elija un conjunto de características que esté pensando implementar y que las ordene según la dificultad y las ganas que tenga de implementarlas. Considere detenidamente qué desecharía si las cosas se complicaran más de lo que piensa.

Sobre todo tendrá que examinar cuestiones básicas como las siguientes:
  • cómo se identificarán las carteras de valores (¿mediante los nombres que los usuarios faciliten?);
  • cuándo se actualizarán las cotizaciones de las acciones (¿cada cierto tiempo?, ¿por orden explícita?);
  • cómo tratar casos excepcionales tales como símbolos de transacción que no se ajusten a las acciones, o qué hacer cuando el sito web no responda;
  • si pueden mostrarse varias carteras al mismo tiempo;
  • si están permitidas varias vistas simultáneas de la misma cartera.
Estos temas deben tenerse en cuenta al principio; si los aplaza, será mucho más difícil tratarlos.

En el diseño de la API, también tendrá que resolver algunas cuestiones básicas. Dos de las más importantes son:
  • si la API será pasiva, en el sentido en que la aplicación simplemente la utiliza como fuente de información, o si será activa y, por ejemplo, tendrá funcionalidad para hacer callbacks periodicos;
  • qué tipos se presentarán en la interfaz.

La especificación de su API será una descripción completa de la funcionalidad del programa y lo único que se obviará será la cuestión de cómo el programa y el usuario se comunican mediante la GUI. Debe utilizar una interfaz Java™ para la API. Su GUI debería resultar atrayente, fácil de usar, y de construcción sencilla. Es posible que quiera utilizar un poco el Swing para tener una idea de cómo se hacen las cosas y qué es posible hacer antes de proyectar este ejercicio.


Debería entregar las siguientes ítems:

(a) Visión general. [Una página o menos] Una descripción escueta y concreta sobre cuál es el propósito de la aplicación; qué tipo de funcionalidad presenta; cómo es su GUI y cómo se va a utilizar. Considere esta sección como si fuese un manual de usuario condensado: el tipo de resumen de una aplicación que normalmente se encuentra en los folletos de marketing.

(b) Un modelo de objeto del problema. [Una página] Un modelo de objeto que resuma el estado abstracto de la aplicación desde el punto de vista del usuario. Los objetos aquí pertenecerán al dominio del problema (como acciones y cotizaciones), y no serán objetos concretos tomados del código. Intente mantener esto lo más abstracto posible, evitando detalles de implementación. Para comprobar si su modelo está completo, pregúntese a sí mismo si el estado de su sistema contiene la información necesaria para producir los comportamientos que tiene en mente. Exponga de manera informal cualquier restricción que surja de las propiedades del mismo problema y que no se pueda mostrar gráficamente.

(c) Especificación de la API. [Dos páginas o menos] Una visión general de la API que especifique la interacción general de alto nivel con su sistema. También, una especificación detallada que describa cada método con la forma estándar requires/ensures/modifies.

(d) Capturas de pantalla del GUI. Un conjunto de capturas de su GUI que muestren cómo está organizada y qué funciones ofrece.

(e) Código. Su código incluirá el código de la GUI, la interfaz de Java para la API, una clase stub que implemente la interfaz de la API y cualquier código de testeo que haya escrito. Debería completar su código hasta el punto en que pueda poner a prueba todas las interacciones básicas entre la interfaz y el usuario, mostrar resultados visibles convincentes y ejercer la conexión entre el GUI y la API. Las clases de su GUI no requieren una especificación extensa, pero deberían estar cuidadosamente comentadas, y cualquier método público poco conocido debería especificarse detalladamente.

Erratas

Preguntas & Respuestas

Esta sección enumerará las aclaraciones y respuestas a preguntas frecuentes. Intentaremos mantenerla lo más actualizada posible, por lo que le sugerimos que consulte este apartado en primer lugar (después de haber repasado detenidamente la hoja) ante cualquier duda que le surja.

Volver arriba

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