Índice 1. Introducción, objetivos y justificación del proyecto. 2. Metodologías utilizadas. 3. Arquitectura y desarrollo: Diagrama de la arquitectura del sistema. Tecnologías utilizadas. Flujos de información. Patrones utilizados. Implementación. Lenguajes utilizados. Herramientas. Algunos detalles. Pruebas. Esfuerzo. 4. Características Posibles mejoras Conclusiones Pantallas
Introducción El proyecto trata de aplicar dos frameworks a una aplicación ya existente añadiendo a su vez funcionalidad al mismo. Los frameworks elegidos han sido Spring e Hibernate, para el patrón MVC y la persistencia del sistema respectivamente. Por la parte de la funcionalidad, se decidió añadir: Instalación de su propia base de datos Capacidad de convertir entre distintos formatos de documentos de texto.
Objetivos El objetivo del proyecto es desarrollar una aplicación web haciendo uso de dos de los frameworks más utilizados en el mundo laboral actualmente. Esta aplicación debe ser una democracia participativa, con una gestión de tutoriales que abarque los siguientes aspectos: Registro de usuarios. Administración de la aplicación. Gestión de votos. Posibilidad de dejar comentarios. Posibilidad de realizar propuestas de tutoriales. Conversión entre formatos de texto.
Justificación del proyecto Parte Tecnológica La tecnología se va renovando a gran velocidad. Aparecen nuevas librerías o los denominados frameworks que facilitan la labor. Surgen nuevas herramientas, las cuales el antiguo empleado no tiene por qué conocer. Encontrar esa información en algún lugar ordenado y poder aprenderla en el menor tiempo posible.
Justificación del proyecto Parte Funcional Construir un lugar donde compartir conocimientos de forma ordenada (no ir recopilando tutoriales de distintos sitios Web -blogs,foros…-). Permitir a los usuarios influir en el material aportado por otros usuarios.
Metodologías Tanto para la realización de la documentación como para el desarrollo de la aplicación: Para la elicitación y análisis de requisitos, se utilizó la metodología explicada en ISG1 Para el diseño y usos de patrones, ISG2 Para la coordinación del desarrollo se usó googlecode como se recomendó en ISG3 y continuación de la aplicación desarrollada en ésta.
Diagrama de la arquitectura del sistema. Diseño de la aplicación en tres capas. Mayor abstracción. Mayor escalabilidad. Facilidad de corrección de errores. MVC Uso de Spring. Abstracción de la capa de Datos. Uso de Hibernate.
Diagrama de la arquitectura del sistema Spring Vista Controllador Hibernate Acceso a BD Modelo
Tecnologías utilizadas. Spring Hibernate JSP JSTL OpenOffice API
Flujos de información Handler Mapping 2 3 1 Dispatcher Servlet Controller ModelAndView Dispatcher Servlet handleRequest(…) ViewResolver Managers DAO Hibernate View 1 2 3 4 5 6 Request
Patrones utilizados. MVC (Spring) DAO (Acceso a datos) Singleton (p.ej: HibernateUtils) Estrategia (Búsqueda) Decorador (Búsqueda general)
Implementación Lenguajes utilizados: Java JSTL JavaScript CSS Java, es libre y es explicado en clase. JTL es más fácil de entender (por alguien que no sabe java y diseña la GUI) JS validación en cliente CSS Estilo.
Herramientas IDE Lomboz 3.3 Apache Tomcat 6.0 GoogleCode MySql tools Subclipse Mozilla Firefox – Internet Explorer
Algunos detalles Seguridad Validación Democracia participativa Control de la sesión Validación En cliente (JavaScript) En servidor (Spring) Democracia participativa Usuarios votan (una sola vez) Usuarios proponen
Pruebas Las pruebas han sido realizadas usando el framework JUnit. Pruebas realizadas durante y tras la implementación.
Esfuerzo Tiempo real empleado: 2 meses Datos según cocomo (No en Objetos): Personas por mes: 11,87 pers*mes Tiempo de desarrollo: 6,4 meses Personas: 1,85 Usando tiempo real: Personas: 11,87/2 = 5,93 (Posible exageración)
Características Capas bien separadas 100% Software libre y gratuito JSTL (Interfaz libre de código) Spring (Lógica) Hibernate (Acceso a datos independiente de BD) 100% Software libre y gratuito Gran portabilidad Java OpenOffice
Puntos de evolución Internacionalización Instalador Creación del esquema Tipos de BD Código HTML en comentarios
Conclusiones Amplio conocimiento de los frameworks utilizados Logro de objetivos propuestos Experiencia en dificultades de afrontar un proyecto completo Toma de decisiones Errores en estimación Depuración Hemos aprendido mucho
Instalación
Subir tutorial
Votación
Ver tutorial
GRACIAS