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

Grupos: El proyecto puede ser desarrollado en grupo de dos a tres personas (caso tres debe ser consultado con profesor).

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. Plantee algunos ejemplos de casos de uso del sistema a desarrollar. Muestre algunos test de prueba para el sistema.
3.- Diseño Incorpore unas tres tarjetas CRC. Haga diagramas de alto nivel (UML) 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 para generación automática con javadoc o similar si usted usa otro lenguaje.
5.- Pruebas: Exponga los resultados para algunos test de prueba correspondientes a los casos de uso indicados. 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.
 Al final enviar archivo comprimido con su página web.

Sobre la Exposición del Proyecto al Curso
   Las presentaciones de proyectos son el resumen de éstos y de 15 minutos o menos. Yo les daré un timeout a los 20 minutos cuando que siga otro grupo.
En la presentación recomiendo considerar:
1.- Descripción del problema (todo trabajo debe apuntar a algún problema).
2.- Pequeño análisis del problema, explicar el entorno  cuando el problema se sitúa en un área no familiar, si no es el caso mencionarlo igual pero breve.
3.- Los puntos previos acompañarlos con la presentación de al menos un caso de uso.
4.- Diseño de la solución. Mostrar un par de tarjetas CRC y el diagrama de clases resultante.
5.-  Implementación. Indicar en qué parte de la página de su proyecto está el código. Mostrarlo en la medida que haya diferencias respecto a lo hecho en tareas. Por ejemplo, si trabajó en programación de celular o similar, explicar el ambiente de desarrollo usado (cómo se compila, cómo se carga el programa).
6.- Pruebas: Hacer la demostración de uno o dos casos de uso.

El material del informe es similar a esto sólo que más completo. Usted no presente todo lo que está en el informe. Sus compañeros se quedarán sólo con la idea general, pero como usted enviará el informe completo y será publicado, todos tendremos la oportunidad de ver detalles.

Algunas ideas 2007

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")