Proyecto Final Lenguajes de Programación 3. Grupo 412. Fecha de Entrega: 12 de junio 2006 Objetivo: Aplicar los conocimientos de programación orientada a objetos con Java, utilizando marcos de aplicaciones para J2EE. Software: Del CD entregado al inicio del semestre se requiere: JDK 1.5 Spring Framework Eclipse para Web/J2EE TomCat Ant JUnit Adicional a este CD se debe bajar, instalar y utilizar Google Web Toolkit MySQL Se deberá utilizar JDK 1.5 Equipo: El equipo deberá ser de 2 a 4 personas. Entrega: La entrega se debe realizar en un cdrom que contenga las instrucciones de ejecución del sistema. La hora limite de la entrega es a las 8:30 a.m. NO SE RECIBEN DESPUES DE ESA HORA. PROYECTO NO ENTREGADO A TIEMPO SE EVALUA CON 0 PUNTOS. La entrega se hará fuera de la Sala K del campus II de la ULSA Total de puntos a conseguir: Hasta 15 puntos. Se califica sobre 10. Instrucciones: En base al proyecto JDBC-Swing entregado, construir una sistema que realice consultas, altas y cambios sobre el esquema de base de datos proporcionado. La aplicación entregada se basa en lo descrito en el capitulo 23 del libro Como Programar en Java, Quinta Edición. El ejemplo se adapto para utilizar el manejador de base de datos HSQLDB. El sistema a entegrar debe cumplir los requerimientos funcionales indicados en los ejercicios 23.2 y 23.3 del citado libro. El proyecto debe dividirse en las siguientes iteraciones Iteracion 0. Entendimiento del sistema entegrado. Iteración 1.1. Aplicación Swing-JDBC con Spring Requerimientos técnicos: - Los objetos del modelo deben ser modelados como POJOs (JavaBeans) - El manejo de la persistencia debe hacerse con JdbcDAOSupport de Spring - La administración de la conexión deberá realizarse con un pool de conexiones - La aplicación debe soportar los manejadores de bases de datos HSQL y MySQL - La apliación debe ser ensamblada por medio del descriptor de contexto de Spring - La interfase gráfica deberá ser construida con Swing, y presentar sus opciones con JMenuBar, JInternalFrame, JTable. - Diseñar la interfase gráfica, incluyendo imágenes para opciones de los menues, botones. Utilizar fonts, colores - Utilizar el esquema Modelo-Vista-Controlador de Swing - Los campos de entrada de texto, deberán de validar las cadenas de caracteres ingresadas, utilizando expresiones regulares - Este módulo es el único que permite baja de autores, libros o editoriales Entregables: - Código fuente, listo para compilar en Eclipse - Instrucciones de configuración del proyecto Eclipse - Documentación con JavaDoc - Pruebas unitarias de objetos del dominio - Aplicación main, empaquetada en JAR - Configuraciones para HSQL Número de puntos : 6 puntos en total, si todos los requerimientos funcionales y técnicos son totalmente cubiertos Iteración 1.2 Aplicación Swing-JDBC-Spring CON MySQL Requerimientos técnicos: - La aplicación tiene los mismos requerimientos que la obtenida en la iteración 1.1. - Se deberá utilizar el manejador de MySQL y las clases JDBC para conexión al mismo - Script Ant para iniciar, compilar, empaquetar aplicación y ejecución de pruebas unitarias Entregables: - Diagrama UML que muestre el diseño de las clases agregadas - Código fuente, listo para compilar - Documentación con JavaDoc - Pruebas unitarias de objetos del dominio - Aplicación main, empaquetada en JAR - Configuraciones MySQL - Script Ant para iniciar, compilar, empaquetar aplicación y ejecución de pruebas unitarias Número de puntos : 1 punto en total, si todos los requerimientos funcionales y técnicos son totalmente cubiertos Iteración 2. Aplicación Swing-Webservices con Spring Requerimientos técnicos: - Envolver a los objetos del dominio y persistencia obtenidos en la iteración 1.1 y 1.2, con WebServices, utilizando Apache Axis - La aplicación Swing deberá invocar a WebServices, por medio del componente JaxRpcPortProxyFactoryBean de Spring - El cambio del sistema deberá ser mínimo - Los webservices deberán residir en TomCat Apache, y estar separados de la aplicación gráfica Entregables: - Diagrama UML que muestre el diseño de las clases agregadas - Código fuente, listo para compilar - Documentación con JavaDoc - Pruebas unitarias hacia los WebServices - Aplicación Swing, empaquetada en JAR - Webservices empaquetados en formato WAR - Configuraciones para HSQL y MySQL - Script Ant para iniciar, compilar, empaquetar aplicación y ejecución de pruebas unitarias Número de puntos : 2 punto en total, si todos los requerimientos funcionales y técnicos son totalmente cubiertos Iteración 3. Aplicación AJAX con Spring Requerimientos técnicos: - La aplicación deberá ser desplegable en navegador de Internet (Internet explorer y Mozilla) - Para la construcción de la interfase Web se deberá utilizar el API de Google Web Toolkit (GWT) - Envolver a los objetos del dominio y persistencia obtenidos en la iteración 1.1 y 1.2, con extensiones de la clase RemoteServiceServlet - La interfase HTML deberá aprovechar los componentes Widgets de Google Web Toolkit - Las páginas HTML entregadas deben utilizar imágenes, hojas de estilo - No debe haber cambio a los objetos del dominio y persistencia - La aplicación deberán residir en TomCat Apache Entregables: - Diagrama UML que muestre el diseño de las clases agregadas - Código fuente, listo para compilar - Documentación con JavaDoc - Pruebas unitarias de los componentes GWT - Aplicación AJAX-Web en formato WAR - Configuraciones para HSQL (opcional MySQL) - Script Ant para iniciar, compilar, empaquetar aplicación y ejecución de pruebas unitarias Número de puntos : 4 punto en total, si todos los requerimientos funcionales y técnicos son totalmente cubiertos Iteración 4. Aplicación J2ME con WebServices Requerimientos técnicos: - Utilizar los webservices de la iteración 2. - Construir una forma J2ME para la consulta de libros - Utilizar la biblioteca SOAP proporcionada para invocar WebServices - Guardar en una base de datos local, aquellas consultas realizadas, para soportar conexión fuera de línea - Cuidar que la aplicación J2ME no exceda la memoria disponible para el dispositivo Entregables: - Aplicación J2ME corriendose en el emulador Número de puntos : 2 punto en total, si todos los requerimientos funcionales y técnicos son totalmente cubiertos Consideraciones generales - Dado que se utiliza Spring, maximizar el uso de Inyección de la Dependencia y programar hacia interfases. - Antes de programar los requerimientos técncios, entender a los componentes Java a utilizar - Leer la documentación de cada programa utilizado para la construcción del sistema - No hacer dependiente al sistema de la configuración particular de una computadora - Utilizar Eclipse, pero no hacer dependiente al sistema del ambiente de desarrollo - Dividir el trabajo entre todos los integrantes del equipo. - Tener listo el sistema medio día antes de la entrega. Realizar un ciclo de pruebas en un ambiente distinto al donde fue desarrollado y revisar que el software funciona. - Apoyarse de un sistema de control de versiones, como Subversion o CVS para ir controlando cada iteración y no perder resultados ya obtenidos - No desesperarse. No esperar que todo funcione a la primera vez.