104
Pontificia Universidad Javeriana Memoria de Trabajo de Grado Aplicación Práctica 1

Pontificia Universidad Javeriana Memoria de Trabajo de

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Pontificia Universidad Javeriana Memoria de Trabajo de

Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica

1

Page 2: Pontificia Universidad Javeriana Memoria de Trabajo de

Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica

2

Page 3: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 4: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 5: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 6: Pontificia Universidad Javeriana Memoria de Trabajo de

Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica

6

Page 7: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 8: Pontificia Universidad Javeriana Memoria de Trabajo de

Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica

8

Page 9: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 10: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 11: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 12: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 13: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 14: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 15: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 16: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 17: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 18: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 19: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 20: Pontificia Universidad Javeriana Memoria de Trabajo 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:

Page 21: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 22: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 23: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 24: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 25: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 26: Pontificia Universidad Javeriana Memoria de Trabajo de

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:

Page 27: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 28: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 29: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 30: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 31: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 32: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 33: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 34: Pontificia Universidad Javeriana Memoria de Trabajo de

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ó

Page 35: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 36: Pontificia Universidad Javeriana Memoria de Trabajo de

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:

Page 37: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 38: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 39: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 40: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 41: Pontificia Universidad Javeriana Memoria de Trabajo 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

Page 42: Pontificia Universidad Javeriana Memoria de Trabajo 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:

Page 43: Pontificia Universidad Javeriana Memoria de Trabajo de

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:

Page 44: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 45: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 46: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 47: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 48: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 49: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 50: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 51: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 52: Pontificia Universidad Javeriana Memoria de Trabajo de

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:

Page 53: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 54: Pontificia Universidad Javeriana Memoria de Trabajo de

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:

Page 55: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 56: Pontificia Universidad Javeriana Memoria de Trabajo 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

Page 57: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 58: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 59: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 60: Pontificia Universidad Javeriana Memoria de Trabajo 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

Page 61: Pontificia Universidad Javeriana Memoria de Trabajo de

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:

Page 62: Pontificia Universidad Javeriana Memoria de Trabajo de

Pontificia Universidad Javeriana Memoria de Trabajo de Grado – Aplicación Práctica

62

Ilustración 13: Diagrama de componentes – SIBOX

Page 63: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 64: Pontificia Universidad Javeriana Memoria de Trabajo de

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)

Page 65: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 66: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 67: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 68: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 69: Pontificia Universidad Javeriana Memoria de Trabajo 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

Page 70: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 71: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 72: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 73: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 74: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 75: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 76: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 77: Pontificia Universidad Javeriana Memoria de Trabajo 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

Page 78: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 79: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 80: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 81: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 82: Pontificia Universidad Javeriana Memoria de Trabajo de

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>

Page 83: Pontificia Universidad Javeriana Memoria de Trabajo de

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:

Page 84: Pontificia Universidad Javeriana Memoria de Trabajo de

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>

Page 85: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 86: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 87: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 88: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 89: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 90: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 91: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 92: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 93: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 94: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 95: Pontificia Universidad Javeriana Memoria de Trabajo de

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 }

}

Page 96: Pontificia Universidad Javeriana Memoria de Trabajo de

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},

Page 97: Pontificia Universidad Javeriana Memoria de Trabajo de

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 }

}

Page 98: Pontificia Universidad Javeriana Memoria de Trabajo de

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}

}

Page 99: Pontificia Universidad Javeriana Memoria de Trabajo de

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},

Page 100: Pontificia Universidad Javeriana Memoria de Trabajo de

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},

Page 101: Pontificia Universidad Javeriana Memoria de Trabajo de

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}

}

Page 102: Pontificia Universidad Javeriana Memoria de Trabajo de

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

Page 103: Pontificia Universidad Javeriana Memoria de Trabajo de

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.

Page 104: Pontificia Universidad Javeriana Memoria de Trabajo de

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.