Programación Orientada a Objetos. Curso 2009/2010

Práctica 3. Interfaces de usuario y librerías

Calendario Lunes Martes Miércoles Jueves Viernes Observaciones
Inicio 19/04 20/04 21/04 22/04 16/04
Evaluación 17/05 18/05 19/05 20/05 21/05 Entrega el día anterior. El grupo del lunes 2 horas antes del comienzo de la clase.


Objetivos

En esta práctica el alumno se formará en las siguientes capacidades:

Descripción del proyecto

El trabajo a realizar consiste en la implementación de un sistema de gestión de redes sociales, en el que los usuarios puedan darse de alta y añadir a otros usuarios en su lista de contactos (y opcionalmente, comunicarse entre sí). El programa gestionará la creación de estructuras internas en las que se representen los datos de los usuarios y las relaciones entre ellos. La aplicación ofrecerá una interfaz de usuario para que la interacción con el sistema se realice de forma fácil para los usuarios.

La práctica ilustra dos aspectos fundamentales relacionados con la praxis orientada a objetos, y Java en particular: 1) el desarrollo de interfaces gráficas, y 2) la reutilización de librerías. Respecto al segundo aspecto, se utilizarán en concreto librerías para a) el manejo de estructuras de grafo, y b) la lectura y escritura de datos en formato XML.

Las funcionalidades a desarrollar se describen en los siguientes apartados.

1.  Creación y almacenamiento de datos

Las estructuras de datos a definir son las siguientes (sin excluir otras adicionales que el alumno juzgue oportunas):

Además de definir las estructuras anteriores:

2.  Interfaz básica para datos de usuario

Se implementará una interfaz gráfica para que los usuarios puedan darse de alta, visualizar y editar sus datos fácilmente.

Las funcionalidades a ofrecer al usuario son, al menos, las siguientes:

Naturalmente estas funcionalidades precisarán la ampliación de las clases internas con los métodos (y en su caso datos) necesarios para efectuar estas operaciones.

El archivo XML deberá actualizarse cada vez que en el programa se realice un cambio (nuevo usuario, editar datos, etc.) que afecte a los datos de la red social, de forma que ésta sea persistente.

3.  Creación y manejo de la red social

Se ampliará la interfaz de usuario para la visualización, creación, y exploración de la red social de contactos, con las siguientes funcionalidades:

Se valorará la calidad de la interfaz de usuario (claridad, facilidad de uso, fluidez de ejecución), así como el uso de componentes avanzadas (p.e. JTable).

Opcionalmente:

4.  Opcional: arquitectura cliente-servidor y chat

Extender el programa para permitir la conexión simultánea de varios usuarios desde clientes remotos, de forma que los datos de los usuarios y la red social se gestionen en un servidor central.

Sobre esta arquitectura, se añadirá la siguiente funcionalidad:

Se valorará el uso adecuado de objetos por valor u objetos remotos, según se adecúe a cada caso, así como la utilización de callbacks.

Material de referencia

Se deja intencionadamente al alumno la labor de buscar y entender el manejo de las librerías JUNG y JDOM, así como la documentación de estas librerías, naturalmente con la asistencia de los profesores en las clases de laboratorio.

Se facilita por otra parte como ayuda un ejemplo parcial de código ilustrativo del trabajo a realizar, junto con un ejemplo de fichero de datos en XML. El alumno es libre de reutilizar este código o no, o seguir cualquier modificación, según su parecer y las indicaciones del profesor de prácticas.

Entrega

Las prácticas se deben entregar antes de la fecha de evaluación indicada al comienzo del enunciado, teniendo en cuenta las horas límite de entrega mencionadas en las normas de la asignatura.

El fichero .zip a entregar debe incluir:

NOTA: Las entregas que no cumplan los requisitos enumerados en las normas recibirán una penalización de 0.5 puntos.

(C) 2009-2010 Escuela Politécnica Superior, UAM