ELO 329: Diseño y Programación Orientada a Objetos
Proyecto Personal

Grupos: el proyecto puede ser desarrollado en grupo de hasta tres personas.

Definición del Proyecto a desarrollar:  Usted o su grupo (en adelante grupo) debe formular su proyecto llenando el formulario WEB accesible desde la página del ramo.

Desarrollo: Su grupo debe crear y mantener una página WEB con la información de su proyecto. Al menos debe poner los datos de los integrantes del grupo (poner correo "encriptado" al estilo javier AT elo DOT utfsm DOT cl), el nombre del tema, descripción del problema, requerimientos, y cualquier otra información que se genere como resultado de su desarrollo.

Demostración: Al término de su proyecto la página web del mismo contendrá la documentación de la solución, las instrucciones para su instalación y ejecución. El proyecto será explicado y demostrado al curso quien participará de su evaluación.

Documentación: Este archivo debe incluir:

1.- La descripción del problema que usted resuelve en su proyecto. Esta descripción es corta ~ 5 líneas.
2.- Un pequeño análisis del problema. En esta sección usted desarrolla y explica los elementos o entes que participan en el problema, define el sistema y sus interacciones con el medio externo al sistema. Plantea algunos ejemplos de casos de uso del sistema a desarrollar. Muestre algunos test de prueba para el sistema.
3.- Diseño haga diagramas de alto nivel que muestre la arquitectura de su solución. Estos equivalen a los planos de arquitectura para una construcción. Si alguno de los módulos involucra mayor complejidad, hacer diagrama de arquitectura para el módulo.
4.- La implementación se documenta en el código fuente con los comentarios que correspondan.
5.- Pruebas: Exponga los resultados para algunos test de prueba. Liste las dificultades encontradas en el desarrollo del sistema y cómo las superó. Si aún están presentes, indicar listado de bugs presentes.

 Usted es libre de mejorar la documentación.

Algunas ideas 2005

Una idea a considerar como proyecto sería desarrollar alguna aplicación orientada a objetos en que se use (reuse) uno de los siguientes paquetes:
- Estudio y desarrollo de algún ejemplo de aplicación de "Patrones de Diseño"
- Estudio y desarrollo de ejemplo sobre administración de seguridad en Applets.
- Estudio y demostración de herramientas de apoyo para el desarrollo de documentación UML.
- wxWindows:  Toolkit para crear interfaces gráficas. http://www.wxwindows.org/     También tiene paquetes en Debian (buscar por "wxwin")
- Bibliotéca para manejar RTP facilmente (en comparación con otras, a.k.a. -Also known as- lucent-rtplib):  http://research.edm.luc.ac.be/jori/jrtplib/jrtplib.html
- Biblioteca para decodificar MPEG2 (muy rápida):  http://libmpeg2.sourceforge.net/ (autodetecta posibles soporte para MMX, 3Dnow, MMXEXT, y provee biblioteca para conversiones a RGB y YUV)
- LIBPING: Biblioteca para hacer ICMP_ECHO requests:
http://www.joedog.org/libping/index.php
http://www.joedog.org/libping/index.php
- Codificador MPEG2  (y MPEG1, con varias opciones de configuración ) de Berkeley:
ftp://mm-ftp.cs.berkeley.edu/pub/multimedia/mpeg2/software/mpeg2vidcodec_v12.tar.gz