ONess: un proyecto open source para el negocio textil mayorista desarrollado con tecnologías open source innovadoras.

PROXECTO DE FIN DE CARREIRA DE ENXEÑERÍA INFORMÁTICA

Carlos Sánchez González

Universidade da Coruña
Facultade de Informática - Departamento de Tecnoloxías da Información e as Comunicacións

A Coruña, Septiembre de 2004

Copyright 2004 Carlos Sánchez

28/09/2004


Dedicatoria

A mi familia.

Tabla de contenidos

Resumen
I. Introducción
1. Escenario
Objetivos
2. ONess: una visión global
Visión global
Base tecnológica
II. Justificación y metodología
3. Justificación
Aplicaciones web
Aplicaciones en capas
La arquitectura MVC y Model 2
Open Source
4. Estudio: otras aplicaciones de gestión open source
Compiere
Características
Tecnología empleada
Open for Business OFBiz
Características
Tecnología empleada
5. Metodología
Una introducción a eXtreme Programming
Ciclo de vida de un proyecto XP
Aplicación de eXtreme Programming en ONess
III. Ciclo de vida
6. Exploración
Historias de usuario (user stories)
Funcionalidad general
Gestión de contactos: clientes y proveedores
Gestión de inventario
Gestión de compras y ventas
Herramientas
Desarrollo
Gestión del proyecto
Ejecución
Tecnologías
Maven
Programación Orientada a Aspectos (AOP)
Programación Orientada a Atributos
AspectJ
Spring Framework
Acegi Security System for Spring
Hibernate
XDoclet
Struts, JSP, JSTL, Tiles, struts-menu, Validator, CSS
JUnit, DBUnit, JMock, StrutsTestCase
Jakarta Commons
Prototipo
7. Planificacion de las entregas
Estimaciones de esfuerzo
Funcionalidad general
Gestión de contactos: clientes y proveedores
Gestión de inventario
Gestión de compras y ventas
Planificación
Primera iteración: Prototipo
Segunda iteración: Autenticación y autorización, finalización de la gestión de contactos
Tercera iteración: Gestión de inventario y accesibilidad desde dispositivos móviles
Cuarta iteración: Gestión de compras y ventas
8. Iteraciones
Primera iteración
Estructura de directorios y repositorio de código fuente
Auditoría
Funcionalidad común
Creación, visualización, modificación, eliminación y búsqueda de contactos
Segunda iteración
Añadir información de contacto a un contacto
Visualización, modificación y eliminación de información de contacto
Autenticación y autorización
Tercera iteración
Creación de modelos y productos
Visualización, modificación, eliminación y búsqueda de modelos
Creación y modificación de precios
Accesibilidad desde dispositivos móviles
Otros cambios
Cuarta iteración
Otros cambios
9. Producción
IV. Conclusiones y trabajo futuro
10. Conclusiones y trabajo futuro
Visión global del trabajo realizado
Aspectos favorables
Aspectos desfavorables
Trabajo futuro
A. Obtención y compilación del código
Descarga y compilación del código fuente disponible en CVS
Compilación a partir del código fuente descargado
Configuración de la base de datos para los tests
Usando eclipse
B. Instalación
Instalación
Instalación de la base de datos
Instalación en Tomcat
Glosario
Bibliografía y Referencias

Lista de figuras

3.1. Arquitecura en tres capas
3.2. Arquitectura web en cuatro capas
3.3. Arquitectura web en 3 capas
5.1. Fases de un proyecto en eXtreme Programming
5.2. Ciclos en eXtreme Programming
6.1. Spring: arquitectura en capas
6.2. Arquitectura del sistema
8.1. Creación, visualización, modificación, eliminación y búsqueda de contactos
8.2. Información de contacto
8.3. Añadir información de contacto a un contacto
8.4. Visualización, modificación y eliminación de información de contacto
8.5. Gestión de usuarios
8.6. Creación de modelos y productos
8.7. Creación de modelos y productos, fachada
8.8. Visualización, modificación, eliminación y búsqueda de modelos, fachada
8.9. Creación y modificación de precios
8.10. Creación y modificación de precios, fachada
8.11. Interfaz en Internet Explorer, página principal
8.12. Interfaz en Internet Explorer, resultado de una búsqueda
8.13. Interfaz en una Palm
8.14. Pedidos, albaranes y facturas
8.15. Pedidos, albaranes y facturas, transfer objects
10.1. Estadísticas Sourceforge a fecha 18/9, gráfico

Lista de tablas

7.1. Funcionalidad general
7.2. Gestión de contactos
7.3. Gestión de inventario
7.4. Gestión de compras y ventas
7.5. Fechas de entrega
7.6. Historias primera iteración
7.7. Historias segunda iteración
7.8. Historias tercera iteración
7.9. Historias cuarta iteración
8.1. Historias primera iteración
8.2. Historias segunda iteración
8.3. Historias tercera iteración
8.4. Historias cuarta iteración
10.1. Estadísticas Sourceforge a fecha 18/9
10.2. Estadísticas de la aplicación de demostración del 14/7 al 18/9

Lista de ejemplos

8.1. Configuración general de Hibernate
8.2. Configuración del fichero de mapeo de Hibernate de Party
8.3. Configuración de la fuente de datos DBCP
8.4. Propiedades de la fuente de datos DBCP
8.5. Configuración de la fuente de datos JNDI
8.6. Configuración de la aplicación web party-webapp en Tomcat utilizando JNDI
8.7. Configuración del aspecto de auditoría en Spring
8.8. Método matches del aspecto de auditoría
8.9. Definición de atributos de persistencia en la clase Party
8.10. Definición de atributos de persistencia en los métodos de la clase Party
8.11. Configuración de la fachada y los DAOs de party
8.12. Configuración de autenticación y autorización en el modelo
8.13. Concatenación de listas en Spring
8.14. Configuración de autenticación y autorización en el descriptor de aplicación web
8.15. Configuración de autenticación y autorización en la aplicación web
8.16. Configuración de reglas de autorización
B.1. Configuración de la aplicación web en Tomcat utilizando JNDI
B.2. Propiedades de la fuente de datos DBCP para MySQL