Universitas Humanística Pontificia Universidad Javeriana ...
Pontificia Universidad Javeriana Memoria de Trabajo de ...
Transcript of Pontificia Universidad Javeriana Memoria de Trabajo de ...
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
1
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
2
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
3
BIBLIOTECA ALFONSO BORRERO CABAL, S.J. DESCRIPCIÓN DE LA TESIS O DEL TRABAJO DE GRADO
FORMULARIO
TÍTULO COMPLETO DE LA TESIS O TRABAJO DE GRADO
Sistema de Información para el Ingreso, Mantenimiento y Salida de Estibas
SUBTÍTULO, SI LO TIENE
SIBOX
AUTOR O AUTORES
Apellidos Completos Nombres Completos
García Rodríguez Jeyson Andrés
Lancheros Suescún Mario Sergio
DIRECTOR (ES) TESIS O DEL TRABAJO DE GRADO
Apellidos Completos Nombres Completos
Franky De Toro María Consuelo
FACULTAD
Ingeniería
PROGRAMA ACADÉMICO
Tipo de programa ( seleccione con “x” )
Pregrado Especialización Maestría Doctorado
X
Nombre del programa académico
Ingeniería de Sistemas
Nombres y apellidos del director del programa académico
Germán Alberto Chavarro Flórez
TRABAJO PARA OPTAR AL TÍTULO DE:
Ingeniero de Sistemas
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
4
PREMIO O DISTINCIÓN (En caso de ser LAUREADAS o tener una mención especial):
CIUDAD AÑO DE PRESENTACIÓN DE LA
TESIS O DEL TRABAJO DE GRADO
NÚMERO DE PÁGINAS
Bogotá 2013 80
TIPO DE ILUSTRACIONES ( seleccione con “x” )
Dibujos Pinturas Tablas, gráficos y
diagramas Planos Mapas Fotografías Partituras
X
SOFTWARE REQUERIDO O ESPECIALIZADO PARA LA LECTURA DEL DOCUMENTO
Nota: En caso de que el software (programa especializado requerido) no se encuentre licenciado por la
Universidad a través de la Biblioteca (previa consulta al estudiante), el texto de la Tesis o Trabajo de Grado
quedará solamente en formato PDF.
MATERIAL ACOMPAÑANTE
TIPO DURACIÓN
(minutos) CANTIDAD
FORMATO
CD DVD Otro ¿Cuál?
Vídeo
Audio
Multimedia
Producción
electrónica
Otro Cuál?
DESCRIPTORES O PALABRAS CLAVE EN ESPAÑOL E INGLÉS
Son los términos que definen los temas que identifican el contenido. (En caso de duda para designar estos
descriptores, se recomienda consultar con la Sección de Desarrollo de Colecciones de la Biblioteca Alfonso
Borrero Cabal S.J en el correo [email protected], donde se les orientará).
ESPAÑOL INGLÉS
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
5
Aplicación web Web Application
Framework Seam Seam Framework
Quartz Quartz
Estiba Stowage
JavaEE JavaEE
RESUMEN DEL CONTENIDO EN ESPAÑOL E INGLÉS
(Máximo 250 palabras - 1530 caracteres)
El propósito de este documento es presentar el proceso de desarrollo de una aplicación web que
provee el servicio de registrar la información de lotes y estibas. Esta herramienta fue desarrollada
mediante el uso de un servidor de aplicaciones, seguridad por roles finos, agendamiento de tareas por
Quartz Seam y generación de reportes y códigos de barra en PDF con iText en tecnología Java EE5-
SEAM2. Todas las compañías nacionales que tienen como objetivo estratégico seleccionar los envases
de los productos de mercado pueden utilizar esta aplicación, dado que se puede adaptar la
información en el modelo de datos.
The purpose of this document is to present the development process of a web Application that
provides a service for register the information about trucks and stowages. This tool was developed by
using an application server and the Java EE5 technology – SEAM 2. Also this application makes use of
roles fines security, scheduling task with Quartz seam, generation of PDF files reporting and
generation of Barcode type 128 with iText. All national companies that have as its objective choose
containers for market products, can use this application, because can be adapted to the information
in the data model.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
6
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
7
SISTEMA DE INFORMACIÓN PARA EL INGRESO, MANTENIMIENTO Y
SALIDA DE ESTIBAS
Código: 6843
Jeyson Andrés García Rodríguez
Mario Sergio Lancheros Suescún
PONTIFICIA UNIVERSIDAD JAVERIANA DE BOGOTÁ D.C.
FACULTAD DE INGENIERÍA
CARRERA DE INGENIERÍA DE SISTEMAS
BOGOTÁ D.C.
2013
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
8
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
9
Tabla de contenido
INTRODUCCIÓN .............................................................................................................................14
1. OPORTUNIDAD, PROBLEMÁTICA, ANTECEDENTES ..................................................16
1.1. Descripción del contexto ....................................................................................................16
1.2. Formulación del problema que se resolvió ........................................................................16
1.3. Justificación .......................................................................................................................16
1.4. Impacto esperado ...............................................................................................................16
2. DESCRIPCIÓN DEL PROYECTO ........................................................................................18
2.1. Visión global ......................................................................................................................18
2.2. Objetivo general .................................................................................................................18
2.3. Objetivos específicos .........................................................................................................18
2.4. Método que se propuso para satisfacer cada objetivo ........................................................19
2.4.1. Programación extrema ...............................................................................................19
2.4.2. Etapa 1: Modelamiento de los procesos de negocio ..................................................19
2.4.3. Etapa 2: Análisis y diseño del sistema de información para el ingreso, mantenimiento
y salida de estibas ....................................................................................................................20
2.4.4. Etapa 3: Construcción y pruebas al sistema de información para el ingreso,
mantenimiento y salida de estibas ...........................................................................................20
2.4.5. Validación del cliente .................................................................................................21
3. MARCO TEÓRICO ................................................................................................................22
3.1. Marco Contextual ...............................................................................................................22
3.1.1. Procesos del negocio ..................................................................................................22
A. Proceso de ingreso de estibas .....................................................................................22
B. Proceso de mantenimiento de estibas .........................................................................22
C. Proceso de salida de estibas .......................................................................................23
3.2. Marco conceptual ...............................................................................................................24
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
10
3.2.1. Aplicaciones empresariales web ................................................................................24
A. Aplicación web ..........................................................................................................24
B. Servidores web y Servidores de aplicaciones ............................................................25
C. Tecnologías que utilizan servidor de aplicaciones .....................................................27
D. Comparación entre tecnologías para el desarrollo web con servidor de aplicaciones29
3.2.2. Seguridad de la información ......................................................................................30
A. Descripción ................................................................................................................30
4. DESARROLLO DEL TRABAJO ...........................................................................................32
4.1. Descripción de la compañía tomada como caso de estudio ...............................................33
4.2. Modelamiento de procesos de negocio ..............................................................................33
4.2.1. Diseño As-Is de la empresa tomada como caso de estudio ........................................33
A. Organización ..............................................................................................................33
B. Descripción de los roles .............................................................................................33
C. Flujo de secuencia de los procesos de negocio ..........................................................34
D. Conceptos relevantes de los procesos de negocio ......................................................34
E. Proceso de Ingreso de estibas .....................................................................................37
F. Proceso de mantenimiento de estibas .........................................................................39
G. Proceso de salida de estibas .......................................................................................41
H. Debilidades del sistema actual de la compañía de estibas .........................................42
4.2.2. Diseño To-Be de la empresa tomada como caso de estudio ......................................43
A. Organización ..............................................................................................................43
B. Descripción de los roles .............................................................................................44
C. Flujo de secuencia de los procesos de negocio ..........................................................44
D. Conceptos relevantes de los proceso de negocio .......................................................44
E. Proceso de ingreso de estibas .....................................................................................44
F. Proceso de mantenimiento de estibas .........................................................................47
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
11
G. Proceso de salida de estibas .......................................................................................49
H. Análisis de las debilidades .........................................................................................50
4.2.3. Resultados del modelamiento de los procesos de negocio .........................................51
4.3. Análisis y diseño del sistema de información: SIBOX ......................................................52
4.3.1. Módulos .....................................................................................................................53
4.3.2. Requerimientos del sistema de información por módulos .........................................54
4.3.3. Casos de uso del sistema de información por módulos ..............................................56
4.3.4. Perfiles de seguridad ..................................................................................................57
4.3.5. Modelamiento de entidades .......................................................................................58
4.3.6. Arquitectura de la aplicación .....................................................................................60
A. Descripción ................................................................................................................60
B. Diagrama de componentes .........................................................................................61
C. Diagrama de despliegue .............................................................................................63
4.4. Construcción y pruebas del sistema de información ..........................................................63
4.4.1. Generación inicial de la aplicación mediante el uso de los generadores seam y taylor
63
4.4.2. Módulo de seguridad basado en roles finos y perfiles ...............................................65
A. Objetivo ......................................................................................................................65
B. Descripción ................................................................................................................65
C. Procedimiento ............................................................................................................66
D. Con respecto a la seguridad de la información ..........................................................68
4.4.3. Módulo de auditoría mediante métodos callback .......................................................70
A. Objetivo ......................................................................................................................70
B. Descripción ................................................................................................................70
C. Procedimiento ............................................................................................................71
4.4.4. Módulo de gestión de estibas .....................................................................................72
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
12
A. Objetivo ......................................................................................................................72
B. Descripción ................................................................................................................73
C. Procedimiento ............................................................................................................73
4.4.5. Módulo de reportes ....................................................................................................78
A. Objetivo ......................................................................................................................78
B. Descripción ................................................................................................................78
C. Procedimiento ............................................................................................................78
4.4.6. Pruebas del sistema de información para el ingreso, mantenimiento y salida de
estibas SIBOX..........................................................................................................................85
4.4.7. Validación del sistema de información para el ingreso, mantenimiento y salida de
estibas SIBOX..........................................................................................................................85
5. RESULTADOS .......................................................................................................................86
5.1. Validación de la aplicación ................................................................................................88
6. CONCLUSIONES Y TRABAJOS FUTUROS .......................................................................89
6.1. Conclusiones ......................................................................................................................89
6.2. Recomendaciones ..............................................................................................................90
6.3. Trabajos futuros .................................................................................................................90
6.4. Post-Mortem ......................................................................................................................90
6.4.1. Metodología propuesta Vs. Metodología realmente utilizada ...................................90
6.4.2. Tiempo del proyecto planeado Vs. Tiempo del proyecto ejecutado ..........................92
7. REFERENCIAS Y BIBLIOGRAFÍA .....................................................................................94
8. ANEXOS ...............................................................................................................................103
8.1. Anexo 1: Documentos del modelamiento de procesos ....................................................103
8.2. Anexo 2: Requerimientos del sistema ..............................................................................103
8.3. Anexo 3: Inventario de módulos y casos de uso ..............................................................103
8.4. Anexo 4: Diagrama de casos de uso ................................................................................103
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
13
8.5. Anexo 5: Manual del usuario ...........................................................................................103
8.6. Anexo 6: Cronograma del proyecto .................................................................................103
8.7. Anexo 7: Glosario ............................................................................................................104
8.8. Anexo 8: Diagrama de entidades .....................................................................................104
8.9. Anexo 9: Carta de satisfacción por parte del cliente ........................................................104
8.10. Anexo 10: Encuesta de validación por parte del cliente ..............................................104
8.11. Anexo 11: Manual de instalación .................................................................................104
8.12. Anexo 12: Manual de mantenimiento ..........................................................................104
8.13. Anexo 13: Entrevistas realizadas al cliente ..................................................................104
8.14. Anexo 14: Test de pruebas de CRUDS ........................................................................104
8.15. Anexo 15: Test de pruebas de casos de uso de negocio ...............................................104
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
14
INTRODUCCIÓN
Las empresas productoras y comercializadoras necesitan de una compañía encargada del proceso
de selección de envases de buena calidad que puedan servir como empaque para sus productos
finales. Estas compañías muchas veces no cuentan con los recursos económicos necesarios para
realizar la compra o arrendamiento de sistemas de información de inventarios y producción.
El objetivo de este trabajo de grado es el de diseñar y construir un sistema de información que
brinde soporte a las organizaciones para el registro del ingreso y salida de estibas, asignación de
trabajo de mantenimiento y generación de reportes en un tiempo específico.
Actualmente existen aplicaciones que modelan los procesos de inventario por medio de suites de
BPM (Ber12), archivos excel (Fer10) y controles de inventario, pero no tienen como objetivo
específico los procesos de ingreso, mantenimiento y salida de estibas. SIBOX (aplicación que dio
como resultado este trabajo de grado) es una aplicación que está orientada a la web que permite
centralizar la información en un servidor y acceder a esta desde cualquier computador a través de
un navegador web sin necesidad de realizar instalaciones adicionales. Cabe anotar que los
usuarios que acceden a la aplicación deben contar los permisos de seguridad necesarios.
SIBOX fue desarrollada utilizando la tecnología Java EE5 –Seam 2 (Sal09) que proporciona un
conjunto de frameworks de infraestructura Java para la construcción de aplicaciones
empresariales entre los cuales se encuentran log4j (Sam05), seguridad por roles (Mar111),
anotaciones, JavaServer Faces (Ken09), agendamiento de tareas por Quartz (Qua), generación de
códigos de barras y reportes en PDF por iText (Bru11), generación y envíos de correos electrónicos
por JavaMail (Ser) y un módulo dedicado a la persistencia de los datos de este tipo de aplicaciones
web.
Existen actividades adicionales que se realizaron para poder cumplir adecuadamente con el
objetivo propuesto. Entre estas actividades se encuentran el modelo As-is (Rob02) y modelo To-Be
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
15
(Rob02) de la compañía tomada como caso de estudio, el levantamiento de requerimientos, el
diseño de los casos de uso y el modelamiento de entidades.
Para la validación del producto final que va ser entregado al cliente se cuenta con la compañía
Distribuidora JJ, empresa que se dedica a realizar la selección de envases en buen estado, mal
estado y de reciclaje para diferentes plantas de producción en Colombia. Adicionalmente se
realizaran validaciones parciales con respecto a las herramientas tecnológicas utilizadas con la
ayuda de la directora de trabajo de grado, la ingeniera María Consuelo Franky.
En este documento se describe el proceso detallado de todo lo que fue utilizado para el desarrollo
del producto final y se describe el modo en que fueron utilizadas cada una de las herramientas y
las razones por las cuales fueron utilizadas. El producto principal lo constituye la aplicación
funcional la cual se anexa en un CD con sus respectivos manuales de usuario, instalación y
mantenimiento.
Por último se muestran las conclusiones que se obtuvieron durante el desarrollo de este trabajo
de grado y que pueden ser útiles para aquellas personas que tengan algún tipo de interés por este
tema. También se presentan posibles extensiones para nuevas versiones del sistema de
información.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
16
1. OPORTUNIDAD, PROBLEMÁTICA, ANTECEDENTES
1.1. DESCRIPCIÓN DEL CONTEXTO
El trabajo de grado “sistema de información para el ingreso, mantenimiento y salida de estibas” está
orientado a las empresas que se dedican a clasificar las cajas en buen estado, mal estado y de
reciclaje provenientes de las sucursales y distribuidoras de una planta de producción. Actualmente
algunas de estas compañías no tienen recursos para solucionar problemas como pérdidas de la
información, datos inconsistentes, problemas de comunicación entre las empresa remitentes y la
compañía de estibas, deficiencia en auditoría, generación ineficiente de reportes, seguridad de la
información y licenciamiento de programas de software.
1.2. FORMULACIÓN DEL PROBLEMA QUE SE RESOLVIÓ
¿Cómo puede una empresa dedicada al ingreso, mantenimiento y salida de estibas solucionar los
problemas de pérdidas de información, datos inconsistentes, control y supervisión, seguridad de la
información y auditoria en acciones de usuarios?
1.3. JUSTIFICACIÓN
El trabajo de grado parte del interés de autores de la presente propuesta en el área de ingeniería de
software, sistemas de información, programación en la web y desarrollo de aplicaciones
empresariales. Además de la importancia de la sistematización de una empresa que requiere gran
cantidad de almacenamiento para el ingreso, mantenimiento, y salidas de estibas.
Con el software libre que será producto del trabajo propuesto, las empresas podrán gozar de una
herramienta que permite el ingreso de estibas, el mantenimiento de cada una de las cajas y la
información resultante. Además de poder obtener reportes y datos históricos desde cualquier parte
del mundo con conexión a internet.
1.4. IMPACTO ESPERADO
Al finalizar el trabajo de grado las empresas nacionales dedicadas al ingreso, mantenimiento y
salida de estibas podrán contar con una herramienta libre que permita la organización de los
procesos que llevan cotidianamente. La empresa generará eficientemente reportes que ayuden a la
toma de decisiones. Además contará con un control y una supervisión en las actividades que
enmarcan el proyecto, tomando en cuenta la perdida de la información del ingreso, mantenimiento y
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
17
salida de estibas y la supervisión del proceso de mantenimiento de estibas. Finalmente el software
brindará seguridad por medio de roles a la información de la organización, y permitirá una auditoria
en acciones para realizar un seguimiento a cada uno de los empleados.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
18
2. DESCRIPCIÓN DEL PROYECTO
2.1. VISIÓN GLOBAL
El motivo principal de la realización de este trabajo de grado es el de automatizar los procesos de
ingreso, mantenimiento y salida de estibas. En el desarrollo de este trabajo de grado se realizó una
aplicación de modo que los usuarios puedan ingresar información sobre los lotes provenientes de las
empresas remitentes, realizar tareas de mantenimiento y almacenar las salidas de la bodega a la
planta de producción. Posteriormente los usuarios pueden obtener reportes con la información de
los lotes y las estibas que fueran registradas en el sistema.
2.2. OBJETIVO GENERAL
El trabajo de grado tiene como objetivo desarrollar un sistema de información para el ingreso,
mantenimiento y salidas de estibas, por medio de un software libre orientado a la web con el fin de
garantizar una mejora en la toma decisiones y seguridad en la información de la empresa tomada
como caso de estudio.
2.3. OBJETIVOS ESPECÍFICOS
Los objetivos específicos del presente trabajo de grado son:
1. Realizar el modelamiento de los procesos actuales en la compañía tomada como caso de
estudio (Diseño As-Is (Jak11)).
2. Realizar el modelamiento de los procesos esperados en la compañía tomada como caso de
estudio (Diseño To-Be (Jak11)).
3. Realizar un análisis de las debilidades de la compañía tomada como caso de estudio con el
fin de darle una solución con tecnologías de información.
4. Realizar el análisis y el diseño del sistema de información para el ingreso, mantenimiento y
salida de estibas.
5. Realizar la construcción del sistema de información para el ingreso, mantenimiento y salida
de estibas.
6. Realizar pruebas de caja negra al sistema de información para el ingreso, mantenimiento y
salida de estibas.
7. Realizar una encuesta de validación al cliente sobre las mejoras encontradas en el sistema
de información para el ingreso, mantenimiento y salida de estibas.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
19
2.4. MÉTODO QUE SE PROPUSO PARA SATISFACER CADA OBJETIVO
Cada uno de los objetivos específicos mencionados en la sección anterior tiene enmarcadas las
siguientes etapas, actividades y tareas bajo la metodología ágil de programación de software:
programación extrema.
2.4.1. PROGRAMACIÓN EXTREMA
La programación extrema, XP por sus siglas en inglés (xtreme programming), es una metodología
la cual propone un proceso de desarrollo de software ágil y a su vez disciplinado http://www.k-
jahn.de/files/bibtex.xsl .
La metodología XP consiste básicamente en un proceso evolutivo el cual se basa en retroalimentar
un sistema mediante una serie de iteraciones que ocurren a lo largo del tiempo de vida de desarrollo
del producto. Existe una variedad de beneficios y ventajas que otorgan a XP un valor agregado
sobre las demás metodologías:
Simplicidad: Se busca siempre encontrar el camino más ligero para el desarrollo en cada
una de las iteraciones y si es necesario en un futuro agregar funcionalidad extra
http://www.k-jahn.de/files/bibtex.xsl.
Programación en parejas: Consiste en que la tarea de desarrollo se lleve a cabo por dos
personas en un mismo puesto, esto garantiza que se discuta cada una de las líneas de código
que se escriban y de esta manera generar código de mayor calidad (Cao04).
Rápida corrección de errores: Debido a que la metodología se compone de pequeñas
iteraciones es mucho más fácil corregir errores de cortos fragmentos de código a corregir
grandes módulos desarrollados http://www.k-jahn.de/files/bibtex.xsl.
Frecuente retroalimentación por parte del cliente: Por lo general se muestra cada una de
las iteraciones al cliente y este retroalimenta al equipo de trabajo informando los cambios
que hayan que realizarse (Art02).
Este proyecto presenta las siguientes etapas basados en la metodología ágil XP:
2.4.2. ETAPA 1: MODELAMIENTO DE LOS PROCESOS DE NEGOCIO
En esta etapa del trabajo de grado se realizaran las actividades de caracterización y parametrización
de los procesos de ingreso, mantenimiento y salida de estibas de la compañía tomada como caso de
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
20
estudio. Estas actividades están sujetas a los objetivos específicos 1, 2 y 3 mencionados en la
sección Objetivos específicos de este documento.
Las tareas que se realizaran en esta etapa son:
Realizar entrevistas y reuniones al administrador de la compañía tomada como caso de
estudio.
Realizar el análisis del estado inicial de la compañía tomada como caso de estudio (Diseño
As-Is (Jak11)).
Realizar el análisis del estado esperado en la compañía tomada como caso de estudio
(Diseño To-Be (Jak11)).
Presentar el análisis al administrador de la compañía tomada como de estudio.
Realizar un análisis de las debilidades con el fin de darle una solución por medio de
tecnologías de información.
2.4.3. ETAPA 2: ANÁLISIS Y DISEÑO DEL SISTEMA DE INFORMACIÓN PARA EL INGRESO,
MANTENIMIENTO Y SALIDA DE ESTIBAS
En esta etapa del trabajo de grado se realizaran las actividades de análisis y diseño del sistema de
información SIBOX. Estas actividades están sujetas al objetivo específico 4 mencionado en la
sección Objetivos específicos de este documento.
Las tareas que se realizaran en esta etapa son:
Realizar el levantamiento de requerimientos.
Realizar el registro de los requerimientos en la plantilla hacer – usos.
Realizar el inventario de módulos y casos de uso.
Realizar el modelamiento de las entidades.
2.4.4. ETAPA 3: CONSTRUCCIÓN Y PRUEBAS AL SISTEMA DE INFORMACIÓN PARA EL INGRESO,
MANTENIMIENTO Y SALIDA DE ESTIBAS
En esta etapa del trabajo de grado se realizaran las actividades de construcción y pruebas de caja
negra del sistema de información SIBOX. Estas actividades están sujetas a los objetivos específicos
5 y 6 mencionados en la sección Objetivos específicos de este documento.
Las tareas que se realizaran en esta etapa son:
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
21
Realizar una investigación de herramientas tecnologías necesarias para el desarrollo del
producto final.
Realizar la construcción del sistema de información en tecnología JavaEE5 – Seam 2.
Realizar pruebas de caja negra al sistema de información SIBOX.
2.4.5. VALIDACIÓN DEL CLIENTE
En esta etapa del trabajo de grado se realizan las actividades de validación del sistema de
información para el ingreso, mantenimiento y salida de estibas SIBOX. Estas actividades están
sujetas al objetivo específico 7 mencionado en la sección Objetivos específicos de este documento.
Las tareas que se realizaran en esta etapa son:
Realizar una encuesta de validación al cliente con respecto al sistema de información para
el ingreso, mantenimiento y salida de estibas SIBOX.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
22
3. MARCO TEÓRICO
3.1. MARCO CONTEXTUAL
A continuación se describen los procesos de negocio:
3.1.1. PROCESOS DEL NEGOCIO
A. PROCESO DE INGRESO DE ESTIBAS
El objetivo de este proceso es registrar el ingreso de los lotes (camiones) y las estibas (hileras de
cajas) a la compañía de estibas.
Este procedimiento inicia con el envío de un lote y sus estibas por parte del despachador de una
empresa remitente (empresa que trabaja para la compañía de estibas y puede ser sucursal,
distribuidora local o distribuidora foránea) y la recepción del mismo por parte del operario de la
compañía de estibas. El proceso finaliza con la creación de una tarea de mantenimiento para cada
estiba. A continuación se presenta una foto de la compañía tomado caso de estudio en el proceso de
ingreso de estibas:
Ilustración 1: Foto 1 - Proceso de ingreso de estibas
El diseño As-Is y To-Be del proceso de ingreso de estibas se encuentra en la sección Modelamiento
de procesos de negocio de este documento.
B. PROCESO DE MANTENIMIENTO DE ESTIBAS
El objetivo de este proceso es registrar el número de cajas reportadas como buenas, en reparación y
de reciclaje que contiene cada una de las estibas.
Lote Estiba
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
23
Este procedimiento inicia con la finalización del proceso de ingreso de estibas y finaliza con la
validación de la información suministrada por un empleado de mantenimiento por parte del
coordinador de estibas.
A continuación se muestra una foto de la compañía tomada como caso de estudio en el proceso de
mantenimiento de estibas:
Ilustración 2: Foto 2 - Proceso de mantenimiento de estibas
El diseño As-Is y To-Be del proceso de mantenimiento de estibas se encuentra en la sección
Modelamiento de procesos de negocio de este documento.
C. PROCESO DE SALIDA DE ESTIBAS
El objetivo de este proceso es registrar la salida de los paquetes de la compañía a la planta de
producción.
Este procedimiento inicia con la finalización del proceso de mantenimiento de estibas y finaliza con
la entrega de una cantidad de paquetes en la planta de producción.
A continuación se muestra una foto de la compañía tomada como caso de estudio en el proceso de
salida de estibas:
Estiba
seleccionada
Empleado de
Mantenimiento
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
24
Ilustración 3: Foto 3 - Proceso de salida de estibas
El diseño As-Is y To-Be del proceso de salida de estibas se encuentra en la sección Modelamiento
de procesos de negocio de este documento.
3.2. MARCO CONCEPTUAL
3.2.1. APLICACIONES EMPRESARIALES WEB
A continuación se explican los conceptos relevantes del proyecto de grado sobre las aplicaciones
empresariales web como: protocolo HTTP, cliente web, servidor web, servidores de aplicaciones, y
tecnologías que utilizan servidores de aplicaciones como Java EE y .NET.
A. APLICACIÓN WEB
Una aplicación web es un tipo especial de aplicación cliente/servidor, donde tanto el cliente (el
navegador, explorador o visualizador) como el servidor (el servidor web) y el protocolo mediante el
que se comunican (HTTP) están estandarizados y no han de ser creados por el programador de
aplicaciones (Ser02).
El protocolo HTTP forma parte de la familia de protocolos de comunicaciones TCP/IP, que son
empleados en Internet. Estos protocolos permiten la conexión de sistemas heterogéneos, lo que
facilita el intercambio de información entre distintos ordenadores. HTTP se sitúa en el nivel 7 del
modelo OSI (Ser02).
El cliente web es un programa con el que interacciona el usuario para solicitar a un servidor web el
envío de los recursos que desea obtener mediante HTTP. La parte cliente de las aplicaciones web
Resultados de las
tareas de
mantenimiento
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
25
suele estar formada por el código HTML que forma la página web más algo de código ejecutable en
lenguaje de script del navegador. El servidor web es un programa que está esperando
permanentemente las solicitudes de conexión mediante el protocolo HTTP por parte de los clientes
web (Ser02). Los mensajes más comunes entre los clientes y los servidores web son GET, que se
usa para obtener páginas del servidor identificado por el URL; HEAD, para conseguir información
sólo del encabezamiento: título, descripción, relación con otros documentos del nodo y el URL del
documento; y POST, que le señala a un servidor que debe tomar nota de un recurso existente, enviar
un mensaje enviar un formulario de datos para su procesamiento, o añadir información a una base
datos http://www.k-jahn.de/files/bibtex.xsl.
B. SERVIDORES WEB Y SERVIDORES DE APLICACIONES
La típica interacción entre un cliente y un servidor en una aplicación web, es que el cliente solicite,
a través del URL, una página inicial. En tal página el usuario invoca alguna opción, originando un
requerimiento por una nueva página al servidor. Esta se genera en el servidor (implementando
alguna lógica que produce los resultados que pide el cliente y la presentación) y se envía al cliente,
el cual despliega al usuario (Esta versión es conocida como servicio web) http://www.k-
jahn.de/files/bibtex.xsl.
En casos donde se requiere procesar transacciones de venta de productos o servicios (registro de
lotes, registro de estibas, generación de tareas de mantenimiento y códigos de barra, registro de
salidas de paquetes de bodega) y hay que implementar una lógica compleja de negocio, se requiere
un servidor que complemente o reemplace a un servidor web, denominado servidor de aplicaciones
http://www.k-jahn.de/files/bibtex.xsl.
Un servidor de aplicaciones sirve como plataforma para desarrollar e implementar servicios web y
Enterprise Java Beans (EJBs), y como un motor de transacciones y de mensajería al tiempo que
ofrece la lógica de negocio para los usuarios finales (IBM09).
En el mercado existen cuatro servidores de aplicaciones conocidos:
Oracle Glassfish Server: Oracle Glassfish Server es un servidor de aplicaciones de código
libre entregado por la comunidad Glassfish y lanzado al mercado por SUN en el año 2005.
Este servidor de aplicaciones es un contendor de java EE, uno de los cuales es TomCat
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
26
(contenedor web), el cual permite: trabajar con tecnologías como Enterprise JavaBeans
(EJB), Java Persistence API (JPA), Java Message Service (JMS), entre otras (Ora10).
Oracle WebLogic Server: Oracle WebLogic Server es un servidor de aplicaciones no
gratuito construido por Oracle, el cual soporta el despliegue de diferentes tipos de
aplicaciones distribuidas (basados en la construcción de aplicaciones basadas en SOA)
(Ora11).
IBM Webshere: WebSphere es un servidor de aplicaciones no gratuito y creado por IBM
que ejecuta aplicaciones empresariales y soporta los estándar de J2EE y servicios web
(Tim03).
Jboss Red Hat: Jboss Application Server (Jboss AS) es un servidor de aplicaciones para
Java Enterprise Edition (Java EE5). Este servidor estandariza la arquitectura del desarrollo
de las aplicaciones mediante la definición de varios modelos de componentes (JavaBeans,
Java Server Faces, Java Server Pages, Servlets, entre otros) e implementados por un modelo
estándar. Cuando los componentes están ejecutándose en el servidor, este provee un
conjunto de servicios que están a disposición de los componentes (Jam09).
Entre las características que tiene un servidor de aplicaciones, las cuáles fueron relevantes en la
toma de decisión de la tecnología a utilizar, se encuentran:
La inclusión de un middleware que facilita la comunicación entre varios servicios.
Soporte a diferentes estándares como HTML, XHMTL y XML permitiendo el
funcionamiento en ambientes web.
Alta disponibilidad de sus aplicaciones, además garantiza seguridad y confiabilidad de las
mismas.
Brinda escalabilidad y mantenibilidad en tal caso de que la carga de trabajo incremente.
Brinda un módulo de autenticación y autorización (JAAS) por medio de roles, identity, y
permisos sobre métodos EJB http://www.k-jahn.de/files/bibtex.xsl.
Brinda un módulo de administración de transacciones cumpliendo con las propiedades
ACID http://www.k-jahn.de/files/bibtex.xsl.
Provee un módulo estándar de Entity Beans por medio de Hibernate http://www.k-
jahn.de/files/bibtex.xsl.
A continuación se explican las tecnologías que hacen uso del servidor de aplicaciones:
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
27
C. TECNOLOGÍAS QUE UTILIZAN SERVIDOR DE APLICACIONES
Las siguientes tecnologías usan un servidor de aplicaciones son:
.NET
Microsoft .NET es una plataforma de lenguaje abierto para la construcción de aplicaciones
empresariales y desarrollo web. El objetivo es proporcionar una maquina abstracta para los
desarrolladores profesionales que abarcan aplicaciones tradicionales cliente servidor, aplicaciones
n-capas y aplicaciones orientadas a la web (Mey01). Esta plataforma integra múltiples tecnologías
que han ido apareciendo en los últimos años como ASP.NET, ADO.NET, LINQ, WPF, Silverlight,
entre otros (Jor10).
.NET permite desarrollar múltiples tipos de aplicaciones como líneas de comandos, servicios de
Windows, aplicaciones de escritorio, aplicaciones web, aplicaciones distribuidas SOA, y
aplicaciones para dispositivos móviles (Jor10). Esta plataforma tiene un papel central en la
estrategia de Microsoft para integrar el internet y numerosas herramientas para desarrolladores
como servicios web, seguridad, modelo de componentes (COM), entre otros (Mey01).
Las principales ventajas de .NET son el fácil desarrollo de aplicaciones, la mejora de infraestructura
de componentes, el soporte de múltiples lenguajes y el desplegué sencillo e aplicaciones (Jor10).
JAVA EE
SIBOX fue desarrollado en Java EE5 por la facilidad que nos brindó el framework SEAM2, el cuál
no está disponible para JavaEE6.
Java EE5 (Enterprise Edition 5) es una plataforma que le proporciona a los desarrolladores un
potente conjunto de APIs que reducen el tiempo de desarrollo, la complejidad de las aplicaciones y
mejoran el rendimiento. Esta plataforma presenta un modelo de programación simplificado. Con la
tecnología Java EE5 los descriptores de despliegue XML son opcionales. En su lugar, un
desarrollador puede introducir esta información como una anotación directamente en el archivo
fuente java y el servidor java EE configurara el componente en el despliegue y en tiempo de
ejecución (Jen06).
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
28
Java EE está diseñado para soportar aplicaciones que implementan servicios de la empresa para los
clientes, empleados, proveedores, socios y otros que hacen demandas o contribuciones. Este modelo
define una arquitectura para la implementación de servicios que ofrecen escalabilidad,
accesibilidad, y facilidad de gestión que son necesarias en las aplicaciones empresariales (Jen06) .
Esta tecnología ofrece los siguientes APIs:
Java Persistence API (JPA): Este servicio ofrece una API estándar de mapeo objeto-
relacional (ORM) (Ant10).
JavaMail: Este servicio ofrece una API que permite el envió de correos electrónicos
(Ant10).
Enterprise JavaBeans (EJB): un componente EJB es un cuerpo de código que tiene campos
y métodos para implementar módulos de lógica de negocios (Jen06). Hay tres tipos de
EJB: EJB de entidades, EJB de sesión y EJB de mensajería. Un EJB de entidad es una
entidad JPA en Java EE5. Un EJB de sesión representa una conversación transitoria con el
cliente, y un EJB de mensajería combina características de un EJB de sesión y un oyente de
mensajes (Jen06).
JavaServer Faces (JSF): JSF es el estándar oficial en la capa web para la plataforma Java
EE que incluye un conjunto de componentes predefinidos para la interfaz gráfica (UI), un
modelo de programación basado en eventos y la habilidad para añadir componentes
desarrollados por terceros (EdB10).
Java Database Conectivity API (JDBC): Esta API permite invocar comandos SQL desde los
métodos de programación en lenguaje java (Jen06).
Java Authentication and Authorization Service (JAAS): Este servicio proporciona una
autenticación y autorización a un usuario o grupo de usuarios dentro de la aplicación java
EE (Jen06).
iText: iText es el líder mundial de creación y manipulación de archivos PDF. Esta librería
ha sido publicada bajo la licencia pública general de affero (AGPL) y está disponible en dos
versiones: java y C# (Bru11).
Quartz: Quartz es una herramienta libre que puede ser integrada con una aplicación Java
Standard Edition (Java SE) o Java Enterprise Edition (Java EE). Esta herramienta es
utilizada para ejecutar tareas en determinados momentos (Qua) (No se utilizó EJB Timer
dado que no es soportado por SEAM2).
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
29
Seam 2.2 : Seam es un framework de aplicaciones java EE que permite: definir un modelo
de componentes uniforme para toda la lógica de la aplicación, integrar las páginas
JavaServer Faces (JSF) con EJB3.0, integrar las páginas JavaServer Faces (JSF) con AJAX
por medio de JBoss RichFaces, entre otros http://www.k-jahn.de/files/bibtex.xsl.
JBoss EL: Seam utiliza JBoss EL, la cual que proporciona una extensión al lenguaje de
expresión unificada estándar (EL) http://www.k-jahn.de/files/bibtex.xsl.
JBoss RichFaces: RichFaces es un framework de código abierto que añade capacidades
AJAX en aplicaciones JSF existentes sin recurrir a JavaScript (JBo13).
D. COMPARACIÓN ENTRE TECNOLOGÍAS PARA EL DESARROLLO WEB CON SERVIDOR DE APLICACIONES
Hoy en día existe una variedad de plataformas de desarrollo de aplicaciones empresariales. Dentro
de este grupo existen dos que se encuentran a la vanguardia y son las más populares: JavaEE y
NET.
Java es un lenguaje de programación orientado a objetos, que además incluye una máquina virtual,
y una serie de desarrollos básicos que pueden ser empleados por los programadores para simplificar
sus nuevos desarrollos; además permite la inclusión de porciones de código ejecutables en las
páginas que se pueden publicar en internet a través de WWW Fuente especificada no válida..
Desde la aparición de Java, Microsoft ha querido ser su competencia, para ello inicialmente firmo
algunos convenios con Sun Microsystems, para trabajar con Java igual que lo estaban haciendo
IBM y Oracle, pero en realidad trato de crear su versión propia de este lenguaje denominado J++, la
cual no era completamente compatible con la versión estándar Fuente especificada no válida..
.NET es una plataforma, o un conjunto de lenguajes de programación todos ellos orientados a
objetos donde se puede citar a C# .NET, C++ .NET y VisualBasic .NET; más el API de acceso a la
base de datos ADO.NET. Las herramientas para el desarrollo de aplicaciones empresariales en
internet, ASP.NET y el conjunto de facilidades para construir servicios web están integradas dentro
de un entorno completo llamado VisualStudio.NET Fuente especificada no válida..
A continuación se presenta un cuadro comparativo entre estas dos tecnologías (Mig04):
CARACTERISTICA JAVA EE .NET
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
30
Plataforma Multiplataforma Solo Windows
Lenguajes de Programación Java VB, C#, C++, C, entre otros.
Estrategia de construcción de
aplicaciones
Capas
Capas
Acceso a Datos JDBC ADO.Net
Máquina virtual JVM CLR
Tecnología de páginas web
dinámicas
JavaServerFaces (JSF),
JavaServerPages (JSP) ASP.Net
Interprete JRE CLR
Tabla 1: Comparación entre JavaEE y .NET (Mig04)
De acuerdo a este cuadro es visible que tanto una tecnología como la otra cubren con satisfacción
cada uno de los puntos necesarios en cuanto a la construcción de aplicaciones web; sin embargo
para el desarrollo de este trabajo de grado se eligió de JavaEE por diferentes motivos. Uno de ellos
es el lenguaje de programación, debido a que el equipo de trabajo posee un mayor conocimiento en
el lenguaje java en comparación con los lenguajes soportados por .NET; otro motivo es la
independencia del sistema operativo y el hecho de ser software libre ya que por su lado .NET está
ligado a plataformas Windows y se necesita de la compra de licencias para trabajar con este; y
como tercer motivo el uso del módulo de seguridad de CincoSecurity y el framework de Seam 2
http://www.k-jahn.de/files/bibtex.xsl los cuales fueron diseñados únicamente para funcionar con
JavaEE5.
3.2.2. SEGURIDAD DE LA INFORMACIÓN
A. DESCRIPCIÓN
La seguridad de los sistemas de información es una disciplina en continua evolución. La meta final
de la seguridad es permitir que una organización cumpla con todos sus objetivos de negocio o
misión, implementando sistemas que tengan un especial cuidado y consideración hacia los riesgos
relativos a las TIC de la organización, a sus socios comerciales, clientes, administración pública,
suministradores, entre otros (Jav08).
Los objetivos principales de la seguridad son los siguientes (Jav08):
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
31
Disponibilidad y accesibilidad del sistema y los datos: Es un requisito necesario para
garantizar que el sistema trabaje puntualmente, con prontitud y que no se deniegue el
servicio a ningún usuario autorizado (Jav08).
Integridad: Se encarga de garantizar que la información del sistema no haya sido alterada
por usuarios no autorizados, evitando la perdida de consistencia. Presenta dos facetas
(Jav08):
o Integridad de datos: Es la propiedad de que los datos no hayan sido alterados de
forma no autorizada, mientras se almacenan, procesan o transmiten (Jav08).
o Integridad del sistema: Es la cualidad que posee un sistema cuando realiza la
función deseada, de manera no deteriorada y libre de manipulación no autorizada
(Jav08).
Confidencialidad de datos y de la información del sistema: Es el requisito que intenta que
la información privada o secreta no se revele a individuos no autorizados. La protección de
la confidencialidad se aplica a los datos almacenados durante su procesamiento, mientras
que se transmiten y se encuentran en tránsito (Jav08).
Responsabilidad a nivel individual (Registro de auditoría): Es el requisito que permite que
puedan trazarse las acciones de una entidad de forma única. A menudo, es un requisito de la
política de la organización y soporta de forma directa el no repudio, la disuasión, el
aislamiento de fallos, la detección y la prevención de intrusiones, entre otros (Jav08).
Confiabilidad: Es la garantía que en los cuatro objetivos anteriores se han cumplido
adecuadamente. Es la base de la confianza en que las medidas de seguridad, tanto técnicas,
como operacionales, funcionan tal y como se idearon para proteger el sistema y la
información que procesa (Jav08).
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
32
4. DESARROLLO DEL TRABAJO
A continuación se explican las estrategias utilizadas para el cumplimiento de los objetivos
específicos de este trabajo de grado:
Contexto de la compañía tomada como caso de estudio: En esta sección se describe la
compañía tomada como caso de estudio y sus procesos de negocio.
Modelamiento de los procesos de negocio: En esta sección se desarrolla el modelamiento
de los procesos de ingreso, mantenimiento y salida de estibas por medio de la suite de BPM
(Ber12) Oracle 11g. Para esto se realizará el diseño As-Is y el diseño To-Be con el fin de
encontrar las debilidades y las posibles soluciones por medio de tecnologías de información
de la compañía tomada como caso de estudio.
Análisis y diseño de sistema de información para el ingreso, mantenimiento y salida de
estibas: Basados en las observaciones del modelamiento de los procesos de ingreso,
mantenimiento y salida de estibas se decidió realizar un sistema de información en
tecnología Java EE5 – SEAM2 por la experiencia que tienen los autores del presente trabajo
de grado en esta área. En esta sección se realizaron los procesos de levantamiento de
requerimientos, inventario de módulos y casos de uso y modelamiento de entidades.
Construcción y pruebas del sistema de información: Basados en el análisis y diseño del
sistema de información para el ingreso, mantenimiento y salida de estibas se realizó la
construcción y pruebas del sistema de información para el ingreso, mantenimiento y salida
de estibas SIBOX en tecnología Java EE5 – SEAM2.
Validación por parte del cliente: Basados en la construcción del sistema de información
para el ingreso, mantenimiento y salida de estibas SIBOX se realizó una validación por
parte del cliente de la compañía tomada como caso de estudio con el fin de garantizar la
satisfacción y validar si el sistema lograba mejorar la toma de decisiones.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
33
4.1. DESCRIPCIÓN DE LA COMPAÑÍA TOMADA COMO CASO DE ESTUDIO
La compañía tomada como caso de estudio “Distribuidora JJ” está ubicada en la carrera 5 #99-81,
Ibagué – Tolima. Esta empresa es la encargada de realizar el proceso de selección de productos
como cartón, acero, aluminio, cobre rojo, entre otros. Actualmente la organización brinda el proceso
de ingreso, mantenimiento y salida de estos productos a plantas de producción en diferentes
ciudades de Colombia.
4.2. MODELAMIENTO DE PROCESOS DE NEGOCIO
A continuación se muestra el diseño As-Is y To-Be (Jak11) de los procesos de ingreso,
mantenimiento y salida de estibas.
4.2.1. DISEÑO AS-IS DE LA EMPRESA TOMADA COMO CASO DE ESTUDIO
A. ORGANIZACIÓN
Los roles que están involucrados en el modelamiento de los procesos de ingreso, mantenimiento y
salida de estibas son:
Ilustración 4: Diseño As-Is: Organización y roles
B. DESCRIPCIÓN DE LOS ROLES
A continuación se explica detalladamente la funcionalidad de cada rol dentro de la organización:
ROL DESCRIPCIÓN
Gerente
Represente de la compañía de estibas y
encargado de tomar decisiones con respecto a
toda la organización.
Gerente
Administrador de estibas
Coordinador de estibas
Empleado de mantenimiento
Operario de estibas
Contador Relacionista
Despachador del remitente Conductor
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
34
Administrador de estibas
Encargado de tomar decisiones con respecto a
los procesos de negocio y empleados de la
compañía de estibas.
Contador Encargado de llevar un registro de salidas y
nóminas de la compañía de estibas.
Relacionista
Encargado de llevar un registro de los
despachadores de las empresas remitentes y
conductores.
Coordinador de estibas
Encargado de validar la información
suministrada por el empleado de
mantenimiento.
Operario de estibas Encargado de registrar las llegadas de los lotes
y estibas a la bodega de la compañía de estibas.
Despachador del remitente Encargado de enviar los lotes a la bodega de la
compañía de estibas.
Empleado de mantenimiento Encargado de realizar la selección de las cajas
de una estiba en la compañía de estibas.
Conductor
Encargado de transportar los lotes desde la
empresa remitente hasta la bodega de la
compañía de estibas.
Tabla 2: Diseño As-Is - Descripción de los roles
C. FLUJO DE SECUENCIA DE LOS PROCESOS DE NEGOCIO
Los procesos de ingreso, mantenimiento y salida de estibas son dependientes entre ellos, es decir, el
proceso de mantenimiento de estibas inicia cuando finaliza el proceso de ingreso de estibas y el
proceso de salida de estibas inicia cuando finaliza el proceso de mantenimiento de estibas.
D. CONCEPTOS RELEVANTES DE LOS PROCESOS DE NEGOCIO
Los conceptos relevantes de los procesos de ingreso, mantenimiento y salida de estibas son:
PROCESO CONCEPTO DEFINICIÓN
Ingreso de estibas Empresa remitente Empresa que realiza él envió
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
35
de un lote a la bodega de la
compañía de estibas. Esta
empresa puede ser sucursal,
distribuidora local o
distribuidora foránea.
Sucursal
Empresa que lleva el nombre
de la ciudad en la que se
encuentra y tiene dentro de sus
instalaciones una planta de
producción.
Distribuidora Foránea
Empresa que se encuentra
fuera de la ciudad de Bogotá y
no tiene dentro de sus
instalaciones una planta de
producción.
Distribuidora Local
Empresa que se encuentra
dentro de la ciudad de Bogotá
y no tiene dentro de sus
instalaciones una planta de
producción.
Lote
Vehículo por el cual se
transporta una cantidad de
estibas.
Estiba Hilera de 1 a 500 cajas.
Tarea de mantenimiento Creación de una tarea de
selección de cajas.
Stickers
Archivo de código de barras
que es generado con el fin de
ser condicional para el
cumplimiento total de la
selección de cajas.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
36
Mantenimiento de estibas
Cajas en buen estado
Cajas que no tienen defectos y
pueden servir como envase de
los productos.
Cajas en mal estado
Cajas que tienen defectos y no
sirven como envase de los
productos. Estos defectos son
llamados motivos del rechazo.
Paquete Hilera de 25 cajas de un color
específico.
Color del paquete
Color representativo del
paquete. Cada color representa
una serie de productos que
pueden ser llevados según su
dimensión y peso.
Motivo del rechazo
Motivo por el cual, el
empleado de mantenimiento
selecciono una caja en mal
estado. Estos motivos de
rechazo pueden ser mariposas
muertas dentro de la caja,
pisones, vidrios, excremento
de animales, desgaste, entre
otros.
Salida de estibas Planta de producción
Planta que contrata a la
compañía de estibas para
realizar la selección de las
cajas.
Tabla 3: Conceptos relevantes de los procesos de negocio
A continuación se explican detalladamente los procesos de ingreso, mantenimiento y salida de
estibas:
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
37
E. PROCESO DE INGRESO DE ESTIBAS
El resultado del diseño As-Is del proceso de ingreso de estibas es:
Ilustración 5: Diseño As-Is - Proceso de Ingreso de estibas
La especificación de las actividades que deben realizar los roles involucrados en este proceso son:
ROL ACTIVIDAD TIPO DE
ACTIVIDAD DESCRIPCIÓN
Despachador del
remitente
Realizar él envió del lote
a la bodega de la
compañía de estibas.
Tarea manual
El despachador del
remitente debe llamar
a la bodega de la
compañía de estibas
para informar sobre
él envió de un lote
con una cantidad de
estibas en una
determinada fecha.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
38
Esta actividad genera
un documento con la
información del
envió del lote
explicado en el
Anexo 1:
Documentos del
modelamiento de
procesos.
Conductor
Transporta las estibas
hasta la bodega de la
compañía de estibas.
Tarea manual
El conductor del lote
transporta las estibas
desde la empresa
remitente hasta la
bodega de la
compañía.
Operario de estibas
Registra la información
del envió del lote. Tarea de usuario
El operario de estibas
registra la
información del lote
y estibas.
Genera las tareas de
mantenimiento y stickers
por cada estiba
Tarea de servicio
El sistema genera las
tareas de
mantenimiento y
stickers por cada
estiba.
Crea un recibo con
información de llegada
del lote.
Tarea manual
El operario de estibas
le entrega un recibo
de la información de
llegada del lote.
Esta actividad genera
un documento con
información de
llegada del lote
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
39
explicado en el
Anexo 1:
Documentos del
modelamiento de
procesos.
Tabla 4: Diseño As-Is: Roles y Actividades del proceso de ingreso de estibas
Las posibles mejoras del proceso de ingreso de estibas están contenidas en la sección Debilidades
del sistema actual de la compañía de estibas de este documento.
F. PROCESO DE MANTENIMIENTO DE ESTIBAS
El resultado del diseño As-Is del proceso de mantenimiento de estibas es:
Ilustración 6: Diseño As-Is - Proceso de mantenimiento de estibas
La especificación de las actividades que deben realizar los roles involucrados en este proceso son:
ROL ACTIVIDAD TIPO DE
ACTIVIDAD DESCRIPCIÓN
Empleado de
mantenimiento
Realizar la selección
de cajas Tarea manual
El empleado de
mantenimiento debe
realizar la selección de
cada una de las cajas
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
40
de una estiba.
Registra la
información de la
tarea de
mantenimiento
Tarea manual
El empleado de
mantenimiento debe
registrar la
información de la
selección de las cajas.
Esta actividad genera
un documento
explicado en el Anexo
1: Documentos del
modelamiento de
procesos
Crea la tarea de
mantenimiento y la
asocia al empleado de
mantenimiento
Tarea de servicio
El sistema crea una
tarea de
mantenimiento y la
asocia al empleado
que la realizó.
Coordinador de
estibas
Valida la información
suministrada Tarea manual
El coordinador de
estibas valida la
información
suministrada por el
empleado de
mantenimiento.
Elimina la tarea de
mantenimiento. Tarea de servicio
El sistema elimina la
tarea de
mantenimiento si la
validación es
incorrecta. Una
validación es
incorrecta cuando el
empleado de
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
41
mantenimiento no
coloco validación
verídica.
Tabla 5: Diseño As-Is - Roles y Actividades del proceso de mantenimiento de estibas
Las posibles mejoras del proceso de mantenimiento de estibas están contenidas en la sección
Debilidades del sistema actual de la compañía de estibas de este documento.
G. PROCESO DE SALIDA DE ESTIBAS
El resultado del diseño As-Is del proceso de salida de estibas es:
Ilustración 7: Diseño As-Is - Proceso de salida de estibas
La especificación de las actividades que deben realizar los roles involucrados en este proceso son:
ROL ACTIVIDAD TIPO DE
ACTIVIDAD DESCRIPCIÓN
Operario de estibas
Recibe la solicitud de
una cantidad de
paquetes
Tarea manual
El operario de estibas
recibe una llamada de
un empleado de la
planta de producción y
anota la cantidad de
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
42
paquetes que solicitan.
Esta actividad genera
un documento
explicado en el Anexo
1: Documentos del
modelamiento de
procesos
Valida la existencia de
los paquetes Tarea manual
El operario de estibas
valida que exista la
cantidad de paquetes
solicitada por la planta
de producción.
Contador
Agrega información
de la solicitud al
sistema contable
Tarea manual
El contador debe
ingresar la
información entregada
por el operario de
estibas sobre la salida
de la bodega de una
cantidad de paquetes.
Tabla 6: Diseño As-Is - Roles y Actividades del proceso de salida de estibas
Las posibles mejoras del proceso de mantenimiento de estibas están contenidas en la sección
Debilidades del sistema actual de la compañía de estibas de este documento.
H. DEBILIDADES DEL SISTEMA ACTUAL DE LA COMPAÑÍA DE ESTIBAS
Las debilidades del sistema actual de la compañía tomada como caso de estudios son:
Con respecto a la accesibilidad e integridad:
- No existe un nombre de usuario y contraseña para cada usuario del sistema.
- Cualquier persona puede ingresar al sistema sin pertenecer a la compañía de estibas y se
encuentre dentro de la bodega.
Con respecto al registro de auditoría:
- No hay auditoría de datos por parte de los usuarios del sistema.
Con respecto a la mantenibilidad:
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
43
- En la actualidad, la compañía tiene 2 sistemas diferentes que no comparten recursos ni
información. El sistema de ingreso y salida de estibas y el sistema de mantenimiento de
estibas.
- Los sistemas no comparten información ni recursos por lo que es muy costoso mantenerlo.
- La lógica de negocio esta mezclada con las interfaces gráficas por lo que es muy costoso
mantenerlo.
- Toca realizar dos back-ups sobre cada una de las bases de datos por lo que es muy costosa
mantenerlas.
Con respecto a la portabilidad:
- Actualmente cuentan con un sistema de información creado en Microsoft Access, pero la
empresa no tiene licenciamiento de software.
Con respecto a la disponibilidad:
- Se deben utilizar los computadores de la compañía para ingresar al sistema.
Con respecto a la confidencialidad
- Las empresas remitentes no tienen acceso a la información suministrada por los
despachadores y obtenida por los operarios de estibas.
El análisis de las debilidades para darle una solución por medio de tecnologías de la información se
encuentra en la sección Análisis de las soluciones de las debilidades de este documento.
4.2.2. DISEÑO TO-BE DE LA EMPRESA TOMADA COMO CASO DE ESTUDIO
Basados en la sección Debilidades del sistema actual de la compañía de estibas se realizó el
siguiente diseño To-Be (Jak11) de la compañía tomada como caso de estudio:
A. ORGANIZACIÓN
Con respecto al diseño As-Is presentado en la sección Diseño As-Is de la empresa tomada como
caso de estudio se realizó la creación de un administrador de seguridad encargado de gestionar
todos los servicios de creación, mantenibilidad de funcionalidades, parámetros del sistema, entre
otros. Además se eliminó el rol de relacionista para permitir que cada despachador tuviera un
usuario dentro del sistema y perteneciera a una empresa remitente sin necesidad de un
intermediario. El administrador de estibas ahora es el encargado de gestionar los empleados de la
compañía de estibas y de registrar a los despachadores de las empresas remitentes, como también, a
los conductores. La organización quedo de la siguiente forma:
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
44
Ilustración 8: Diseño To-Be - Organización de los roles
B. DESCRIPCIÓN DE LOS ROLES
Se mantienen las funcionalidades de los empleados de la compañía de estibas, despachadores de las
empresas remitentes y conductores. El administrador de estibas es el encargado de gestionar la
creación de los usuarios dentro del sistema y el administrador de seguridad es el encargado de
gestionar la seguridad de la aplicación y de mantenerla con respecto a los cambios de los procesos
de negocio.
C. FLUJO DE SECUENCIA DE LOS PROCESOS DE NEGOCIO
El flujo de secuencia de los procesos de negocio no presento alteraciones con respecto al explicado
en el diseño As-Is.
D. CONCEPTOS RELEVANTES DE LOS PROCESO DE NEGOCIO
Los conceptos relevantes de los procesos de negocio no presentaron alteraciones con respecto al
explicado en el diseño As-Is.
E. PROCESO DE INGRESO DE ESTIBAS
El proceso de ingreso de estibas solo presento alteraciones con respecto al diagrama de
modelamiento de procesos de negocio con respecto al diseño As-Is, explicado a continuación:
Gerente
Administrador de estibas
Coordinador de estibas
Empleado de mantenimiento
Operario de estibas
Despachador del remitente
Conductor
Contador Administrador de seguridad
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
45
Ilustración 9: Diseño To-Be - Proceso de ingreso de estibas
La especificación de las actividades que deben realizar los roles involucrados en este proceso son:
ROL ACTIVIDAD TIPO DE
ACTIVIDAD DESCRIPCIÓN
Despachador del
remitente
Registra información
del envió del lote. Tarea de usuario
El despachador del
remitente genera un
nuevo envió de un lote
por medio del sistema
SIBOX.
Genera recibo de
envió del lote. Tarea de servicio
El sistema SIBOX
genera un documento
con información de
envió del lote
explicado en el Anexo
1: Documentos del
modelamiento de
procesos.
Cada empresa
remitente tiene
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
46
protegido sus
documentos generados
por medio de una
contraseña.
Conductor
Transporta las estibas
hasta la bodega de la
compañía de estibas
Tarea manual
El conductor
transporta por medio
del lote una cantidad
de estibas desde la
empresa remitente
hasta la bodega de la
compañía de estibas.
Operario de estibas
Actualiza información
de llegada del lote Tarea de usuario
El sistema SIBOX le
permite al operario de
estibas actualizar la
cantidad de estibas
que llegan a la bodega
y la cantidad de cajas
por estiba.
Genera cambios en el
registro de envió del
lote.
Tarea de servicio
El sistema SIBOX
realiza la actualización
de la información
suministrada por el
despachador del
remitente y el operario
de estibas.
Crea una tarea de
mantenimiento y
genera stickers
Tarea de servicio
El sistema SIBOX
realiza la creación de
una tarea de
mantenimiento y
genera una cantidad
aleatoria de stickers
por cada estiba.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
47
Genera recibo de
llegada del lote. Tarea de servicio
El sistema SIBOX
genera un documento
con información de
llegada del lote
explicado en el Anexo
1: Documentos del
modelamiento de
procesos.
Los documentos de la
compañía de estibas
están protegidos con
una contraseña.
Tabla 7: Diseño To-Be: Roles y Actividades del proceso de ingreso de estibas
F. PROCESO DE MANTENIMIENTO DE ESTIBAS
El proceso de mantenimiento de estibas solo presento alteraciones con respecto al diagrama de
modelamiento de procesos de negocio con respecto al diseño As-Is, explicado a continuación:
Ilustración 10: Diseño To-Be - Proceso de mantenimiento de estibas
La especificación de las actividades que deben realizar los roles involucrados en este proceso son:
ROL ACTIVIDAD TIPO DE DESCRIPCIÓN
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
48
ACTIVIDAD
Empleado de
mantenimiento
Realiza la selección de
cajas Tarea manual
El empleado de
mantenimiento debe
seleccionar cada una
de las cajas de una
estiba.
Registra información
de la tarea de
mantenimiento.
Tarea de usuario
El sistema SIBOX
permite actualizar la
información de una
tarea de
mantenimiento por
parte de los empleados
de mantenimiento.
Coordinador de
estibas
Valida la información
suministrada Tarea de usuario
El sistema SIBOX le
permite al coordinador
validar la información
suministrada por el
empleado de
mantenimiento.
Actualiza la tarea de
mantenimiento en el
empleado de
mantenimiento.
Tarea de servicio
El sistema SIBOX
actualiza la
información
suministrada por el
empleado de
mantenimiento y le
permite obtener los
datos sobre la cantidad
de paquetes que ha
seleccionado durante
un rango de fechas.
Tabla 8: Diseño To-Be - Roles y Actividades del proceso de mantenimiento de estibas
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
49
G. PROCESO DE SALIDA DE ESTIBAS
El proceso de salida de estibas solo presento alteraciones con respecto al diagrama de modelamiento
de procesos de negocio con respecto al diseño As-Is, explicado a continuación:
Ilustración 11: Diseño To-Be - Proceso de salida de estibas
La especificación de las actividades que deben realizar los roles involucrados en este proceso son:
ROL ACTIVIDAD TIPO DE
ACTIVIDAD DESCRIPCIÓN
Operario de estibas
Recibe la solicitud de
cantidad de paquetes Tarea manual
El operario de estibas
recibe la solicitud de
la cantidad de
paquetes.
Registra la salida de la
cantidad de paquetes
de la bodega
Tarea de usuario
El sistema SIBOX
genera una salida de
paquetes de la bodega.
Valida existencia de
paquetes Tarea de servicio
El sistema SIBOX
valida la cantidad
solicitada versus la
cantidad existente.
Disminuye la cantidad
de paquetes de un
color de la bodega.
Tarea de servicio
El sistema SIBOX
disminuye la cantidad
de paquetes que
fueron solicitados por
la planta de
producción.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
50
Genera recibo de
salida de la bodega Tarea de servicio
El sistema SIBOX
genera un recibo con
información de la
salida de los paquetes
de la bodega.
Tabla 9: Diseño To-Be - Roles y Actividades del proceso de salida de estibas
H. ANÁLISIS DE LAS DEBILIDADES
Para cada una de las debilidades encontradas en la empresa en el diseño As-Is (Sección Debilidades
del sistema actual de la compañía de estibas) tomada como caso de estudio se realizó el siguiente
análisis:
DEBILIDAD SOLUCIÓN
Con respecto a la accesibilidad e integridad
No existe un nombre de usuario y contraseña
para cada usuario del sistema.
Se solucionará por medio del módulo de
seguridad CincoSecurity (Fra09), el cual
permite proteger los componentes UI de las
páginas, las páginas y los EJB por medio de un
usuario y contraseña.
Cualquier persona puede ingresar al sistema sin
pertenecer a la compañía de estibas y se
encuentre dentro de la bodega
Con respecto al registro de auditoría
No hay auditoría de datos por parte de los
usuarios del sistema.
Se solucionará por medio del módulo de
auditoría, el cual permite conocer qué tipo de
alteración fue realizada sobre la base de datos
por un usuario dentro del sistema.
Con respecto a la mantenibilidad
En la actualidad, la compañía tiene 2 sistemas
diferentes que no comparten recursos ni
información. El sistema de ingreso y salida de
estibas y el sistema de mantenimiento de
estibas.
El sistema de información para el ingreso,
mantenimiento y salida de estibas contendrá
dentro de sí mismo los procesos de ingreso,
mantenimiento y salida de estibas. Este sistema
de información está construido en tecnología
Java EE5 por lo que usa el meta patrón MVC
(Ian05); igualmente se hará uso de un solo
motor de base de datos: PostgreSQL (aunque la
Los sistemas no comparten información ni
recursos por lo que es muy costoso mantenerlo
La lógica de negocio esta mezclada con las
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
51
interfaces gráficas por lo que es muy costoso
mantenerlo.
misma tecnología no es dependiente del motor
de base de datos).
Toca realizar dos back-ups sobre cada una de
las bases de datos por lo que es muy costosa
mantenerlas.
Con respecto a la portabilidad
Actualmente cuentan con un sistema de
información creado en Microsoft Access, pero
la empresa no tiene licenciamiento de software.
El sistema de información para el ingreso,
mantenimiento y salida de estibas esta realizado
en tecnología JAVA (código libre).
Con respecto a la disponibilidad
Se deben utilizar los computadores de la
compañía para ingresar al sistema.
El sistema de información para el ingreso,
mantenimiento y salida de estibas puede ser
desplegado en un servidor de aplicaciones
contenido en un servidor en la nube y accedido
desde cualquier equipo conectado a internet.
Con respecto a la confidencialidad
Las empresas remitentes no tienen acceso a la
información suministrada por los despachadores
y obtenida por los operarios de estibas.
El sistema de información para el ingreso,
mantenimiento y salida de estibas tiene dentro
de sus roles finos un despachador del remitente,
el cual podrá acceder al sistema y generar el
envío de un lote a la compañía de estibas. Cada
una de las empresas remitentes generará un
archivo PDF con información del envío
protegida con una contraseña única para cada
una de ellas.
Tabla 10: Análisis de las soluciones a las debilidades
4.2.3. RESULTADOS DEL MODELAMIENTO DE LOS PROCESOS DE NEGOCIO
Basados en el análisis de las soluciones de las debilidades del diseño As-Is de la compañía tomada
como caso de estudio se realizaron las siguientes observaciones con respecto a que área de la
compañía estaba involucrada:
OBSERVACIÓN INVOLUCRA A
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
52
Controlar el acceso a los usuarios del sistema Seguridad
Controlar el acceso a las funcionalidades del
sistema a los usuarios que pertenezcan a un
determinado perfil de seguridad
Seguridad
Controlar las modificaciones que realizan los
usuarios a los datos del sistema de información. Auditoría
Llevar un registro de los lotes y estibas
provenientes de las empresas remitentes a la
compañía de estibas
Gestión de lotes y estibas
Llevar un registro de la selección de cajas de los
empleados de mantenimiento de la compañía de
estibas
Gestión de mantenimiento de estibas
Llevar un control de la selección de las cajas
por medio de stickers Gestión de mantenimiento de estibas
Validar la información suministrada por el
empleado de mantenimiento Gestión de mantenimiento de estibas
Llevar un registro de la salida de paquetes de la
bodega de la compañía de estibas a la planta de
producción
Gestión de salidas de paquetes de la bodega
Generar reportes en PDF Generación de reportes
Tabla 11: Resultados del modelamiento de los procesos de negocio
Basados en las anteriores observaciones se realizaron varias entrevistas con el gerente de la empresa
tomada como caso de estudio (Sr. Joaquín Bautista Torres) (Anexo 13: Entrevistas realizadas al
cliente). En estas entrevistas se dio como solución a las debilidades encontradas, la creación de un
sistema de información encargado de realizar los procesos de ingreso, mantenimiento y salida de
estibas con nombre SIBOX en tecnología JavaEE5- SEAM2 (esta decisión se tomó por la
experiencia que tiene los autores de este presente proyecto de grado en el lenguaje JAVA y el
framework SEAM). Los procesos de análisis, diseño, construcción y pruebas son explicados en las
siguientes secciones.
4.3. ANÁLISIS Y DISEÑO DEL SISTEMA DE INFORMACIÓN: SIBOX
En esta sección se describen:
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
53
Los módulos del sistema de información para el ingreso, mantenimiento y salida de
estibas.
Los requerimientos más relevantes del sistema de información para el ingreso,
mantenimiento y salida de estibas.
Los casos de uso más relevantes por módulo del sistema de información para el ingreso,
mantenimiento y salida de estibas.
La descripción del diagrama de modelamiento de entidades del sistema de información
para el ingreso, mantenimiento y salida de estibas.
Los perfiles de seguridad del sistema de información para el ingreso, mantenimiento y
salida de estibas.
La descripción de la arquitectura del sistema de información para el ingreso,
mantenimiento y salida de estibas.
4.3.1. MÓDULOS
Los módulos del sistema de información para el ingreso, mantenimiento y salida de estiba son:
MÓDULO DESCRIPCIÓN
Módulo de seguridad
El módulo de seguridad presta todos los
servicios a los usuarios que controlan los
permisos de ingreso a la aplicación y donde se
definen a que opciones del sistema tiene
acceso un determinado usuario de acuerdo con
su perfil de seguridad.
Módulo de auditoría
El módulo de auditoria es el encargado de
registrar las actividades realizadas por los
usuarios sobre la base de datos cuando se
altera la información que contiene.
Módulo de gestión de estibas
El módulo de gestión de estibas está dividido
en tres sub módulos: ingreso de estibas,
mantenimiento de estibas y salida de estibas. El
sub módulo de ingreso de estibas se ocupa de
realizar el proceso de envió y llegada de lotes y
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
54
estibas a la bodega de la compañía, generar los
recibos necesarios para ser entregados a los
conductores que realizan el transporte de la
mercancía y crear los códigos de barra para la
verificación de la tarea de mantenimiento.
El sub módulo de mantenimiento de estibas se
ocupa del registro de la selección de cajas en
buen estado, mal estado y de reciclaje, y el sub
módulo de salida de estibas se ocupa del envió
de los paquetes de la compañía de estibas a la
planta de producción.
Módulo de reportes
El módulo de reportes está dividido en dos sub
módulos: generación de reportes oportunos y
generación de reportes en un tiempo
específico. El sub módulo de generación de
reportes oportunos le permite ver al usuario
los reportes de inventario e ingreso de estibas,
selección de cajas por empleado de
mantenimiento y rechazos de las cajas por
empresa remitente con tan solo un click en la
aplicación. Mientras que el sub módulo de
generación de reportes en un tiempo específico
genera automáticamente un reporte de
inventario diario enviado al correo electrónico
de los interesados. Estos archivos son
almacenados en un directorio web.
Tabla 12: Módulos del sistema de información para el ingreso, mantenimiento y salida de estibas
4.3.2. REQUERIMIENTOS DEL SISTEMA DE INFORMACIÓN POR MÓDULOS
Los requerimientos más relevantes del sistema de información de cada uno de los módulos son los
siguientes:
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
55
MÓDULO REQUERIMIENTOS DESCRIPCIÓN
Módulo de seguridad
R01
El sistema debe permitir que un usuario inicie
sesión proporcionando el nombre de usuario y
contraseña.
R05 El sistema debe permitir crear, recuperar,
actualizar y eliminar perfiles de seguridad.
R13 El sistema debe permitir asociar usuarios del
sistema con perfiles de seguridad
Módulo de auditoría R37 El sistema debe permitir almacenar las acciones
que realizan los usuarios dentro del sistema.
Módulo de gestión de
estibas
R15 El sistema debe permitir crear, recuperar,
actualizar y eliminar información de un lote.
R16
El sistema debe permitir crear, recuperar,
actualizar y eliminar información de una estiba
de un lote.
R23 El sistema debe permitir generar un archivo con
los códigos de barras de la estiba.
R27 El sistema debe permitir generar un archivo
PDF con la información del envió del lote.
R29 El sistema debe permitir generar un reporte
PDF de los lotes enviados por una compañía.
R30 El sistema debe permitir generar un archivo
PDF con la información de la entrega del lote
R32
El sistema debe permitir crear, recuperar,
actualizar y eliminar tareas de mantenimiento
disponibles
R36 El sistema debe permitir generar una remisión
de venta
Módulo de reportes R39
El sistema debe permitir obtener un reporte de
ingreso de estibas diario.
R40 El sistema debe permitir obtener un reporte de
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
56
selección de cajas.
R41 El sistema debe permitir generar y obtener un
reporte de inventario diario.
R42
El sistema debe permitir generar y obtener un
reporte de rechazos de cajas por empresa
remitente
R43
El sistema debe permitir generar y enviar por
correo electrónico el reporte de inventario
diario todos los días a las 10 pm (hora
colombiana).
Tabla 13: Requerimientos más relevantes del sistema de información para el ingreso, mantenimiento y salida de
estibas
Para ver todos los requerimientos del sistema de información para el ingreso, mantenimiento y
salida de estibas ir al Anexo 2: Requerimientos del sistema.
4.3.3. CASOS DE USO DEL SISTEMA DE INFORMACIÓN POR MÓDULOS
Los casos de uso más relevantes del sistema de información para el ingreso, mantenimiento y salida
de estibas son:
MÓDULO CASO DE USO DESCRIPCIÓN
Módulo de seguridad
CU01 Gestionar parámetros del
sistema
CU04 Gestionar perfiles de seguridad
CU05 Gestionar usuarios del sistema
CU09 Ingresar al sistema
CU10 Salir del sistema
Módulo de auditoría CU13 Consultar acciones de usuarios
Módulo de gestión de estibas
CU23 Generar código de barras con
información de la estiba
CU26
Generar recibos de
información de lote enviado a
la empresa
CU29 Generar recibo de información
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
57
del lote entregado a la empresa
CU30 Generar reporte de lotes
enviados
CU32
Gestionar tareas de
mantenimiento disponibles en
el sistema
CU37 Generar remisión de venta
Módulo de reportes
CU38 Generar reporte diario de
ingreso de estibas
CU39 Generar reporte de selección
de cajas
CU40 Generar reporte de rechazos de
cajas por empresa remitente
CU41 Generar reporte de inventario
diario
Tabla 14: Casos de uso relevantes del sistema de información para el ingreso, mantenimiento y salida de estibas
Para ver todos los casos de uso del sistema de información para el ingreso, mantenimiento y salida
de estibas ir al Anexo 3: Inventario de módulos y casos de uso.
Para ver el diagrama de casos de uso por módulos del sistema de información para el ingreso,
mantenimiento y salida de estibas ir al Anexo 4: Diagrama de casos de uso.
4.3.4. PERFILES DE SEGURIDAD
Los perfiles de seguridad del sistema de información para el ingreso, mantenimiento y salida de
estibas son:
PERFIL DE SEGURIDAD DESCRIPCIÓN
Despachador del remitente
El objetivo de este perfil de seguridad es
realizar el registro de un lote en el sistema de
información.
Operario de estibas
El objetivo de este perfil de seguridad es
actualizar el registro de un lote en el sistema de
información y la generación de las estibas.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
58
Empleado de mantenimiento
El objetivo de este perfil de seguridad es
actualizar el registro de una tarea de
mantenimiento.
Administrador de estibas
El objetivo de este perfil de seguridad es crear,
actualizar y obtener los empleados de la
compañía de estibas. Además de generar los
reportes.
Coordinador de estibas
El objetivo de este perfil de seguridad es
actualizar la información de las tareas de
mantenimiento.
Administrador de seguridad
El objetivo de este perfil de seguridad es
encargarse de la creación de perfiles, usuarios,
casos de uso, servicios, parámetros, entre otros.
Tabla 15: Perfiles de seguridad del sistema de información para el ingreso, mantenimiento y salida de estibas
4.3.5. MODELAMIENTO DE ENTIDADES
Para cumplir con los casos de uso y requerimientos del “sistema de información para el ingreso,
mantenimiento y salida de estibas: SIBOX”, se crearon las siguientes entidades:
Empleado: Esta entidad representa un usuario dentro del sistema. Un empleado tiene un
nombre de usuario, contraseña, identificación, email, nombre, teléfono y estado (si está
activo o no dentro de la compañía).
CoordinadorEstibas: Esta entidad representa un usuario coordinador de estibas dentro del
sistema.
AdministradorDeEstibas: Esta entidad representa un usuario administrador de estibas
dentro del sistema.
DespachadorRemitente: Esta entidad representa un usuario despachador de una empresa
remitente dentro del sistema.
EmpresaRemitente: Esta entidad representa una empresa remitente que realiza los envíos a
la compañía de estibas. Una empresa remitente tiene un identificador, un NIT, una ciudad,
una procedencia (sucursal, distribuidora foránea o distribuidora local), un nombre, un
estado (si actualmente realiza o no envíos de lotes a la compañía de estibas) y una
contraseña para los archivos PDF generados en el sistema (ver Anexo 1: Documentos del
modelamiento de procesos).
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
59
OperarioEstibas: Esta entidad representa un usuario operario de estibas dentro del sistema.
EmpleadoMantenimientoEstibas: Esta entidad representa un usuario empleado de
mantenimiento dentro del sistema.
Lote: Esta entidad representa un lote dentro del sistema. Un lote tiene una cantidad de cajas
y estibas de madera enviadas desde la empresa remitente y su fecha de envío, una cantidad
de cajas y estibas de madera recibidas en la compañía de estibas y su fecha de recibido y
una cantidad de cajas faltantes (cajas enviadas – cajas recibidas). Además almacena un
saldo (cantidad de cajas en una estiba), un estado (si el lote fue entregado o no en la
compañía de estibas) y el nombre de dos archivos generados (ver Anexo 1: Documentos del
modelamiento de procesos)
Conductor: Esta entidad representa un conductor dentro del sistema. Un conductor tiene un
identificador y un nombre.
Vehículo: Esta entidad representa un vehículo dentro del sistema. Un vehículo tiene un
identificador y una placa.
Estiba: Esta entidad representa una estiba dentro del sistema. Una estiba tiene un atributo
unidades (cantidad de cajas) y el nombre del archivo generado (ver Anexo 1: Documentos
del modelamiento de procesos).
Sticker: Esta entidad representa un Sticker de una estiba dentro del sistema. Un Sticker
tiene un código generado y un código ingresado por el usuario (utilizado para asegurar la
revisión de todas las cajas) (ver Anexo 1: Documentos del modelamiento de procesos).
Color: Esta entidad representa un color de un paquete y/o una estiba dentro del sistema. Un
color tiene un tipo (azul, aguamarina, rosado, entre otros), un estado (si actualmente se
realizan solicitudes de ese color) y una cantidad de paquetes de ese color dentro de la
bodega.
TareaMantenimiento: Esta entidad representa una tarea de mantenimiento dentro del
sistema. Una tarea de mantenimiento tiene un desgaste, una fecha, y un booleano que
determina si fue o no revisado por el coordinador de estibas.
Rechazo: Esta entidad representa un rechazo de una tarea de mantenimiento. Un rechazo
tiene el tipo de rechazo y la cantidad de cajas que fueron seleccionadas en ese estado.
MotivoRechazo: Esta entidad representa un tipo de rechazo dentro del sistema. Un motivo
de rechazo tiene un identificador, un tipo (ganchos, mariposas muertas, excrementos de
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
60
aves, excrementos de roedores, entre otros) y un estado (si actualmente se toma en cuenta
ese tipo de rechazo).
Paquete: Esta entidad representa un paquete dentro del sistema. Un paquete tiene una
cantidad (total de paquetes) y una cantidad de cajas (cantidad de cajas por paquete).
Auditoría: Esta entidad representa un registro de la auditoría de acciones de usuarios dentro
del sistema. Un registro de auditoría tiene una operación (inserción, eliminación,
actualización), un nombre de usuario (usuario que realizó la operación), una entidad
(entidad a la cual se le realizó la operación), una fecha (fecha en la cual se realizó la
operación) y los cambios (método toString() de la entidad que fue alterada).
Salida: Esta entidad representa una salida de la bodega dentro del sistema. Una salida tiene
un identificador, una fecha y un estado (si se realizó o no la salida de la bodega).
InventarioSalida: Esta entidad representa la salida por paquete de una solicitud hacia la
planta de producción.
InventarioEntrada: Esta entidad representa la entrada por paquete de una empresa
remitente.
El diagrama de entidades completo se encuentra en el Anexo 8: Diagrama de entidades.
4.3.6. ARQUITECTURA DE LA APLICACIÓN
A. DESCRIPCIÓN
Se define la arquitectura de software como una serie de patrones que establecen la interacción, el
funcionamiento y la estructura de los diferentes componentes del software
SIBOX fue diseñado y construido siguiendo el modelo de arquitectura multi-nivel haciendo uso de
JSF, EJB3.0 y Seam2. Esta arquitectura hace uso de cuatro capas: la capa de presentación, la capa
de aplicación, la capa de servicios y la capa de persistencia. En la capa de presentación se despliega
el HTML desde el navegador del cliente, el cual invoca servicios a la capa de aplicación (servidor
web) por medio de Servlets JSF y Servlets de Seam. Este servidor web invoca a los EJBs de seam y
al Entity Manager (servidor de componentes) de la capa de servicios. La capa de dominio (entidades
de negocios) está expuesta tanto a los elementos de la capa de aplicación como a los elementos de la
capa de servicios, y la base de datos relacional estiba está en la capa de persistencia Fuente
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
61
especificada no válida.. A continuación se muestra una grafico de la arquitectura de la aplicación
SIBOX:
Ilustración 12 Fuente especificada no válida.: Arquitectura de una aplicación JavaEE5
Basados en esta arquitectura se diseñaron los diagramas de componentes y despliegue:
B. DIAGRAMA DE COMPONENTES
A continuación se muestra un diagrama de los diferentes componentes que conforman e interactúan
dentro del sistema de información para el ingreso, mantenimiento y salida de estibas SIBOX:
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
62
Ilustración 13: Diagrama de componentes – SIBOX
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
63
C. DIAGRAMA DE DESPLIEGUE
A continuación se muestra el diagrama de despliegue donde se modela los diferentes componentes
de hardware y software que hacen parte del sistema.
Ilustración 14: Diagrama de despliegue – SIBOX
4.4. CONSTRUCCIÓN Y PRUEBAS DEL SISTEMA DE INFORMACIÓN
En esta sección se describe el proceso de construcción y pruebas del sistema de información para el
ingreso, mantenimiento y salida de estibas (SIBOX).
4.4.1. GENERACIÓN INICIAL DE LA APLICACIÓN MEDIANTE EL USO DE LOS GENERADORES SEAM Y
TAYLOR
Con la herramienta Taylor http://www.k-jahn.de/files/bibtex.xsl se realizó el modelamiento UML y
la generación de las entidades JPA. Este framework facilita la creación de aplicaciones JEE
mediante un conjunto de plugins para el IDE Eclipse simplificando el modelo UML y la generación
de código Java como entidades EJB3 y EJBs de sesión (Mar11)http://www.k-
jahn.de/files/bibtex.xsl.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
64
Para generar el código JPA del modelo de entidades en Taylor se hizo uso de la tarea Generate – By
Project Suffix – JPA. Esta tarea crea un proyecto con todas las entidades creadas en archivos con
extensión .java y con las anotaciones definidas en la misma herramienta.
El proceso realizado para la generación y modificaciones de las entidades con el plugin de eclipse
Taylor en el proyecto de grado fue el siguiente:
Creación del diagrama UML por medio de la herramienta Taylor.
Generación JPA de las entidades del diagrama UML por medio de la tarea Generate – By
Project Suffix – JPA).
Modificación de las anotaciones de las entidades generadas por la herramienta Taylor
(especialmente las entidades que involucran herencia).
Después de realizar la generación y las modificaciones de las entidades por medio de la herramienta
Taylor, se hizo de uso del generador de CRUDs: Seam2 http://www.k-jahn.de/files/bibtex.xsl por
medio de la tarea seam-gen, generate-ui y deploy http://www.k-jahn.de/files/bibtex.xsl.
A continuación se muestran los resultados obtenidos después de realizar las tareas del generador
SEAM:
Ilustración 15: Generación de las páginas CRUD por medio de la tarea generate-ui de la herramienta SEAM
(Mar10)
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
65
4.4.2. MÓDULO DE SEGURIDAD BASADO EN ROLES FINOS Y PERFILES
A. OBJETIVO
El módulo de seguridad en roles finos y perfiles está basado en el modelo de seguridad RBAC
(Role-based access control) que introduce el concepto de roles para controlar el acceso a los
recursos informáticos. En una aplicación Java EE5, el modelo RBAC es aplicado para controlar la
autenticación y autorización por roles. CincoSecurity es un módulo de seguridad que propone el uso
de roles finos para crear un permiso sobre un caso de uso, un servicio del caso de uso, un método
EJB y las páginas JSF. Este módulo también involucra la definición de perfil de seguridad como un
conjunto de roles finos que invocan un conjunto de servicios de múltiples caso de uso (Mar111).
Por lo mencionado en el anterior párrafo, este módulo permite gestionar los módulos, casos de uso,
servicios y parámetros del sistema, como también, permite cambiar la contraseña de un usuario
autenticado y generar reportes en una página web de los usuarios versus los perfiles de seguridad.
B. DESCRIPCIÓN
Este proyecto de grado hizo uso del módulo de seguridad de código abierto: CincoSecurity
(Mar111). Los beneficios que se lograron con la inclusión de este módulo fueron:
Protección de los EJBs por roles finos.
Protección del acceso a las páginas JSF por roles finos.
Protección a los elementos de las páginas JSF por roles finos.
Generación dinámica de un menú para un perfil de seguridad específico.
Los casos de uso que proporciona este módulo son:
Gestión de perfiles de seguridad: Este caso de uso permite definir un perfil de seguridad
como un conjunto de roles finos que invocan servicios de varios casos de uso (Fra09)
Gestión de usuarios: Este caso de uso permite crear, seleccionar, eliminar y asociar un
usuario a uno o varios perfiles de seguridad (Fra09) (Lo cual permite garantizar la
accesibilidad e integridad del sistema y los datos y la confidencialidad).
Gestión de módulos: Este caso de uso permite crear, seleccionar, eliminar y actualizar un
módulo (conjunto de casos de uso relacionados) del sistema de información (Fra09).
Gestión de casos de uso: Este caso de uso permite crear, seleccionar, eliminar y actualizar
un caso de uso (funcionalidad) del sistema de información (Fra09).
Gestión de servicios: Este caso de uso permite crear, seleccionar, eliminar y actualizar
servicios (métodos o acciones de los EJBs de sesión) del sistema de información (Fra09).
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
66
Gestión de menús: Este caso de uso permite crear, seleccionar, eliminar y actualizar
elementos de menú (asociados a casos de uso y módulos) al sistema de información (Fra09).
Gestión de parámetros: Este caso de uso permite crear, seleccionar, eliminar y actualizar
parámetros (variables definidas por el usuario que hacen parte de la lógica de negocio) del
sistema de información (Fra09).
Generación de reportes de perfiles de seguridad versus usuarios: Este caso de uso
permite generar un reporte con la información de cada usuario por perfil de seguridad en
una página JSF (Fra09).
C. PROCEDIMIENTO
A continuación se menciona el procedimiento realizado para la inclusión y uso del módulo
CincoSecurity en el sistema de información para el ingreso, mantenimiento y salida de estibas (ver
procedimiento en el Anexo 5: Manual del usuario):
Creación del módulo de seguridad: se realizó la generación del proyecto de
CincoSecurity: Skeleton y se añadieron los archivos y carpetas necesarias a la aplicación
SIBOX (Mar111).
Registro de los módulos del sistema de información para el ingreso, mantenimiento y
salida de estibas: Se realizó el registro de los módulos del sistema de información para el
ingreso, mantenimiento y salida de estibas (ver módulos en la sección Módulos de este
documento).
Registro de los casos de uso del sistema de información para el ingreso, mantenimiento
y salida de estibas: Se realizó el registro de los casos de uso del sistema de información
para el ingreso, mantenimiento y salida de estibas (ver casos de uso en el Anexo 3:
Inventario de módulos y casos de uso).
Registro de los servicios de los casos de uso del sistema de información para el ingreso,
mantenimiento y salida de estibas Se realizó el registro de los servicios de los casos de
uso del sistema de información para el ingreso, mantenimiento y salida de estibas.
Registro de los menús y sub menús del sistema de información para el ingreso,
mantenimiento y salida de estibas Se realizó la creación de los menús y sub menús del
sistema de información para el ingreso, mantenimiento y salida de estibas.
Re-direccionamiento de las acciones en el descriptor pages.xml: Se describió la
navegabilidad y finalización de las conversaciones activas por medio del descriptor XML
según las acciones establecidas para cada caso de uso. Los contextos en seam facilitan al
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
67
desarrollador controlar (inicialización y finalización de recursos implicados) el ciclo de
vida de la información (componentes) implicada en la realización de una tarea. Los
contextos tradicionales eran los de aplicación, sesión y solicitud. JBoss-Seam introduce el
contexto de conversación para representar el concepto de tarea (actividad que realiza el
usuario en el sistema durante un caso de uso) http://www.k-jahn.de/files/bibtex.xsl. Al no
finalizar una conversación podemos realizar una sobrecarga al sistema. Para finalizar esta
conversación debemos agregar en el descriptor pages.xml la siguiente instrucción:
<navigation from-action="LoteList">
<redirect view-id="/negocio/lote/ListLote.xhtml" />
<end-conversation before-redirect="true"/>
</navigation>
Creación de las páginas JSF para los casos de uso: Se realizó la creación de las páginas
JSF que componen cada caso de uso.
Protección de acceso a las páginas JSF: Se realizó la protección de acceso a las páginas
JSF por medio de un descriptor XML. En el descriptor XML vemos la usabilidad del
framework de CincoSecurity al añadir la seguridad a la página JSF por medio de un
servicio del caso de uso. Un ejemplo de este descriptor XML es el siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://jboss.com/products/seam/pages"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.com/products/seam/pages
http://jboss.com/products/seam/pages-2.2.xsd">
<restrict>#{s:hasRole('AdministradorList_create')}</restrict>
</page>
Protección de los EJBs: Se realizó la protección de los EJBs por medio de anotaciones. En
el siguiente ejemplo estamos dando permiso de hacer uso del EJB
“DespachadorRemitenteEJB” al usuario que posee la autorización sobre el servicio
DespachadorList, como se muestra a continuación:
@Restrict("#{s:hasRole('DespachadorList')}")
@Stateful
@Name("despachadorRemitenteEJB")
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
68
public class DespachadorRemitenteEJB implements
Serializable,DespachadorRemitenteLocal{
D. CON RESPECTO A LA SEGURIDAD DE LA INFORMACIÓN
A continuación se explica cómo se logró garantizar los objetivos de la seguridad de la información
en el aplicativo SIBOX (Sistema de información para el ingreso, mantenimiento y salida de estibas)
por medio del módulo de seguridad CincoSecurity (Fra09):
PROBLEMA DE LA
COMPAÑÍA TOMADA
COMO CASO DE
ESTUDIO
OBJETIVO DE LA
SEGURIDAD ¿CÓMO LO CUMPLE?
- No existe un nombre
de usuario y
contraseña para cada
usuario del sistema.
- Cualquier persona
puede ingresar al
sistema sin pertenecer
a la compañía de
estibas y se encuentre
dentro de la bodega.
- Las empresas
remitentes no tienen
acceso a la
información
suministrada por los
despachadores y
obtenida por los
operarios de estibas.
Disponibilidad y accesibilidad
del sistema y los datos
El módulo de seguridad de
CincoSecurity (Fra09) permite
proteger los EJB, las páginas
JSF y los componentes UI de
cada página, con el fin de
garantizar que solo los usuarios
autorizados (por medio de un
login) puedan ingresar a los
módulos correspondientes del
sistema (módulo de auditoría,
módulo de gestión de estibas,
módulo de seguridad y módulo
de reportes), como también, a
los datos que estos se
muestren.
- No existe un nombre Integridad El módulo de seguridad de
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
69
de usuario y
contraseña para cada
usuario del sistema.
- Cualquier persona
puede ingresar al
sistema sin pertenecer
a la compañía de
estibas y se encuentre
dentro de la bodega.
- Las empresas
remitentes no tienen
acceso a la
información
suministrada por los
despachadores y
obtenida por los
operarios de estibas.
CincoSecurity (Fra09) permite
proteger los EJB, las páginas
JSF y los componentes UI de
cada página, con el fin de
garantizar que solo los usuarios
autorizados (por medio de un
login) puedan ingresar a los
módulos correspondientes del
sistema (módulo de auditoría,
módulo de gestión de estibas,
módulo de seguridad y módulo
de reportes), como también, a
los datos que estos se
muestren.
- No existe un nombre
de usuario y
contraseña para cada
usuario del sistema.
- Cualquier persona
puede ingresar al
sistema sin pertenecer
a la compañía de
estibas y se encuentre
dentro de la bodega.
- Las empresas
remitentes no tienen
acceso a la
información
Confidencialidad de los datos y
de la información del sistema
El módulo de seguridad de
CincoSecurity (Fra09) permite
proteger los EJB, las páginas
JSF y los componentes UI de
cada página, con el fin de
garantizar que solo los usuarios
autorizados (por medio de un
login) puedan ingresar a los
módulos correspondientes del
sistema (módulo de auditoría,
módulo de gestión de estibas,
módulo de seguridad y módulo
de reportes), como también, a
los datos que estos se
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
70
suministrada por los
despachadores y
obtenida por los
operarios de estibas.
muestren.
- No hay auditoría de
datos por parte de los
usuarios del sistema.
Registro de auditoria
El aplicativo SIBOX tiene un
módulo de auditoría (realizado
por medio de métodos callback
(Ant10)) para llevar el registro
de las alteraciones realizadas
por los usuarios sobre la base
de datos.
Tabla 16: Módulo de seguridad CincoSecurity con respecto a la seguridad de la información
4.4.3. MÓDULO DE AUDITORÍA MEDIANTE MÉTODOS CALLBACK
A. OBJETIVO
El objetivo de este módulo es llevar un registro de las operaciones realizadas sobre la base de datos
por parte de los usuarios. Se realiza un registro antes y después de una operación por medio de los
métodos callback (Ant10).
B. DESCRIPCIÓN
Para satisfacer con el objetivo de este módulo fue necesario hacer uso de métodos callback y los
EntityListeners explicados a continuación:
Métodos callback: Cada operación de inserción, modificación y eliminación que se realiza
sobre una entidad tiene un evento pre y un evento post. Estos eventos pueden ser
interceptados por el manejador de entidades para invocar un método de negocio (Ant10).
Estos métodos de negocio hacen uso de las siguientes anotaciones (Ant10):
MÉTODO CALLBACK DESCRIPCIÓN
@PrePersist Este método callback se invoca antes de llamar
el método persist del manejador de entidades.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
71
@PostPersist
Este método callback se invoca después de
llamar el método persist del manejador de
entidades.
@PreUpdate Este método callback se invoca antes de llamar
el método merge del manejador de entidades.
@PostUpdate
Este método callback se invoca después de
llamar el método merge del manejador de
entidades.
@PreRemove Este método callback se invoca antes de llamar
el método remove del manejador de entidades.
@PostRemove
Este método callback se invoca después de
llamar el método remove del manejador de
entidades.
@PostLoad Este método callback se invoca antes de llamar
el método find del manejador de entidades.
Tabla 17: Métodos callback
EntityListeners: Un Entitylistener es una clase POJO que contiene la lógica de negocio
para los métodos callback de una o varias entidades. Para hacer el llamado de un listener se
hace uso de la anotación @EntityListeners (Ant10).
C. PROCEDIMIENTO
Los pasos realizados para satisfacer el objetivo propuesto de este módulo fueron los siguientes:
Creación de la entidad Auditoría
Se realizó la creación de una entidad Auditoría que almacena la siguiente información:
ATRIBUTO DESCRIPCIÓN
Id Identificador único del registro de la auditoría.
Operación Operación que se realiza sobre la base de datos
(UPDATE / DELETE).
Nombre del usuario Nombre del login del usuario dentro del
sistema.
Entidad Entidad sobre la cual se realiza la operación.
Fecha Fecha en la cual se realiza la operación.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
72
Cambios Llamada al método publico toString de la
entidad.
Nombre del empleado Nombre del empleado que realiza la operación.
Tabla 18: Atributos de la entidad auditoría
Para ver el diagrama de entidades ir al Anexo 5: Diagrama de entidades.
Creación de una clase EntityListener encargada de implementar los métodos callback
Dentro del proyecto se realizó la creación de un EntityListener llamado AuditoriaListener que
contiene los métodos callback: @PreUpdate, @PostUpdate y @PreRemove. Cada uno de estos
métodos obtiene programáticamente el manejador de entidades y el nombre de usuario por medio de
las variables de contexto de sesión. Al realizar la invocación del método Update del EntityManager
se invoca indirectamente el método callback del EntityListener, como se muestra a continuación:
public class AuditoriaListener{
private EntityManager em;
private String nombreUsuario = null;
@PreUpdate
public void vaRealizarUpdate(Object entity){
em = getEntityManager();
if(entity instanceof AdministradorDeEstibas){
AdministradorDeEstibas obj =
Llamado del EntityListener dentro de las entidades JPA
Cada entidad que fue auditada uso la anotación @EntityListeners como se muestra a continuación:
@Entity
@EntityListeners({AuditoriaListener.class})
public class Color implements Serializable, Cloneable {
4.4.4. MÓDULO DE GESTIÓN DE ESTIBAS
A. OBJETIVO
El objetivo de este módulo es realizar el registro de los lotes y las estibas, la generación de los
códigos de barras, la actualización y revisión de las tareas de mantenimiento, el registro de las
salidas y la generación de las remisiones de venta.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
73
B. DESCRIPCIÓN
Para satisfacer el objetivo de este módulo fue necesario hacer uso de validaciones AJAX,
anotaciones SEAM como @DataModel y generación de códigos de barra y archivos PDF con iText,
explicados a continuación:
Validaciones AJAX: Para realizar la creación y actualización de un registro de una entidad
se utilizó AJAX (Jon06). Esto se hizo con el fin validar la información desde el lado del
cliente.
Anotación @DataModel: La anotación @DataModel es una interfaz que brinda
operaciones sobre un DataModel JSF http://www.k-jahn.de/files/bibtex.xsl. Esta anotación
permitió mostrar la información de los registros de las entidades en las tablas de las páginas
JSF.
iText: iText es un framework de código libre que permite generar documentos PDF
(Bru11).
C. PROCEDIMIENTO
Uso de @DataModel para representar listas en DataTable
Por medio de la anotación @DataModel http://www.k-jahn.de/files/bibtex.xsl se logran
mostrar los registros de una entidad en una tabla JSF desde un EJB, como se muestra a
continuación:
@Restrict("#{s:hasRole('TareaMantenimientoList')}")
@Stateful
@Name("tareaEJB")
public class TareaMantenimientoEJB implements TareaMantenimientoLocal,
Serializable{
@DataModel(value="tareas")
private List<TareaMantenimiento> tareas;
@DataModel(value="allTareas")
private List<TareaMantenimiento> allTareas;
@DataModel(value="paquetes")
private List<Paquete> paquetes;
Estas listas son obtenidas desde la página JSF, como se muestra a continuación:
<rich:dataTable value="#{tareas}" var="tarea" id="tabla" style=" width :
100%;" rows="10"
rowKeyVar="row" rendered="#{tareaEJB.tareas.size()>0}" >
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
74
Generación de archivos PDF en iText
Para la generación de archivos PDF se utilizaron objetos de tipo Document, PdfWriter, PdfPTable y
PdfPCell (Bru11) dentro del paquete iText, explicados a continuación:
Document: Este objeto permite crear un documento, como se muestra a continuación
(Bru11):
private void crearDocumento(String nomArchivo){
try{
Document document = new Document();
PdfWriter: Este objeto permite crear un documento de tipo PDF protegido. Inicialmente
obtenemos la instancia de un objeto Document y el nombre del archivo que será creado.
Para agregarle la protección obtenemos la contraseña de la empresa remitente y hacemos
uso de un código que descripta la cadena de caracteres, para que finalmente hagamos uso
de la encriptación del objeto PdfWriter. A continuación mostramos un ejemplo de la
encriptación de un archivo PDF (Bru11):
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream(nomArchivo));
String usuario =
lote.getDespachadorRemitente().getEmpresaRemitente()
.getNombre().replace(" ", "");
FileSecurity security = new FileSecurity();
String pass = security.descifrar(lote.getDespachadorRemitente()
.getEmpresaRemitente().getPasswordPDF());
writer.setEncryption(usuario.getBytes(), pass.getBytes(),
PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128);
PdfPTable: Este objeto permite crear una tabla dentro de un documento de tipo PDF,
como se muestra a continuación (Bru11):
PdfPTable table = new PdfPTable(2);
PdfPCell: Este objeto permite crear una celda asociada a una tabla dentro de un
documento de tipo PDF. Basados en el ejemplo anterior de PdfPTable donde creamos una
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
75
tabla de dos celdas, vamos a crear dos objetos de tipo PdfPCell y los vamos agregar a la
tabla, como se muestra a continuación (Bru11):
PdfPTable table = new PdfPTable(2);
PdfPCell cell1;
PdfPCell cell2;
cell1 = new PdfPCell(new Paragraph("ID : ", FontFactory.getFont(
"calibri", // fuente
12, Font.BOLD, CMYKColor.BLACK)));
cell1.setBackgroundColor(CMYKColor.ORANGE);
cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
cell2 = new PdfPCell(new Phrase(String.valueOf(lote.getId())));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell1);
table.addCell(cell2);
Generación de códigos de barra en iText
Para la generación de códigos de barra dentro de un documento PDF se hizo uso de un objeto de
tipo PdfContentByte y un objeto de tipo Barcode128, explicados a continuación:
PdfContentByte: Este objeto permite agregar imágenes dentro de un documento PDF,
como se muestra a continuación:
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new
FileOutputStream(nomArchivo));
writer.setEncryption(user.getBytes(), password.getBytes(),
PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128);
document.open();
PdfContentByte cb = writer.getDirectContent();
Barcode128: Este objeto permite crear códigos de barra de tipo Barcode128 dentro de un
documento PDF. Inicialmente creamos un objeto de tipo Barcode128, cambios su código,
su tipo, y creamos una imagen asociada a él, como se muestra a continuación:
Barcode128 code128 = new Barcode128();
code128.setCode(s.getCodigo().trim());
code128.setCodeType(Barcode128.CODE128);
Image code128Image = code128.createImageWithBarcode(cb, null,
null);
code128Image.setAbsolutePosition(300,700);
code128Image.scalePercent(500);
code128Image.setAlignment(Element.ALIGN_MIDDLE);
document.add(code128Image);
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
76
La librería iText permite generar distintos códigos de barra explicados a continuación:
NOMBRE DESCRIPCIÓN CÓDIGO DE BARRA
EAN UCC 13
Este tipo de código de barra es de
chequeo lineal con longitud de 13
caracteres, usado frecuentemente para
la industria alimenticia y la venta al
detalle http://www.k-
jahn.de/files/bibtex.xsl(Tho96).
EAN UCC 12
Este tipo de código de barra es de
chequeo lineal con longitud de 12
caracteres, usado frecuentemente para
la industria alimenticia y la venta al
detalle http://www.k-
jahn.de/files/bibtex.xsl(Tho96).
EAN UCC 8
Este tipo de código de barra es de
chequeo lineal con longitud de 8
caracteres, usado frecuentemente para
la industria alimenticia y la venta al
detalle http://www.k-
jahn.de/files/bibtex.xsl(Tho96).
BARCODE 128
Este tipo de código de barra se utiliza
cuando es necesaria la ampliación de
caracteres, usado frecuentemente en
la industria de envíos http://www.k-
jahn.de/files/bibtex.xsl(Tho96).
BARCODE POSTNET
Este tipo de código de barra es usado
solamente por el servicio postal de
Estados Unidos http://www.k-
jahn.de/files/bibtex.xsl(Tho96).
CODEBAR Este tipo de código de barra permite
codificar solamente números de
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
77
longitud variable. Es usado
frecuentemente por bancos de sangre
http://www.k-
jahn.de/files/bibtex.xsl(Tho96).
BARCODE PDF417
Este tipo de código de barra
representa una simbología de alta
densidad no lineal, usado
frecuénteme por archivos de
informaciones portátiles
http://www.k-
jahn.de/files/bibtex.xsl(Tho96).
BARCODE DATAMATRIX
Este tipo de código de barra
bidimensional permite almacenar
información en un espacio reducido.
Un símbolo barcode datamatrix
permite almacenar entre uno y 500
caracteres. Es usado frecuentemente
para circuitos integrados y tarjetas de
circuitos impresos http://www.k-
jahn.de/files/bibtex.xsl(Tho96).
BARCODE QRCODE
Este tipo de código matriz permite
almacenar 7366 caracteres numéricos
o 4464 caracteres alfanuméricos. Es
usado frecuentemente para el uso de
cámaras CD y la tecnología de
procesamiento de imágenes
http://www.k-
jahn.de/files/bibtex.xsl(Tho96).
Tabla 19: Tipos de códigos de barra generados por iText
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
78
4.4.5. MÓDULO DE REPORTES
A. OBJETIVO
El objetivo de este módulo es generar y almacenar reportes en formato PDF en un directorio web.
B. DESCRIPCIÓN
Para cumplir con el objetivo de este módulo fue necesario hacer uso de iText (explicado en la
sección Módulo de gestión de estibas de este documento), @DataModel (explicado en las sección
Módulo de gestión de estibas de este documento), Quartz y JavaMail, explicados a continuación:
Quartz: Quartz es un framework de código libre que permite realizar agendamiento de
tareas en un aplicativo web (Wil05) .
JavaMail: JavaMail es un framework de código libre que permite componer y enviar un
mensaje de correo electrónico, establecer conexiones seguras, definir protocolos, adjuntar
archivos y usar flags (Ser).
C. PROCEDIMIENTO
Agendamiento de tareas por medio de Quartz
Para hacer uso de Quartz se creó un controlador que se va auto crear y ejecutar en el despliegue del
servidor de aplicaciones JBoss en un tiempo específico determinado por el CRON_INTERVAL,
como se muestra a continuación:
@Name("controller")
@Scope(ScopeType.APPLICATION)
@AutoCreate
@Startup
public class ReporteQuartz implements Serializable{
@In(create=true)
ProcesoQuartz processor;
@Logger
Log log;
private QuartzTriggerHandle quartzTestTriggerHandle;
private static String CRON_INTERVAL = "0 0 22 * * ?";
@Create
public void scheduleTimer() {
quartzTestTriggerHandle =
processor.createQuartzTesterTimer(new Date(), CRON_INTERVAL);
Este controlador hace uso de un componente llamado ProcesoQuartz que ejecuta una tarea
asincrónica. Esta tarea llama al EntityManager y obtiene los registros del día en la entidad Salida, y
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
79
a partir de allí, genera un archivo PDF, que será enviado por correo electrónico a los interesados,
como se muestra a continuación:
Name("processor")
public class ProcesoQuartz {
private Logger logger;
EntityManager entityManager;
private List<Salida> salidas;
@Asynchronous
public QuartzTriggerHandle createQuartzTesterTimer(
@Expiration Date when, @IntervalCron String interval)
{
logger = Logger.getLogger(getClass().getName());
La tarea es ejecutada en un tiempo específico determinado por una cadena de caracteres y asumido
por una anotación @IntervalCron http://www.k-jahn.de/files/bibtex.xsl , como se muestra a
continuación:
Ilustración 16: Cron – Quartz
Los caracteres representan: segundos, minutos, horas, días del mes, mes, día de la semana y años.
Estos caracteres pueden ser números que determinan un tiempo específico o caracteres especiales
como http://www.k-jahn.de/files/bibtex.xsl:
CARÁCTER ESPECIAL DESCRIPCIÓN
* Carácter especial que representa todas las
opciones disponibles.
?
Carácter especial que representa cualquier
opción de un campo determinado sobre otro
campo.
- Carácter especial que representa un rango
especifico.
, Carácter especial que representa una adición
sobre un campo.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
80
/ Carácter especial que representa incrementos
sobre un campo.
Tabla 20: Caracteres especiales en CRON - QUARTZ
Envió de correo electrónico por medio de JavaMail
Para enviar un correo electrónico con un reporte PDF adjunto se hizo uso de la entidad Parameter.
Esta entidad almacena los properties de la conexión para usar el API de JavaMail, como se muestra
a continuación:
public void enviarCorreo(String nombreArchivo){
Properties props = new Properties();
Parameter p = (Parameter) entityManager.createQuery(
"select p from Parameter p where p.name =:name")
.setParameter("name", "mail.smtp.host").getSingleResult();
props.put("mail.smtp.host", p.getValue());
p = (Parameter) entityManager.createQuery(
"select p from Parameter p where p.name =:name")
.setParameter("name", "starttls.enable").getSingleResult();
props.setProperty("mail.smtp.starttls.enable", p.getValue());
p = (Parameter) entityManager.createQuery(
"select p from Parameter p where p.name =:name")
.setParameter("name", "port").getSingleResult();
props.setProperty("mail.smtp.port",p.getValue());
Cuando se tienen las propiedades establecidas, se crea un objeto de tipo Session y se adjuntaban los
textos y archivos del correo electrónico, como se muestra a continuación:
Session session = Session.getDefaultInstance(props, null);
session.setDebug(true);
BodyPart texto = new MimeBodyPart();
try{
Date fecha = new Date();
texto.setText(" Reporte de inventario diario generado :
"+fecha.toString()+ "\n"+
" SIBOX (Sistema de información para el ingreso,
mantenimiento y salida de estibas) \n" +
" Autores : Jeisson Garcia y Mario Lancheros \n " +
" Directora de grado : Ing. Maria Consuelo Franky \n" +
" Generated by Seam, Quartz, JavaMail, CincoSoft");
BodyPart adjunto = new MimeBodyPart();
adjunto.setDataHandler(new DataHandler(new
FileDataSource(nombreArchivo)));
adjunto.setFileName("ReporteInventarioDiario.pdf");
MimeMultipart multiParte = new MimeMultipart();
multiParte.addBodyPart(texto);
multiParte.addBodyPart(adjunto);
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
81
Finalmente se añadieron los correos electrónicos destinatarios y se realizó él envió al correo
electrónico, como se muestra a continuación:
Transport t = session.getTransport("smtp");
p = (Parameter) entityManager.createQuery(
"select p from Parameter p where p.name =:name")
.setParameter("name", "email").getSingleResult();
Parameter q = (Parameter) entityManager.createQuery(
"select p from Parameter p where p.name =:name")
.setParameter("name", "password").getSingleResult();
FileSecurity file = new FileSecurity();
String password = file.descifrar(q.getValue());
t.connect(p.getValue(),password);
t.sendMessage(message,message.getAllRecipients());
t.close();
Creación del directorio web
Tanto los reportes generados como los stickers se mantienen almacenados en un directorio el cual
puede ser consultado en la web mediante la dirección: http://(direcciónIpDelServidor)/reportes .
Para habilitar este directorio se creó una carpeta llamada REPORTES.war en la ruta “…/jboss-
5.1.0.GA/server/default/deploy”. Esta carpeta contiene la siguiente jerarquía de subcarpetas con sus
respectivos archivos:
Ilustración 17: Jerarquía del directorio web
REPORTES.WAR
META-INF
MANIFIEST.MF
WEB-INF
jboss-web.xml web.xml
Reportes
EmpresaEstibas
Recibos Reportes
IngresoLotes Inventario Rechazo RemisionVenta
Stickers
EmpresasRemitentes
Recibos Reportes
logo.png
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
82
En la siguiente tabla se da una descripción de las carpetas y archivos que se encuentran dentro de la
carpeta REPORTES.war
ARCHIVO o CARPETA DESCRIPCIÓN
META-INF Carpeta que contiene archivos de persistencia.
MANIFEST.MF Archivo de metadatos especial para definir
datos de extensión y paquete
WEB-INF Carpeta que contiene archivos de configuración
del directorio web.
jboss-web.xml
Principal archivo descriptor de despliegue en el
servidor. En este archivo se define la ruta del
servidor web.
web.xml
Este archivo contiene la configuración estándar
del servidor web. En este archivo se definen las
restricciones de seguridad y los roles que
pueden acceder al directorio.
Reportes Carpeta que contiene todos los reportes
generados por el sistema.
EmpresaEstibas
Carpeta que contiene los reportes relacionados
con la empresa de estibas y los stickers
generados en los procesos de ingreso y
mantenimiento de estibas.
EmpresasRemitentes Carpeta que contiene los reportes relacionados
con las empresas remitentes.
logo.png Imagen que aparece en los reportes.
Tabla 21 Archivos y carpetas de REPORTES.war
A continuación se explica lo que debe tener cada uno de los archivos que contiene la carpeta
REPORTES.war como también algunos cambios que se realizaron sobre archivos de Jboss:
1. En el archivo jboss-web.xml de la carpeta “…/REPORTES.war/WEB_INF” se agregaron
las anotaciones que definen la ruta del directorio web y la sentencia para habilitar la
autenticación para acceder a él, como se muestra a continuación:
<security-domain>java:/jaas/estiba</security-domain>
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
83
<context-root>reportes</context-root>
2. En el archivo web.xml de la carpeta “…/REPORTES.war/WEB_INF” se agregaron las
anotaciones que definen las restricciones que tiene el directorio web y los roles asociados a
ellas, como se muestra a continuación:
<security-constraint>
<web-resource-collection>
<web-resource-name>ReportesSIBOX</web-resource-name>
<description>roles que pueden acceder a los reportes
</description>
<url-pattern>*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>AdministradorList</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>AdministradorList</role-name>
</security-role>
3. En el archivo web.xml de la carpeta “…/Jboss-
5.1.0.GA/server/default/deployers/jbossweb.deployer” se definió el atributo “listings” en
true para habilitar la opción de explorar los directorios web puestos en el servidor de
aplicaciones Jboss, como se muestra a continuación:
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
4. En el archivo login.config de la carpeta “…/Jboss-5.1.0.GA/server/default/conf” se
agregaron las anotaciones necesarias para acceder a la base de datos y buscar la contraseña
y el rol del usuario que se desee autenticar, como se muestra a continuación:
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
84
<application-policy name=”estiba">
<authentication>
<login-module
code="org.jboss.security.auth.spi.DatabaseServerLoginModule">
<module-option name="dsJndiName">reportesDatasource</module-option>
<module-option name="principal">estiba</module-option>
<module-option name="principalsQuery">SELECT password FROM Usr
WHERE username=?</module-option>
<module-option name="rolesQuery">SELECT name_role, 'Roles'
FROM sec_user_role WHERE username=?</module-
option>
<module-option name="hashAlgorithm">MD5</module-option>
</login-module>
</authentication>
</application-policy>
5. Por último en la carpeta “…/Jboss-5.1.0.GA/server/default/deploy” se agregó el datasource
de la aplicación reportes para gestionar la conexión con la base de datos, como se muestra a
continuación:
<datasources>
<local-tx-datasource>
<jndi-name>reportesDatasource</jndi-name>
<use-java-context>false</use-java-context>
<security-domain>reportes</security-domain>
<connection-url>jdbc:postgresql:estiba</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>estiba</user-name>
<password>estiba</password>
</local-tx-datasource>
</datasources>
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
85
4.4.6. PRUEBAS DEL SISTEMA DE INFORMACIÓN PARA EL INGRESO, MANTENIMIENTO Y SALIDA DE
ESTIBAS SIBOX
Luego de realizar la construcción del sistema de información para el ingreso, mantenimiento y
salida de estibas SIBOX se realizaron dos tests de pruebas explicados a continuación:
Test de pruebas sobre CRUDS: Este test de pruebas es realizado sobre los casos de uso que
son CRUDS dentro del sistema de información para el ingreso, mantenimiento y salida de
estibas SIBOX (Los resultados se encuentran en el Anexo 14: Test de pruebas de CRUDS).
Test de pruebas sobre casos de uso del negocio: Este test de pruebas es realizado sobre los
casos de uso del negocio (No son CRUDS) del sistema de información para el ingreso,
mantenimiento y salida de estibas (los resultados se encuentran en el Anexo 15: Test de
pruebas de casos de uso de negocio).
4.4.7. VALIDACIÓN DEL SISTEMA DE INFORMACIÓN PARA EL INGRESO, MANTENIMIENTO Y SALIDA
DE ESTIBAS SIBOX
Luego de realizar las pruebas del sistema de información para el ingreso, mantenimiento y salida de
estibas SIBOX se realizó la validación con el cliente de la compañía tomada como caso de estudio.
Los resultados de esta validación se encuentran en la sección Validación de la aplicación de este
documento.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
86
5. RESULTADOS
Como resultado del presente proyecto se generó una aplicación web que facilita el registro y
seguimiento de los procesos de ingreso, mantenimiento y salida de estibas. Esta aplicación presenta
las siguientes características:
CARACTERISTICA ¿Qué mejora realizo sobre la compañía
tomada como caso de estudio?
Creación de usuarios: Esta característica se
desarrolló con base al módulo de código abierto
CincoSecurity, el cual permite una gran
flexibilidad para restringir el acceso de usuarios
no identificados.
Seguridad de la información: Accesibilidad
Definición de perfiles: Esta característica se
desarrolló con base al módulo de código abierto
CincoSecurity, el cual permite una gran
flexibilidad para restringir el acceso de los
usuarios del sistema a los diferentes servicios
Seguridad de la información: Integridad de los
datos y del sistema
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
87
ofrecidos de acuerdo a los privilegios de cada
uno de ellos.
Auditoría de datos: Esta característica se
desarrolló con base al módulo de auditoría,
donde se registran las modificaciones de
actualización y eliminación hechas sobre la base
de datos.
Seguridad de la información: Registro de
auditoría
Seguridad en archivos generados: Esta
característica se desarrolló con base al módulo
de reportes, donde se realiza la creación de
archivos PDF protegidos con una contraseña
única para cada empresa remitente y para la
compañía de estibas
Seguridad de la información: Confidencialidad
y Generación de reportes
Control sobre llegada de lotes y estibas: Esta
característica se desarrolló con base al módulo
de gestión de estibas, donde se realiza la
creación de envíos y llegadas del lote y estibas
desde una empresa remitente hasta la compañía
de estibas.
Gestión de lotes y estibas
Control sobre las tareas de mantenimiento:
Esta característica se desarrolló con base al
módulo de gestión de estibas, donde se realiza
la creación de tareas de mantenimiento, la
generación de stickers y la validación de la
información suministrada por un empleado de
mantenimiento.
Gestión de tareas de mantenimiento
Control sobre las salidas de paquetes de la
bodega: Esta característica se desarrolló con
base al módulo de gestión de estibas, donde se
realiza la creación de salidas de paquetes de la
bodega a la planta de producción.
Gestión de salidas de paquetes de la bodega
Generación de reportes: Esta característica se Generación de reportes
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
88
desarrolló con base al módulo de reportes,
donde se realiza la creación de archivos PDF
con información proveniente de la base de datos
y códigos de barra en formato Barcode 128.
Agendamiento de tareas: Esta característica se
desarrolló con base al módulo de reportes,
donde se realiza la creación y el envío de un
reporte a las 10:00 pm hora colombiana.
Generación de reportes
Directorio web: Esta característica se
desarrolló con base al módulo de reportes,
donde se logra acceder a un directorio web por
medio del servidor de aplicaciones Jboss.
Generación de reportes
Tabla 22: Resultados
5.1. VALIDACIÓN DE LA APLICACIÓN
El proceso de validación de la aplicación SIBOX se realizó con la colaboración de la compañía
Distribuidora JJ. Esta empresa nos permitió realizar el modelamiento de proceso de negocio, el
levantamiento de requerimientos, diseño de casos de uso, modelamiento de entidades y presentación
de las primeras tres iteraciones del aplicativo web. Logrando obtener una retroalimentación que
sirvió como base para concluir un prototipo de un sistema de información que pueda colaborar en
los procesos de ingreso, mantenimiento y salida de estibas, no solo para empresas dedicadas a
seleccionar cajas, sino también, para organizaciones que se dediquen a seleccionar cualquier envase
y trabajen o se adapten a los proceso mencionados con anterioridad.
El gerente de la compañía (Sr Joaquín Bautista Torres) se mostró muy interesado en el aplicativo y
espera que a futuro se pueda desarrollar una segunda iteración sobre SIBOX para que realice el
proceso de ingreso, mantenimiento y salida para productos como aluminio, cobre rojo, bronce, entre
otros.
Los resultados de la validación se encuentran en los anexos: Anexo 9: Carta de satisfacción por
parte del cliente y Anexo 10: Encuesta de validación por parte del cliente.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
89
6. CONCLUSIONES Y TRABAJOS FUTUROS
6.1. CONCLUSIONES
Las conclusiones del presente proyecto de grado son:
Realizar el modelamiento de los procesos de negocio permite garantizar el cumplimiento
del objetivo del sistema de información dentro de la empresa.
El uso de un servidor de aplicaciones en la construcción de un aplicativo web permite
garantizar la escalabilidad y dejar en un segundo plano el manejo transaccional y el
cumplimiento de las propiedades ACID.
Todos los sistemas de información empresariales deben cumplir con los objetivos
principales de seguridad tales como: Disponibilidad y accesibilidad, integridad de los datos
y el sistema, auditoría, confidencialidad y confiabilidad, ya que de esto depende el éxito del
sistema.
El manejo de stickers fue una buena solución para llevar el control sobre la selección de
cajas realizada por los empleados de mantenimiento de estibas.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
90
La creación de usuarios por parte de las empresas remitentes le permitió a la compañía de
estibas tomada como caso de estudio llevar un control sobre la cantidad exacta de estibas y
lotes provenientes.
La validación por parte del sistema de información sobre la cantidad exacta de paquetes de
un color de la bodega le permitió ahorrar tiempo en contar manualmente el envío de estos a
la planta de producción.
6.2. RECOMENDACIONES
Para este tipo de proyectos de aplicación práctica es necesario definir y establecer pautas con un
cliente directo, con el fin de garantizar una retroalimentación y generar validaciones sobre el campo
en el cual se desarrolla el software.
6.3. TRABAJOS FUTUROS
La aplicación está desarrollada para el ingreso, mantenimiento y salida de estibas en empresas
colombianas, pero se puede adaptar para compañías que realicen trabajos de selección de objetos.
Además se espera que a futuro se pueda:
Extender el aplicativo para que trabajar con diferentes sistemas de información como
nomina, recursos humanos, entre otros.
Extender el aplicativo para el manejo de diferentes envases o productos de reciclaje como
aluminio, cobre rojo, antimonio, bronce, baterías, acero, entre otros.
Gozar de la generación de códigos de barra para almacenar la información relevante de una
estiba/lote y ser obtenidos bajo un lector de códigos de barra.
Acoplar el aplicativo bajo suites de BPM (BPMS: Jboss Red Hat) o con un framework de
jBPM de Java EE5 – SEAM2.
6.4. POST-MORTEM
6.4.1. METODOLOGÍA PROPUESTA VS. METODOLOGÍA REALMENTE UTILIZADA
Para realizar el análisis, diseño y desarrollo de la aplicación web “SIBOX: Sistema de información
para el ingreso, mantenimiento y salida de estibas” fue propuesto el uso de la metodología
programación extrema (XP). Esta metodología nos aportó la experiencia de la programación por
pares y la entrega por módulos al representante de la compañía que fue tomada como caso de
estudio: Distribuidora JJ.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
91
Dado que la aplicación cuenta con un análisis y un diseño As-Is y To-Be sobre los procesos de
negocio de la compañía, se añadió a la metodología propuesta, el primer ciclo de la metodología
implementada por IBM: Quickwins [48]. La unión de estas dos metodologías permitía tener ciclos
de presentación (por módulos) presentados tanto al cliente de la compañía tomada como caso de
estudio como a la directora del trabajo de grado. La metodología final se muestra a continuación:
El cronograma del trabajo de grado se planeó para ser realizado por playbacks. Un playback
representa una etapa dentro del cronograma. El playback 0 representa las actividades realizadas
sobre el levantamiento de la información de los procesos de negocio: organización y roles, objetivos
y procedimiento de los procesos de negocio y diagramación BPMN (Ber12). Este playback se
realizó de forma iterativa hasta la aceptación por parte del cliente, como se muestra a continuación:
Ilustración 18: Playback 0
El playback 1 representa las actividades realizadas sobre el levantamiento de requerimientos,
inventario de módulos y casos de uso y el modelamiento de las entidades. Este playback se realizó
de forma iterativa hasta la aceptación por parte del cliente, como se muestra a continuación:
PlayBack 0
Diseño As-Is
Diseño To - Be
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
92
Ilustración 19: Playback 1
El playback 2 representa las actividades realizadas sobre la construcción y las pruebas del sistema
de información. Este playback se realizó de forma iterativa por cada conjunto de módulo hasta la
aceptación por parte del cliente, como se muestra a continuación:
Ilustración 20: Playback 2
6.4.2. TIEMPO DEL PROYECTO PLANEADO VS. TIEMPO DEL PROYECTO EJECUTADO
Al iniciar el proyecto de grado teníamos la siguiente estimación:
PLAYBACK DURACIÓN (DÍAS)
Actividad inicial administrativa 2
Playback 1
Levantamiento de
requerimientos
Plantilla - HACER USOS
Inventario de módulos y
casos de uso
Modelamiento de entidades
Playback 2
Construcción
Pruebas
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
93
Playback 0 8
Playback 1 21
Playback 2 63
Actividad final administrativa 4
Total (Días) 98
Tabla 23: Estimación de tiempos del proyecto
Esta estimación nos enfrentaba a una etapa crítica del proyecto en el playback 2, concentrándonos
completamente en el software del sistema de información y dejando un mínimo de cuatro días para
realizar la memoria, manuales y páginas web referentes al trabajo de grado.
En el transcurso del proyecto se realizaron variaciones en el cronograma por el rápido aprendizaje
de los estudiantes con las tecnologías: iText, Quartz y Seam, finalizando el trabajo de grado con la
siguiente duración de días por cada playback:
PLAYBACK DURACIÓN (DÍAS)
Actividad inicial administrativa 2
Playback 0 8
Playback 1 11
Playback 2 41
Actividad final administrativa 25
Total (Días) 87
Tabla 24: Duración en días por cada playback
Este rápido aprendizaje permito al grupo de estudiantes realizar mejoras sobre la memoria del
trabajo de grado y crear una máquina virtual para montar el aplicativo y el servidor de aplicaciones
en esta.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
94
7. REFERENCIAS Y BIBLIOGRAFÍA
@inbook{Jen06,
author = {Ball, Jennifer and Carson, Debbie and Evans, Ian and Haase, Scott Fordin:Kim
and Jendrock, Eric },
address = {California, United States},
title = {Overview},
booktitle = {The Java EE5 Tutorial},
year = {2006},
publisher = {Sun Microsystems},
editor = {Ball, Jennifer and Carson, Debbie and Evans, Ian and Haase, Scott Fordin:Kim
and Jendrock, Eric }
}
@inbook{Jor10,
author = {Caralt, Jordi Conesa and Villach, Jordi Ceballos and Gavidia, Àngels Rius and
Jiménez, David Gañán},
title = {La plataforma .NET},
booktitle = {Introducción a .net},
year = {2010},
publisher = {UOC},
pages = {15-22},
editor = {Caralt, Jordi Conesa and Villach, Jordi Ceballos and Gavidia, Àngels Rius and
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
95
Jiménez, David Gañán}
}
@inbook{Ant10,
author = {Goncalves, Antonio },
title = {Beginning Java EE6 plataform with glassfish 3},
booktitle = {Beginning Java EE6 plataform with glassfish 3},
year = {2010},
publisher = {Apress},
pages = {6-7},
editor = {glance, Java EE6 at a}
}
@inbook{EdB10,
author = {Burns, Ed and Schalk, Chris },
address = {United States},
title = {Introduction to JavaServer Faces},
booktitle = {The complete references JavaServer Faces 2.0},
year = {2010},
publisher = {McGraw-Hill},
pages = {3-4},
editor = {Burns, Ed and Schalk, Chris }
}
@article{Mey01,
author = {Meyer, Bertrand },
title = {.NET is coming},
journal = {Software Technologies},
year = {2001},
month = {2001},
pages = {92-97}
}
@inbook{Bru11,
author = {Lowagie, Bruno },
address = {Stamford},
title = {Introducing PDF and iText},
booktitle = {iText in action},
year = {2011},
publisher = {Manning Publications Co},
pages = {3},
editor = {Lowagie, Bruno }
}
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
96
@inbook{Jam09,
author = {David, Jamae and Peter, Johnson },
address = {Greenwich},
title = {What is JBoss?},
booktitle = {JBoss in action},
year = {2009},
publisher = {Manning Publications Co},
pages = {4-5},
editor = {David, Jamae and Peter, Johnson }
}
@inbook{Qua,
title = {What can Quartz do for you?},
booktitle = {Quartz 2.1.x documentation},
pages = {1},
editor = {Scheduler, Quartz Enterprise Job}
}
@inbook{IBM09,
title = {Application server purpose},
booktitle = {WebSphere Application},
year = {2009},
publisher = {Redbooks},
pages = {4-5},
editor = {IBM, }
}
http://www.k-jahn.de/files/bibtex.xslhttp://www.k-jahn.de/files/bibtex.xsl
@article{Mar11,
author = {Franky, Maria Consuelo},
title = {Instalación y uso del framework Taylor para el modelaje de entitades JPA},
journal = {Pontificia Universidad Javeriana de Bogotá},
year = {2011},
month = {2011}
}
@article{Mar10,
author = {Franky, Maria Consuelo},
title = {Guía de los generadores del framework SEAM},
journal = {Pontificia Universidad Javeriana de Bogotá},
year = {2010},
month = {2010},
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
97
volume = {1}
}
@article{Mar111,
author = {Franky, María Consuelo},
title = {CincoSecurity: Automating the security of Java EE Applications with fine-grained
roles and security profiles},
journal = {The Sixth International Conference on Internet and Web Applications and
Services},
year = {2011}
}
@article{Fra09,
author = {Franky, María Consuelo and Toro, Víctor Manuel and López, Rodrigo },
title = {CincoSecurity Module based on fine roles},
year = {2009}
}
@inbook{Jon06,
author = {Jacobi, Jonas and Fallows, John R.},
address = {United States},
title = {Converters, Validators, Events and Listeners},
booktitle = {Pro JSF and Ajax: Building Rich Internet Components},
year = {2006},
publisher = {Apress},
pages = {22-23},
editor = {Jonas Jacobi, John R. Fallows}
}
http://www.k-jahn.de/files/bibtex.xslhttp://www.k-jahn.de/files/bibtex.xsl
@inbook{Wil05,
author = {Iverson, Will },
address = {United States},
title = {Project 5: News Aggregator},
booktitle = {Real World Web Services: Integrating EBay, Google, Amazon, FedEx and
more},
year = {2005},
publisher = {Mary Anne Weeks Mayo},
pages = {154-155},
editor = {Iverson, Will }
}
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
98
@inbook{Ser,
author = {Gálves, Sergio and García, Ignacio },
address = {Malaga, España},
title = {Primeros pasos},
booktitle = {JavaMail},
publisher = {Universidad de Malaga},
pages = {16-18},
editor = {Gálves, Sergio and García, Ignacio }
}
http://www.k-jahn.de/files/bibtex.xslhttp://www.k-jahn.de/files/bibtex.xslhttp://www.k-
jahn.de/files/bibtex.xsl
@inproceedings{Cao04,
author = {Cao, Lan and Mohan, Kannan and Balasubramaniam, Peng Xu},
address = {Hawaii},
title = {How Extreme does Extreme Programming Have to be? Adapting XP Practices to
Large-scale Projects},
year = {2004}
}
@article{Art02,
author = {English, Arthur },
title = {Extreme Programming: It’s Worth a Look},
journal = {Perspectives},
year = {2002},
month = {2002}
}
@inproceedings{Tho96,
author = {Sriram, Thota and Rao, K Vishwanatha and Biswas, S and Ahmed, B asheer},
address = {India},
title = {Applications of Barcode technology in Automated Storage & Retrieval Systems},
year = {1996},
pages = {641-646}
}
@article{Mig04,
author = {Azocar, Miguel },
title = {Elección de la mejor herramienta de desarrollo de aplicaciones empresariales, J2EE
v/s .NET },
journal = {Artículo},
year = {2004}
}
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
99
@inbook{Sal09,
author = {Salter, David },
address = {Birmingham},
title = {Developing web applications},
booktitle = {Introduction to seam},
year = {2009},
publisher = {Pack Publishing LTDA},
pages = {Cp 1}
}
@inbook{Sam05,
author = {Gupta, Samudra },
address = {New York},
title = {Introduction to application logging},
booktitle = {Pro Apache Log4j},
year = {2005},
publisher = {Appres},
pages = {1-8}
}
@inbook{Ken09,
author = {tong, Kent ka lok},
address = {New York},
title = {Getting started with JSF},
booktitle = {Beginning JSF 2 APIs and JBoss Seam},
year = {2009},
publisher = {Springer},
pages = {1-28}
}
@inbook{Rob02,
author = {Aalders, Rob and Hind, Peter },
address = {West Sussex},
title = {Introduction},
booktitle = {The IT Manager's survival guide},
year = {2002},
publisher = {Brittish Library},
pages = {1-10}
}
@inbook{Ber12,
author = {Hitpass, Bernard },
address = {Santiago de Chile},
title = {Introducción y definición del BPM},
booktitle = {BPM Business Process Management},
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
100
year = {2012},
publisher = {Hispana},
pages = {3-19}
}
@inbook{Fer10,
author = {Ferreiro, María },
address = {España},
title = {Ojear Excel: Qué hacer y dónde?},
booktitle = {Microsoft Excel 2007, aprenda a gestionar datos de manera eficaz},
year = {2010},
publisher = {ideaspropias},
pages = {15-28}
}
@inbook{Jak11,
author = {Freund, Jakob and Rucker, Bernd and Hitpass, Bernhard },
address = {Santiago de Chile},
title = {Introdución},
booktitle = {BPMN 2.0},
year = {2011},
publisher = {Hispana},
pages = {1-16}
}
@inbook{JBo13,
author = {RichFaces, JBoss },
title = {Introduction},
booktitle = {Richfaces Framework with a huge library of rich components and skinnability
support},
year = {2013},
pages = {1-2}
}
http://www.k-jahn.de/files/bibtex.xslhttp://www.k-jahn.de/files/bibtex.xsl
@inbook{Ian05,
author = {Sommerville, Ian },
address = {Madrid},
title = {Reutilización},
booktitle = {Ingeniería del software},
year = {2005},
publisher = {Pearson Educación},
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
101
pages = {379-394}
}
http://www.k-jahn.de/files/bibtex.xslhttp://www.k-jahn.de/files/bibtex.xsl
@inbook{Ser02,
author = {Mora, Sergio Lujan},
address = {España},
title = {¿Qué es una aplicación web?},
booktitle = {Programación de aplicaciones web: Historia, principios básicos y clientes
web},
year = {2002},
publisher = {Editorial Club Universitario},
pages = {48-50},
editor = {Mora, Sergio Lujan}
}
@inbook{Jav08,
author = {Aeritio, Javier },
address = {Madrid, España},
title = {Fundamentos de la seguridad de la información},
booktitle = {Seguridad de la información: redes, informática y sistemas de información},
year = {2008},
publisher = {Paraninfo},
pages = {1-6},
editor = {Aeritio, Javer }
}
@article{Ora10,
author = {Oracle, },
title = {Learning Oracle GlassFish Server for Tomcat Users},
journal = {Learning Oracle GlassFish Server for Tomcat Users},
year = {2010},
pages = {1-10}
}
@article{Ora11,
author = {Oracle, },
title = {Introduction to Oracle Weblogic Server},
journal = {Introduction to Oracle Weblogic Server},
year = {2011},
month = {2011},
pages = {1-2}
}
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
102
@inbook{Tim03,
author = {Time Francis, Eric Herness, Rob High Jr, Jim Knutson, Kim Rochat, Chris
Vignola},
address = {Indianapolis, Canada},
title = {Introduction to WebSphere},
booktitle = {IBM WebSphere 5.0 Application Server},
year = {2003},
publisher = {Wiley Publishing},
pages = {9-16},
editor = {Time Francis, Eric Herness, Rob High Jr, Jim Knutson, Kim Rochat, Chris
Vignola}
}
http://www.k-jahn.de/files/bibtex.xsl
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
103
8. ANEXOS
Los siguientes documentos forman parte de los anexos y se encuentran disponibles en la página del
presente trabajo de grado: http://pegasus.javeriana.edu.co/~CIS1310IS12/
8.1. ANEXO 1: DOCUMENTOS DEL MODELAMIENTO DE PROCESOS
Este anexo contiene los documentos (reportes, informes, recibos) que son generados en el
modelamiento de los procesos de ingreso, mantenimiento y salida de estibas en el diseño As-Is y
To-Be.
8.2. ANEXO 2: REQUERIMIENTOS DEL SISTEMA
Este anexo contiene la plantilla HACER-USOS. Esta plantilla contiene los conceptos, usuarios, y
requerimientos del sistema de información para el ingreso, mantenimiento y salida de estibas:
SIBOX.
8.3. ANEXO 3: INVENTARIO DE MÓDULOS Y CASOS DE USO
Esta plantilla contiene el inventario de módulos y casos de uso con la cantidad de desarrolladores y
el costo de la implementación del proyecto.
8.4. ANEXO 4: DIAGRAMA DE CASOS DE USO
Este anexo contiene los diagramas de casos de uso por módulos del sistema de información para el
ingreso, mantenimiento y salida de estibas: SIBOX.
8.5. ANEXO 5: MANUAL DEL USUARIO
Este anexo contiene el manual del usuario del sistema de información para el ingreso,
mantenimiento y salida de estibas: SIBOX.
8.6. ANEXO 6: CRONOGRAMA DEL PROYECTO
Este anexo contiene el cronograma del proyecto de grado que dio como resultado el aplicativo
SIBOX.
Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica
104
8.7. ANEXO 7: GLOSARIO
Este anexo contiene el glosario del proyecto de grado “sistema de información para el ingreso,
mantenimiento y salida de estibas”.
8.8. ANEXO 8: DIAGRAMA DE ENTIDADES
Este anexo contiene el diagrama de entidades del “sistema de información para el ingreso,
mantenimiento y salida de estibas”.
8.9. ANEXO 9: CARTA DE SATISFACCIÓN POR PARTE DEL CLIENTE
Este anexo contiene la carta de satisfacción por parte del cliente “DISTRIBUIDORA JJ”.
8.10. ANEXO 10: ENCUESTA DE VALIDACIÓN POR PARTE DEL CLIENTE
Este anexo contiene la encuesta de validación por parte del cliente “DISTRIBUIDORA JJ”
8.11. ANEXO 11: MANUAL DE INSTALACIÓN
Este anexo contiene el manual de instalación del sistema de información para el ingreso,
mantenimiento y salida de estibas: SIBOX.
8.12. ANEXO 12: MANUAL DE MANTENIMIENTO
Este anexo contiene el manual de mantenimiento del sistema de información para el ingreso,
mantenimiento y salida de estibas: SIBOX.
8.13. ANEXO 13: ENTREVISTAS REALIZADAS AL CLIENTE
Este anexo contiene las entrevistas realizadas al cliente (Sr Joaquín Bautista Torres) de la compañía
tomada como caso de estudio Distribuidora JJ.
8.14. ANEXO 14: TEST DE PRUEBAS DE CRUDS
Este anexo contiene las test de pruebas sobre los casos de uso CRUDS del sistema de información
para el ingreso, mantenimiento y salida de estibas.
8.15. ANEXO 15: TEST DE PRUEBAS DE CASOS DE USO DE NEGOCIO
Este anexo contiene los test de pruebas sobre los casos de uso del negocio del sistema de
información para el ingreso, mantenimiento y salida de estibas.