View
4
Download
0
Category
Preview:
Citation preview
DESARROLLO DE SOFTWARE WEB PARA LA GESTIÓN DE INVENTARIO, CON
APLICACIÓN MÓVIL DE CONSULTA PARA LA EMPRESA COSDY SAS
Alejandro Diaz Pereira -20121020126
Universidad Distrital Francisco José de Caldas
Facultad de Ingeniería
Proyecto curricular ingeniería de sistemas
Bogotá D.C – Colombia
2019
DESARROLLO DE SOFTWARE WEB PARA LA GESTIÓN DE INVENTARIO, CON
APLICACIÓN MÓVIL DE CONSULTA PARA LA EMPRESA COSDY SAS
Alejandro Diaz Pereira -20121020126
Proyecto de grado presentado como requisito para optar al título de:
Ingeniero de Sistemas
Director Interno:
Ingeniero John Freddy Parra Peña
Facultad de Ingeniería
Universidad Distrital Francisco José de Caldas
Facultad de Ingeniería
Proyecto curricular Ingeniería de Sistemas
Bogotá D.C – Colombia
2019
Tabla de contenido
1. Introducción 8
2. Planteamiento del problema 9
2.1 Descripción del problema 9
2.2 Formulación del problema 9
3. Justificación 9
4. Objetivos 9
4.1 Objetivo General: 9
4.2 Objetivos Específicos 9
5. Marco referencial 10
5.1 Marco teórico 10
6 Marco metodológico 14
6.1 Metodología del desarrollo 14
6.2 Metodología de la ingeniería 15
7 Recursos 16
8 Cronograma 17
9 Resultados y Discusiones 18
9.1 Definición de proceso de inventarios 18
9.2 Etapa product backlog 19
9.3 Etapa reléase backlog 22
9.4 Etapa Sprints 23
10 Conclusiones 47
11 Recomendaciones 47
12 Bibliografía 48
13 Anexos 49
FUNCIONALIDAD GENERAL 52
3.1 Instalar la versión 1.6 del kit de desarrollo de Java (JDK por sus siglas en inglés) 66
3.2 Configurar las variables de entorno del sistema 67
4.1 Instalar la versión 7 de Tomcat 68
4.2 Copiar el ROOT entregado con el proyecto al directorio de Tomcat en el sistema 68
4.3 Configurar los usuarios de acceso al servidor 69
4.4 Configurar el puerto para una conexión segura certificada 69
5.1 Descarga y configuración del software 70
6.2 Ejecutar el manager y subir archivo del proyecto 71
6.3 Montar base de datos en PostgreSQL 71
Listado de Tablas Tabla {1} Tabla 1. Cronograma fuente: propia……………………………………………………..…2
Tabla {2} Tabla 2 Release Backlog. Fuente: Propia…………………………………………….……22
Tabla {3} Tabla 3. Roles de usuario. Fuente: Propia …………………………..………………...…..22
Tabla {4} Tabla 4. Pruebas de calidad. Fuente: Propia…………………….…..…………………… .22
Listado de Figuras
Figura {1} Figura 1. Estructura Java EE. Fuente: ACADEMIA CISCO ORACLE UTN
CÓRDOBA,2015…………………………………………………………………………………………...5
Figura {2} Figura 2. Recursos. Fuente: Propia……….……..……...………………….………..…….. ..15
Figura {3} Figura 3. Proceso de inventario BPMN. Fuente: Propia ,2019……………………..………..18
Figura {4} Figura 4. Primera historia de usuario Fuente: Propia ,2019………...………………………. 19
Figura {5} Figura 5. Segunda historia de usuario Fuente: Propia ,2019……………..…..…………..….. 6
Figura {6} Figura 6. Tercera historia de usuario Fuente: Propia ,2019………………..……………….. 20
Figura {7} Figura 7 Tercera historia de usuario Fuente: Propia ,2019………..…………….………….. 20
Figura {8} Fig. 8. Modelo de bases de datos, Fuente: propia…………………………..………………... 23
Figura {9} Fig. 9. MVC. Fuente: propia…………………………………………………..……………. ..24
Figura {10} Fig. 10. Tomcat Manager. Fuente: Propia………………………………………..………… 25
Figura {11} Fig. 11. Pantalla de inicio, Fuente: propia…………….. ……………………………………26
Figura {12} Fig. 12. Pantalla de menú, Fuente: propia.…………………………………………………. 26
Figura {13} Fig. 13. Pantalla inventarios, Fuente: propia…...……………………...…...………………..27
Figura {14} Fig. 14. Pantalla de formularios, Fuente: propia………………….……….……………….. 28
Figura {15} Fig. 15. Vista de navegación Fuente: propia.………………………………………………..29
Figura {16} Fig. 16. Vista de navegación ejecutiva Fuente: propia….………………..…………….....…30
Figura {17} Fig. 17. Vista de navegación jefe de usuario Fuente: propia.…………...…….……………. 30
Figura {18} Fig. 18. Vista de navegación Fuente: propia….…………………………...……...………....31
Figura {19} Fig. 19. Login de usuario con diseño Fuente: propia.………………...…………….……… 32
Figura {20} Fig. 20. Menú con diseño Fuente: propia.………….………………………………………..32
Figura {21} Fig. 21. Inventario con diseño Fuente: propia.……….…….……………...……………….. 33
Figura {22} Fig. 22. Login de usuario con diseño Fuente: propia………….……...…….…………….. ..34
Figura {23} Fig. 23. Login de usuario con diseño de iconos Fuente: propia.…….……..………………..35
Figura {24} Fig. 24. Alerta de añadir usuario Fuente: propia………………………...….………….…....35
Figura {25} Fig. 25. Alerta de Eliminar usuario Fuente: propia…………...…………………..…………35
Figura {26} Fig. 26. Alerta de Añadir materia prima Fuente: propia.………….…..………………….…36
Figura {27} Fig. 27. Alerta de materia prima Fuente: propia…………………….……………………....36
Figura {28} Fig. 28. Alerta de Eliminar materia prima Fuente: propia.…………….…….……………...36
Figura {29} Fig. 29. Vista materias primas con encabezado Fuente: propia.……………….…………....37
Figura {30} Fig. 31. Vista Reporte ejecutivo Fuente: propia……………………….…………...…….….37
Figura {31} Fig. 31. Vista Reporte ejecutivo Fuente: propia….……...…………………………………..39
Listado de Anexos
Anexo {1} Manual de usuario ……………..……………………………………………………….. 49
Anexo {2} Manual técnico y guía de instalación..………………………………………………….. 49
1. Introducción
LABORATORIO DE COSMÉTICOS COSDY.SAS es una empresa dedicada a la elaboración y
comercialización de productos cosméticos para el cuidado de las uñas, pelo y piel como lo son: esmaltes,
cremas, productos capilares, entre otros. Con más de 20 años de experiencia en el mercado, la empresa
cuenta con la sede principal ubicada en el barrio Zona industrial Montevideo en la ciudad de Bogotá, allí
se fabrican, procesan y distribuyen los diferentes productos.
Con el paso del tiempo se ha incrementado el margen de ventas en la empresa, lo que requiere un aumento
en los recursos y también el acrecentamiento de producto en stock, esto ha generado problemas en los
procesos de elaboración de la producción al no tener claro la cantidad de materia prima que se posee, así
como la cantidad de producto fabricado, lo que dificulta la toma de decisiones haciendo imprecisas las
cantidades en los procesos como por ejemplo, la cantidad de materia prima que deben pedir a los
proveedores y el volumen de producción que poseen actualmente para despachar pedidos. Adicionalmente,
la empresa no cuenta con un proceso definido para llevar a cabo las actividades de inventario.
Por tal motivo, la solución que se propone para la empresa es un aplicativo web que permita gestionar el
inventario de la empresa, dadas las condiciones de ésta se hace necesario que puedan acceder a esta
información en cualquier lugar, lo que hace ideal el desarrollo de una herramienta con un entorno web por
tanto, se propone el diseño de la página web responsivo para su uso en plataformas móviles como Android
para el manejo de los inventarios. Además de ello, para facilitar la gestión de inventarios por parte del
aplicativo se propone definir el proceso de inventarios de la empresa.
2. Planteamiento del problema
En LABORATORIO DE COSMETICOS COSDY.SAS el inventario se hace solo una vez al año, por lo
general al finalizar diciembre, éste define qué materias primas se deben pedir una vez inicie la jornada
laboral en enero del año siguiente. Dado que solo se hace un inventario, es responsabilidad de los empleados
de planta estar al tanto de las materias primas que se van agotando, este procedimiento funcionaba
correctamente cuando la empresa era pequeña y su personal era estable, ya que los empleados conocían el
funcionamiento de la empresa a profundidad y la demanda de pedidos era relativamente pequeña.
Con el paso del tiempo, la empresa fue adquiriendo mayor cuota de mercado lo que volvió inestable la
contratación de personal en planta, ya que en ciertas épocas del año se hacen contrataciones temporales de
recursos humanos para reforzar la producción en la planta, además de que la empresa amplió su catálogo
de productos y su volumen de producción aumentó, haciendo más complejo el seguimiento de producto
terminado y las materias primas, por tal motivo el modelo de gestión de inventarios se volvió muy ineficaz,
generando conflictos en el despacho de pedidos y por ende en la atención al cliente.
2.1 Descripción del problema
La empresa Laboratorio de cosméticos Cosdy S.A.S no posee un inventario confiable y preciso, lo que la
hace propensa a cometer errores a la hora de tomar decisiones, ocasionando pérdidas reflejadas en tiempo
y dinero, que afectan todas las áreas operativas de la empresa, especialmente la de producción.
2.2 Formulación del problema
¿Cómo mejorar con la ayuda de un software la gestión de inventarios de la empresa LABORATORIO DE
COSMETICOS COSDY.SAS para que sus inventarios sean más precisos, confiables y puedan facilitar la
toma de decisiones en las diferentes áreas de la empresa con bajo presupuesto y sin recurrir a empresas que
ofrecen software de uso general?
3. Justificación
La competitividad en el mercado cosmético es bastante alta, la toma de decisiones, junto a una adecuada
atención al cliente son factores indispensables para sobresalir. En la actualidad el mercado de cosméticos
en Colombia ha aumentado de forma significativa, durante el 2017 y 2018, el mercado cosmético tuvo un
aumento del 8% [2].
Para una adecuada toma de decisiones se hace necesario que una empresa tenga diversos mecanismos que
proporcionen información, como reportes, encuestas y evaluaciones de calidad e inventarios, éste último es
clave para mostrar el panorama de producción de una empresa.
En el caso particular de LABORATORIO DE COSMETICOS COSDY.SAS la empresa ha empezado a
tener problemas debido a la forma actual de gestionar los inventarios, pues son poco confiables e
imprecisos; Al no tener información clara, han comprado materia prima de más, ocasionando pérdidas.
También han permitido que se agoten las materias primas, lo que causa retrasos en el despacho de los
pedidos, afectando el servicio al cliente.
Automatizar la gestión de los inventarios permitirá a la empresa organizar toda el área de producción de
una mejor manera, ya que sabrán qué materias primas y productos en stock se necesitan, podrán contactar
los proveedores con más tiempo, teniendo oportunidad de reducir costos y de evitar compras innecesarias.
Esto impactará positivamente en las demás áreas como la administrativa, ventas, contable, etc.
Por tal motivo la empresa solicitó una vacante para desarrollar un producto de software que, de respuesta a
la problemática presentada, el proyecto tuvo un interés personal debido a que el desarrollo de software es
una de mis fortalezas y era muy acorde a mi plan de proyecto para pasantías.
Dado que se dispone de un tiempo total estimado de tres meses para la elaboración del proyecto, y ya que
los requerimientos del usuario son poco claros debido a la poca experiencia de la empresa automatizando
procesos, se optó por utilizar una herramienta de desarrollo ágil que en este caso será Scrum.
4. Objetivos
4.1 Objetivo General:
● Elaborar un software que permita la gestión de inventarios para las materias primas y productos
terminados de la empresa LABORATORIO DE COSMETICOS COSDY.SAS.
4.2 Objetivos Específicos
● Contribuir a la mejora de realización de inventarios mediante la definición de un proceso para la
gestión de inventarios en la empresa Cosdy S.A.S.
● Facilitar la gestión de inventarios mediante un aplicativo web cliente que permita visualizar los
inventarios existentes.
● Optimizar la gestión de inventarios en la empresa Cosdy S.A.S. para generar un impacto positivo
en las labores de la misma.
5. Marco referencial
5.1 Marco teórico
5.1.1 Inventario
Un inventario es la relación ordenada, detallada y valorada del conjunto de bienes o pertenencias que
constituyen el patrimonio de una persona, comunidad o empresa en un momento específico. Éste ayuda a
las empresas a tener un panorama claro de qué bienes o pertenencias poseen para así apoyarse en la toma
de decisiones [1].
Este concepto es relevante para el proyecto en cuestión ya que es el tema central del problema y la función
principal que el software tendrá, tener la definición clara de inventario permitirá una mayor precisión a la
hora de abordar el problema que la empresa Cosdy S.A.S está atravesando.
5.1.2 Java EE
Java Enterprise Edition, Java EE en adelante, es un conjunto de estándares de tecnologías dedicadas al
desarrollo de Java del lado del servidor. La plataforma Java EE consta de un conjunto de servicios, API y
protocolos que proporcionan la funcionalidad necesaria para desarrollar aplicaciones basadas en web de
varios niveles. Es decir, desarrollaremos aplicaciones empresariales distribuidas, con arquitecturas
multicapa, escritas en Java y que se ejecutan en un servidor de aplicaciones [3].
Java es uno de los lenguajes de programación más completos que existe en el mercado laboral, ofrece un
balance entre rendimiento, seguridad, comunidad activa y funcionalidad, utilizarlo en un formato
empresarial es mucho más apropiado para este proyecto ya que ofrece servicios adicionales enfocados en
un ámbito web que van de la mano con las intenciones de desarrollo del aplicativo.
Entre las distintas funcionalidades se encuentra JSP (Java Server Pages) que es una tecnología que permite
incluir código Java en páginas web. El denominado contenedor JSP (que sería un componente del servidor
web) es el encargado de tomar la página, sustituir el código Java que contiene por el resultado de su
ejecución, y enviarla al cliente. [7]. Así, se puede diseñar fácilmente la página web a realizar con partes
fijas y partes variables.
Figura 1. Estructura Java EE. Fuente: ACADEMIA CISCO ORACLE UTN CÓRDOBA,2015
5.1.3 PostgreSQL
PostgreSQL es un avanzado sistema de bases de datos relacionales basado en Open Source. Esto quiere
decir que el código fuente del programa está disponible a cualquier persona libre de cargos directos,
permitiendo a cualquiera colaborar con el desarrollo del proyecto o modificar el sistema para ajustarlo a
sus necesidades. PostgreSQL está bajo licencia BSD.
Un sistema de base de datos relacionales es un sistema que permite la manipulación de acuerdo con las
reglas del álgebra relacional. Los datos se almacenan en tablas de columnas y renglones. Con el uso de
llaves, esas tablas se pueden relacionar unas con otras [5].
El almacenamiento de los datos de los inventarios es una parte esencial para el aplicativo, ya que Cosdy
S.A.S no contiene una cantidad exagerada de productos y proveedores, es posible modelar una base de
datos usando un modelo relacional. PostgreSQL se especializa en ello, siendo código libre lo que permitiría
reducir costos que favorece las políticas de la empresa de no gastar demasiado en herramientas tecnológicas.
5.1.4 SCRUM
Scrum es un proceso en el que se aplican de manera regular un conjunto de buenas prácticas para trabajar
colaborativamente, en equipo, y obtener el mejor resultado posible de un proyecto. Estas prácticas se
apoyan unas a otras y su selección tiene origen en un estudio de la manera de trabajar de equipos altamente
productivos.
En Scrum se realizan entregas parciales y regulares del producto final, priorizadas por el beneficio que
aportan al receptor del proyecto. Por ello, Scrum está especialmente indicado para proyectos en entornos
complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco
definidos, donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales [8].
Como los requerimientos del sistema no son claros, se hace conveniente realizar entregas funcionales, para
que de esa manera los requerimientos vayan surgiendo a medida que se le agreguen más funcionalidades al
desarrollo del software.
Scrum será la metodología a utilizar en el proyecto, dado que la empresa posee poca experiencia con
desarrollo de software se hace más útil entregar una versión funcional al final de cada sprint, donde los
encargados puedan agregar sus requerimientos de una forma más clara y precisa.
5.1.5 BPMN
La notación BPMN especifica el proceso de negocio en un diagrama en el que es fácil de leer tanto para los
usuarios técnicos como para los usuarios de negocios. Es intuitivo y permite la representación de los detalles
complejos del proceso. BPMN sirve como un lenguaje estándar, poniendo fin a la falta de comunicación
entre el modelado de procesos y su ejecución. Por esta razón, se considera actualmente la lengua franca
para la comunicación en el mundo de los negocios [10].
BPMN es una herramienta útil para definir procesos de negocio, se utilizará para la definición del proceso
de inventario en la empresa Cosdy S.A.S ya que su modelo actual no está bien definido.
5.1.6 Apache Tomcat
Apache Tomcat, el servidor web usado en tradicionalmente para proyectos Java por su implementación de
servlets o páginas JSP, es otra de las aplicaciones que podemos desplegar fácilmente en los Servidores
Cloud de Arsys desde el Catálogo de Aplicaciones.
Apache Tomcat (o, sencillamente, Tomcat) es un contenedor de servlets que se puede usar para compilar y
ejecutar aplicaciones web realizadas en Java. Implementa y da soporte tanto a servlets como a páginas JSP
(Java Server Pages) o Java Sockets. Además, Tomcat es compatible con otras tecnologías como Java
Expression Language y Java WebSocket, del ecosistema Java.
Tomcat puede funcionar de manera autónoma como motor de aplicaciones web desarrolladas con Java,
aunque habitualmente se usa en combinación con otros productos como el servidor web Apache, para dar
un mayor soporte a tecnologías y aumentar sus características.
Tomcat en Servidores Cloud tomcatstack-stack: La instalación de Tomcat en la Nube en nuestros
Servidores Cloud se hace de manera realmente rápida. En pocos minutos se disponen de las últimas
versiones de los programas y librerías necesarias para desarrollar y, además, nos ahorra el tiempo que
tendríamos que dedicar a configurar todo el software para trabajar entre sí. Su actualización es también
sencilla, cuando surge cualquier nueva versión o update de seguridad de los programas involucrados.
Al contar con un servidor web Apache para trabajar junto con Tomcat, podemos asegurarnos una completa
gama de posibilidades de este potente servidor. La base de datos instalada es MySQL, pero se puede
perfectamente instalar cualquier otro sistema gestor de nuestra preferencia, como Oracle o PostgreSQL.
Además, la Nube nos garantiza la mayor escalabilidad y el control de gasto. Es posible comenzar con una
máquina con el mínimo de recursos necesarios y, sobre el mismo Servidor Cloud, aumentar su capacidad
cuando sea necesario soportar un alto tráfico. En resumen, podremos comenzar con un servidor pequeño y
luego ampliarlo, ahorrando la necesidad de realizar migraciones cuando el servidor se quede pequeño. [15].
5.1.7 Css
Es un lenguaje de diseño gráfico para definir y crear la presentación de un documento estructurado escrito
en un lenguaje de marcado. Es muy usado para establecer el diseño visual de los documentos web, e
interfaces de usuario escritas en HTML o XHTML; el lenguaje puede ser aplicado a cualquier documento
XML, incluyendo XHTML, SVG, XUL, RSS, etcétera. Te puede ayudar a crear tu propio sitio web. Junto
con HTML y JavaScript, CSS es una tecnología usada por muchos sitios web para crear páginas visualmente
atractivas, interfaces de usuario para aplicaciones web y GUIs para muchas aplicaciones móviles (como
Firefox OS).
CSS está diseñado principalmente para marcar la separación del contenido del documento y la forma de
presentación de este, características tales como las capas o layouts, los colores y las fuentes. Esta separación
busca mejorar la accesibilidad del documento, proveer más flexibilidad y control en la especificación de
características presentacionales, permitir que varios documentos HTML compartan un mismo estilo usando
una sola hoja de estilos separada en un archivo .css, y reducir la complejidad y la repetición de código en
la estructura del documento [16].
5.1.8 Bootstrap
Bootstrap es una biblioteca multiplataforma o conjunto de herramientas de código abierto para diseño de
sitios y aplicaciones web. Contiene plantillas de diseño con tipografía, formularios, botones, cuadros,
menús de navegación y otros elementos de diseño basado en HTML y CSS, así como extensiones de
JavaScript adicionales. A diferencia de muchos frameworks web, solo se ocupa del desarrollo front-end.
Bootstrap, originalmente llamado Blueprint de Twitter, fue desarrollado por Mark Otto y Jacob Thornton
de Twitter, como un marco de trabajo (framework) para fomentar la consistencia entre las herramientas
internas. Antes de Bootstrap, se usaron varias bibliotecas para el desarrollo de interfaces de usuario, lo que
generó inconsistencias y una gran carga de trabajo en su mantenimiento. [17]
5.1.9 Eclipse
Eclipse es una plataforma de software compuesto por un conjunto de herramientas de programación de
código abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente
Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma,
típicamente ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE
de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de
Eclipse (y que son usados también para desarrollar el mismo Eclipse).
Eclipse es también una comunidad de usuarios, extendiendo constantemente las áreas de aplicación
cubiertas. Un ejemplo es el recientemente creado Eclipse Modeling Project, cubriendo casi todas las áreas
de Model Driven Engineering.
Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para
VisualAge. Eclipse es ahora desarrollado por la Fundación Eclipse, una organización independiente sin
ánimo de lucro que fomenta una comunidad de código abierto y un conjunto de productos complementarios,
capacidades y servicios.
Eclipse fue liberado originalmente bajo la Common Public License, pero después fue re-licenciado bajo la
Eclipse Public License. La Free Software Foundation ha dicho que ambas licencias son licencias de
software libre, pero son incompatibles con Licencia pública general de GNU (GNU GPL) [18].
El SDK de Eclipse incluye las herramientas de desarrollo de Java, ofreciendo un IDE con un compilador
de Java interno y un modelo completo de los archivos fuente de Java. Esto permite técnicas avanzadas de
refactorización y análisis de código. Mediante diversos plugins estas herramientas están también
disponibles para otros lenguajes como C/C++ (Eclipse CDT) y en la medida de lo posible para lenguajes
de script no tipados como PHP o Javascript. El IDE también hace uso de un espacio de trabajo, en este caso
un grupo de metadatos en un espacio para archivos planos, permitiendo modificaciones externas a los
archivos. Además dispone de un Editor de texto con un analizador sintáctico. La compilación es en
tiempo real. Tiene pruebas unitarias con JUnit, control de versiones con CVS, integración con Ant,
asistentes (wizards) para creación de proyectos, clases, test, etc., y refactorización[19].
5.1.10 Python Dash
Escrito sobre Flask, Plotly.js y React.js, Dash es un framework de usuario para crear aplicaciones web
analíticas interactivas para la visualización de datos en Python puro o R. Proporciona cientos de tablas,
gráficos y controles de interfaz de usuario, por lo que se pueden construir aplicaciones analíticas altamente
personalizadas en sólo unas pocas líneas de código.
A través de un par de patrones simples, Dash abstrae todas las tecnologías y protocolos que se requieren
para construir una aplicación interactiva basada en la web. Es tan simple que es posible construir una
interfaz de usuario alrededor de un código en una tarde. Las aplicaciones de Dash se muestran en el
navegador web. Se pueden desplegar fácilmente y compartirlas a través de URLs. [20]
6 Marco metodológico
6.1 Metodología del desarrollo
6.1.2 Población
El desarrollo del producto de software para la gestión de inventarios será utilizado por el personal de la
empresa LABORATORIO DE COSMETICOS COSDY S.A.S, especialmente a los encargados del área de
producción, siendo el jefe de producción el administrador del sistema.
Adicionalmente el jefe de producción hará el rol de Scrum Master, y parte de Product owner ya que es el
representante de la empresa y por ende el que velará por sus intereses, el pasante hará parte del rol de
Product Owner ya que deberá ayudar a formar el product backloy será el Team que llevará a cabo las
historias de usuario en cada sprint.
6.1.3 Procedimiento
Para el desarrollo del software fue necesario estandarizar el proceso de manejo de inventarios, tal proceso
se realizará usando BPMN y se tuvo en cuenta el marco procedimental de Scrum, estos procesos son
explicados a continuación:
6.1.3.1 Etapa de definición de proceso de inventario:
Esta etapa permite la elaboración del proceso de manejo de inventario de la empresa el cual como se indicó
anteriormente fue realizado usando pautas de BPMN, en primer lugar, sólo se utilizó el proceso BPA para
definir el proceso de inventario y sus límites. No se tuvo en cuenta los procesos posteriores de BPMN ya
que están enfocados en la optimización.
6.1.3.2 Etapa de product backlog:
Una vez el proceso de inventarios de la empresa fue definido se procedió a realizar una reunión con los
involucrados en el proceso de inventarios para armar el product backlog, además de contar con una
capacitación sobre la elaboración de las historias de usuario.
6.1.3.3 Etapa de release backlog:
Una vez conformado en su totalidad el product backlog se procedió a filtrar aquellas historias de usuario en
niveles de prioridad, teniendo en cuenta dificultad, tiempo de implementación e importancia vital para el
aplicativo. Esta etapa finalizó con la clasificación mediante asignación de historias de usuario a los sprints.
6.1.3.4 Etapa de Sprints:
Es en esta etapa donde el desarrollo del aplicativo se hizo, consiste en un grupo de historias de usuario que
fueron agrupados para desarrollarse en un lapso de tiempo promedio de 15 días cada uno, para que de esta
manera se generarán entregas periódicas con funcionalidades y mejoras adicionadas, y concluyó con un
software entregable. Periódicamente se hicieron reuniones con el jefe de producción y el gerente para
entregar el resultado de cada sprint, para recoger sugerencias y modificaciones sujetas a las necesidades
que surgieron.
6.1.3.5 Etapa de pruebas o verificación y pruebas:
Esta etapa consiste en pruebas que corroboraron que el aplicativo es totalmente funcional, en términos de
funcionalidades y efectividad, se corrigieron errores, tanto en funcionalidades como en diseño que dio como
resultado un proyecto beta entregable.
6.1.3.6 Etapa de implementación
Consistió en la entrega del producto a LABORATORIO DE COSMETICOS COSDY.SAS que contiene el
código fuente y manual de usuario.
6.2 Metodología de la ingeniería
El diseño y desarrollo de este software, contempló usar entornos tanto móviles como web, por ello se
tuvieron en cuenta las limitaciones de recursos a los que se puede llegar a enfrentar, como memoria y
procesamiento. Por ende, este aplicativo contempló dentro de su diseño utilizar la menor cantidad de
procesos posibles, ocupar lo menos posible la memoria RAM, ser los más liviana posible en espacio en
disco rígido y contar con procesos de despliegue y mantenimiento [12]. Las metodologías ágiles (AUP) en
tiempos recientes se han implementado en aplicaciones web y es apropiado para entornos móviles como se
indica en [13]. En el presente documento se plasmará un caso práctico del uso de la metodología ágil
SCRUM en el desarrollo de un software que permita gestionar el inventario de la empresa LABORATORIO
DE COSMETICOS COSDY S.AS. Para garantizar una mayor calidad y mantenibilidad en el software se
implementarán algunos diseños UML que sean de apoyo en la implementación, y estos no violarán el
principio del manifiesto ágil [14].
7 Recursos
Según lo acordado durante esta pasantía, con la empresa LABORATORIO DE COSMETICOS
COSDY.SAS. No se obtuvo sueldo por la elaboración de este software, sin embargo, todos los gastos fueron
cubiertos por la empresa, incluyendo alimentación, transporte y las prestaciones sociales.
Hay algunos recursos intrínsecos como el seguro de estudiante que brinda la universidad, salarios a docente
revisor y demás que no se tuvieron en cuenta al no ser directamente relacionados con la pasantía. A
continuación, se muestra una tabla con la información a detalle de estos recursos:
Figura 2. Recursos. Fuente: Propia
8 Cronograma
A continuación, se muestra una tabla con el calendario dispuesto para el trabajo realizado
Tabla 1. Cronograma fuente: propia
En la tabla se especifica la distribución de las actividades en el tiempo estipulado, que es de 12 semanas en
las cuales:
● Al proceso de elaboración del estándar de proceso de manejo de inventario se le asignó un tiempo
estimado de dos semanas, que comprende desde el 10 de Julio al 24 de Julio del presente año.
● Para el desarrollo del Product backlog y el Release Backlog una semana, que comprende del 24 de
Julio hasta el 31 de Julio del 2019.
● Se realizaron en total cuatro (4) sprints de aproximadamente dos semanas cada uno, el lapso de
tiempo de los sprint comprende del 31 de Julio al 4 de septiembre, luego hubo una suspensión, y
para terminar el tiempo restante se reanudó del 12 al 19 de noviembre.
● Para las etapas de prueba y verificación, que comprende la corrección de errores detectados en el
proceso y realizar todos los cambios necesarios para pasar el proyecto de local a servidor, se asignó
una semana de tiempo para desarrollarlo, que comprende del 26 al 3 de diciembre.
● Etapa implementación: esta etapa comprende la elaboración de los manuales, la revisión del
contrato respecto al desarrollo conseguido del software, una capacitación del uso de la herramienta
y la entrega del producto según lo estipulado en el contrato, para lo cual se dio una semana que
comprende del 3 al 10 de diciembre, dando así fin al contrato.
9 Resultados y Discusiones
Se logró utilizar el modelo SCRUM para la construcción del aplicativo, usando como apoyo para la
construcción del diseño algunos de los modelos de UML.
Utilizando prácticas BPMN se realizó el proceso de inventarios de la empresa el cuál quedo plasmado en
un diagrama utilizando notación BPMN, el cual define el alcance de los inventarios desde el momento en
que se recibe un pedido hasta el momento en que se despachan los mismos, especificando los roles de las
personas que interactúan directamente con el aplicativo móvil y velando porque la funcionalidad que brinda
el mismo concuerde con cada rol.
Se desarrolló un aplicativo en lenguaje java, en su versión IEE 8, utilizando una base de datos relacional
implementada mediante postgreSQL para el desarrollo de los inventarios de la empresa Laboratorios de
cosméticos Cosdy S.A.S, aplicando un diseño responsivo proporcionado por la librería Bootsrap, el
aplicativo utiliza el modelo de diseño MVC, además de cumplir con parámetros transaccionales para evitar
el consumo excesivo de recursos al realizar peticiones a la base de datos, por ende cumple con la ligereza
necesaria para que el proyecto funcione adecuadamente en teléfonos móviles.
Para proporcionar compatibilidad con entornos móviles, se optó por hacer un diseño responsivo en lugar
de realizar un desarrollo completo para utilizar un aplicó propiamente de una plataforma móvil.
9.1 Definición de proceso de inventarios
Como se indicó anteriormente, la empresa LABORATORIO DE COSMETICOS COSDY S.A.S. no
contaba con un proceso de inventario definido lo que era un inconveniente a la hora de crear las historias
de usuario para el aplicativo, por esta razón, la primera etapa del desarrollo del aplicativo consiste en el uso
de BPMN para definir el proceso de inventarios dentro de la empresa. Para obtener el resultado final, se
hizo un modelo base y se programó una reunión con el jefe de producción y con el gerente de la empresa
donde se explicó a detalle la propuesta generada, ellos durante la reunión hicieron las correcciones y
sugerencias. A continuación, se mostrará el proceso de inventario resultante:
Nombre del Proceso: proceso de realización de inventarios de Cosdy S.A.S.
Participantes: Producción, ventas, despacho de pedidos, proveedores.
Definición: Actividades que la empresa realiza antes de registrar el inventario a la base de datos.
Descripción: El área de ventas genera la orden de pedidos del día, Despacho de pedidos confirma la
recepción de las órdenes de pedido y prosigue a despacharlos, si hay producto suficiente simplemente
despacha los pedidos, de lo contrario genera una orden de producción, el área de producción verifica si
tiene producto semielaborado, de tenerlo lo acondiciona y lo ubica en stock, de lo contrario lo fabrica y lo
acondiciona después para finalmente ubicarlo en stock. Cabe destacar que en cualquier momento puede
llegar los proveedores a dejar materia prima, de ser así es responsabilidad del área de producción almacenar
la materia prima en bodega, llenar formularios relacionados con control de calidad y notificar las nuevas
unidades de materia prima disponible, una vez termina la totalidad de los pedidos del día, fabricación llena
un formato informando la cantidad de materia prima que aún hay en bodega, y el área de despacho de
pedidos llena el formato informando la cantidad de producto terminado que hay en la parte de stock, ambos
formatos son entregados al jefe de producción quien se encargará de actualizar los datos del sistema
teniendo en cuenta los datos ofrecidos por los formatos.
Figura 3. Proceso de inventario BPMN. Fuente: Propia ,2019.
9.2 Etapa product backlog
Esta etapa inicia con una reunión en donde se realizó una capacitación breve en donde estuvo presente el
gerente, el jefe de producción, un auxiliar de planta y un despachador de pedidos, la capacitación consistió
en tres partes, la primera tenía que ver con la introducción a las historias de usuario, en donde se explicó
que era, como se hacía y para que se hacía, la segunda parte de la capacitación se enfocó en la creación de
usuarios, en donde se realizaron unos bocetos en hojas sueltas, y la tercera parte consistió en el pulimiento
de las historias de usuario. El resultado de esta reunión fue:
La primera historia de usuario es generada por el jefe de producción (figura 4), quién es el encargado de
solicitar materia prima cuando hay poca y de controlar la cantidad de existencias de producto terminado en
stock, por tanto, su petición se relaciona con la posibilidad de ver, crear, eliminar y editar registros
relacionados con los diferentes productos de materia prima así como su proveedor asociado para facilitar
el contacto con los mismos, se acordó de forma unánime que la vista debe mostrar de forma clara las
cantidades.
Figura 4. Primera historia de usuario Fuente: Propia ,2019
La Segunda historia de usuario (Figura 5) es generada por el Despachador de pedidos quién es el encargado
de recibir los pedidos que dejan los vendedores, dependiendo de la cantidad de pedidos del día se encarga
de generar órdenes de producción a planta. Por lo tanto, se hace indispensable que pueda ver de la forma
más simple la cantidad de producto terminado.
Figura 5. Segunda historia de usuario Fuente: Propia ,2019
La Tercera historia de usuario (Figura 6) es generada por el jefe de producción, quién es el encargado de
controlar la cantidad de existencias de producto terminado en stock. Por lo tanto, su petición se relaciona
con la posibilidad de ver, crear, eliminar y editar registros relacionados con los diferentes productos
terminados, se acordó de forma unánime que la vista debe mostrar de forma clara las cantidades de producto
terminado.
Figura 6. Tercera historia de usuario Fuente: Propia ,2019
La Cuarta historia de usuario (Figura 7) es generada por la gerente de la empresa, en donde resaltó la
importancia de poder ver en tiempo real las cantidades tanto de materia prima como de producto
terminado para ser usado en la toma de decisiones durante las reuniones. Por ende, la interfaz gráfica debe
ser muy amigable y de fácil interpretación.
Figura 7 Tercera historia de usuario Fuente: Propia ,2019
Durante la reunión se dejaron claras algunas pautas para hacer más fácil el desarrollo del proyecto,
algunas de ellas son:
● Las historias de usuario generadas en la reunión no serán las únicas que se harán durante el
proyecto, luego de la primera entrega se realizará otra reunión donde se busca pulir más el diseño
del sistema, de tal forma que se adapte de la mejor manera posible.
● El límite del proyecto está sujeto a los tiempos especificados en el cronograma, puesto que la
fecha de entrega es inamovible se tratará en lo posible de respetarla.
● Las primeras historias de usuario son muy generales, ya que hace falta madurar la idea tanto por
parte del desarrollo, como por parte del cliente.
● Algunas historias de usuario no fueron mostradas debido a que no son viables para realizar un
primer modelo y/o no se relacionan directamente con la funcionalidad del software, que es la
gestión de inventarios.
9.3 Etapa release backlog
Una vez se clasificaron las historias de usuario, se prosiguió a documentarlas y a desglosarlas en actividades
y el resultado es el siguiente:
Código Descripción Criterios de aceptación
HU-01
Jefe de producción
Función de gestión de materias
primas
(1,1A)
Como jefe de producción
quiero una vista que me permita
ver la cantidad de materia prima
y que permita hacer
modificaciones como crear,
modificar y eliminar registros,
con el fin de hacer
adecuadamente el proceso de
inventarios en la empresa y con
ello tener el control de la
producción en la planta.
Para que esta función de gestión
de materias primas sea
aceptada, esta debe poder
mostrar de manera clara cada
uno de los productos, junto a su
información pertinente como lo
puede ser el nombre, código,
descripción, proveedor,
presentación y demás
información que pueda ser de
interés.
También debe permitir
modificar los registros, para así
tener toda la información al día.
HU-02
Jefe de producción
Función de gestión de producto
terminado
(4-4A)
Como jefe de producción
quiero una vista que permita ver
la cantidad de producto
terminado, en stock, que hay
disponible en el momento, y
que tenga la posibilidad de
Para que esta función de gestión
de producto terminado sea
aceptada, debe poder contar con
una interfaz clara, donde se
puedan ver cada uno de los
productos que se manejan
crear, modificar y eliminar
datos del inventario, con el fin
de hacer un control correcto del
despacho de pedidos en la
empresa.
dentro de la empresa, sus
diferentes presentaciones
demás información de interés,
como descripción cantidad
entre otras. También debe
permitir modificar información
relacionada con los productos
terminados, para que de esta
manera la información siempre
sea lo más precisa posible.
HU-03
Gerente
Vista
inventario(Administrador)
(5-5A)
Como gerente de la empresa
quiero una vista que me permita
ver toda la información
relacionada con el inventario
tanto de materias primas como
de producto terminado, para así
poder tener información
completa, precisa y completa,
para poder analizar el estado de
la empresa y tomar decisiones
determinantes en la empresa.
Para que la vista del inventario
de la gerente sea aceptada esta
debe desplegar toda la
información de manera clara y
concisa, del inventario de
materias primas y productos
terminados. También debe
mostrar la fecha de
actualización de la información
de ambos inventarios.
HU-04
Gerente
Aspectos visuales
(5-5A)
Como gerente quiero que las
distintas vistas de la
herramienta cuenten con el
patrón de colores insignia de la
empresa, que muestre de
manera clara el logo y que
aparezca algunos datos como
los números de extensión
internos a las distintas áreas de
la empresa, para que sea
coherente con las demás
herramientas de software que
hay en la empresa.
la vista debe contar con una
interfaz que vaya acorde con los
colores insignia de la empresa
(magenta, blanco y morado) y
esta vista debe, en lo posible
desplegarse en entornos
móviles.
HU-05
Despachador de pedidos
Vista inventario (Simplificado)
(3-3A)
Como Despachador de pedidos
quiero una vista que me permita
ver rápidamente la cantidad de
productos que hay en stock para
poder cumplir con los pedidos
generados por los diferentes
vendedores de la empresa.
Para que la vista del inventario
del área de despacho de pedidos
sea aceptada esta debe
desplegar toda la información
de manera clara y concisa, del
inventario de productos
terminados. En lo posible debe
mostrar los productos de forma
que se pueda interpretar la
información de forma clara y en
el menor tiempo posible aun si
se pierde calidad visual
(estética). Tabla 2 Release Backlog, Fuente: Propia
9.4 Etapa Sprints
9.4.1. Sprint 0:
Sprint planning
Este sprint es un caso particular, puesto que no será entregado un modelo funcional, se realizará el modelo
de datos para el aplicativo, la arquitectura que maneja el aplicativo y se determinó el cómo se implementó
el servidor.
El desarrollo del Sprint concluye con una exhibición de la estructura de la base de datos impresa en papel,
en donde se aclararon unos puntos importantes y aumentaron los requerimientos del usuario, el más
importante se relaciona con la forma de mostrar la información de la unidad de medida de los productos,
ya que en un principio se concibió que se mostrará según el estándar mundial de unidades. Por ejemplo, si
el producto se medía por kilos, se representaba en el sistema como Kg, sin embargo, el software contable
que maneja la empresa tiene una nomenclatura definida por un código numérico. Por tal motivo, se creó
una tabla específica para manejar las unidades de medida, de tal forma que en caso que la codificación
cambie, el software se adapte fácilmente a estos cambios haciendo ligeras modificaciones técnicas.
Adicionalmente, solicitaron la creación de una tabla que permitiera almacenar información de los
proveedores, dicha tabla tiene propósitos de futuras funcionalidades. Como resultado el modelo de datos
quedó de la siguiente manera:
Fig. 8. Modelo de bases de datos, Fuente: propia
Proveedores
Tabla encargada de brindar información acerca del proveedor de los productos en caso de ser una materia
prima, donde se almacenará información como nombre, una descripción y el número de teléfono, como se
mencionó anteriormente, esta tabla no interviene directamente con el proceso de inventario, sin embargo,
fue agregada a petición de los usuarios ya que planean utilizarla para futuras aplicaciones agregadas al
software.
DetProvporProducto
Tabla de rompimiento donde se encuentra el detalle de los proveedores con el producto correspondiente
Producto
Tabla principal del aplicativo, contiene toda la información relacionada con los productos que serán
discriminados por tipo, que pueden ser materia prima y producto terminado.
TipProducto
Se agregó esta tabla para manejar, si se desean más tipos de productos aparte de materias primas y productos
terminados, esto surge a partir del deseo a largo plazo de la empresa de realizar un control sobre productos
de pruebas, realizadas por el departamento de química del laboratorio.
Unimedida
Tabla encargada de almacenar los códigos y equivalencias de las unidades de medida, realizada a petición
de los usuarios.
Usuario
Tabla encargada de manejar los perfiles de los usuarios, esto con el fin de determinar las funcionalidades
que estarán disponibles para cada uno de los usuarios.
Perfil
Tabla encargada de almacenar los roles de usuario definidos para la plataforma.
Usuperfil
Tabla de rompimiento, encargada de asignar un rol de usuario a los diferentes usuarios disponibles en el
sistema.
Se realizaron pequeñas pruebas para determinar el IDE a utilizar y se inclinó por utilizar Eclipse IDE en su
versión jee 2019 y en ella implementar el mvc (modelo vista controlador).
Fig. 9. MVC. Fuente: propia
En donde:
Modelo
Paquete que incluye aquellas clases relacionadas con funciones definidas como requerimientos funcionales,
tales como la autenticación, consultas y reportes
Controlador
Incluye clases encargadas de realizar comunicación entre diferentes elementos de software como lo es la
conexión a la base de datos y muchas de las consultas a la misma.
Vista
El paquete vista no existe en el término literal de la palabra, sin embargo, los elementos de la vista se
contienen en el web content que se conforma de los Servet del aplicativo, los cuales juntos con imágenes,
scripts y hojas de estilo determinan la estructura de cada una de las páginas del aplicativo.
Librerías
Se usan principalmente tres, una para la conexión con postgreSQL, otra con ApacheTomcat y otra con
Bootstrap, el cual será la librería utilizada para realizar el diseño responsivo. El uso de eclipse también se
debe a la facilidad para generar archivos en formato war el cual será usado por tomcat para subir el código
compilado del aplicativo usando el manager de Tomcat.
Fig. 10. Tomcat Manager. Fuente: Propia
El Sprint terminó con la presentación de todo lo anterior mencionado y tomó un tiempo de dos semanas,
donde conocer los procesos de la empresa fue un factor clave para determinar los diseños mostrados.
9.4.2. Sprint 1:
Sprint planning
En la reunión, se acordó realizar todas las ventanas por las que los diversos usuarios navegarán por el
aplicativo, para ello se definieron unos perfiles de usuario que son los siguientes:
ROL DESCRIPCIÓN
Administrador Es el encargado de crear usuarios y definirles un
perfil según sea la necesidad, también puede
eliminar usuarios.
Ejecutivo Podrá observar los inventarios tanto de materias
primas como de producto terminado, además de
contar con un informe sencillo que le permita
analizar los datos y tomar decisiones.
Jefe de producción Es el único rol con la funcionalidad de modificar
los inventarios de producto terminado y materia
prima.
Despachador de pedidos Tendrá una vista sencilla al inventario de
producto terminado
Se crearon unas plantillas para los tipos más comunes de páginas que se estimaron se iban a usar y son:
Pantalla Login
Es la pantalla inicial del sistema de inventarios, como es común en este tipo de pantallas solicitará un
usuario y una contraseña.
Fig. 11 Pantalla de inicio, Fuente: propia.
Pantallas Menú
Cuando un usuario tiene un perfil que tiene asignadas varias funcionalidades, estas serán seleccionables
mediante un menú
Fig. 12 Pantalla de menú, Fuente: propia.
Pantallas Inventario
Estas pantallas permitirán ver una tabla con los productos para el inventario en cuestión. Adicionalmente,
permite mediante botones acceder a las funcionalidades de añadir, editar, borrar y desplegar reporte, según
se defina en el perfil para el usuario, además podrá contar con un botón para salir de la vista de inventarios.
Fig. 13 Pantalla inventarios, Fuente: propia.
Pantallas para adicionar, editar, borrar registros
Estas ventanas contienen un formulario para obtener los datos necesarios para adicionar, editar, eliminar
registros de la base de datos de los inventarios
Fig. 14 Pantalla de formularios, Fuente: propia.
Teniendo en cuenta las plantillas más comunes, se prosiguió a armar el mapa de navegación para cada uno
de los usuarios, esto con el fin de controlar y delimitar los escenarios de comportamiento de los usuarios.
De esta manera el mapa de navegación para los distintos usuarios es:
Administrador
Fig. 15 Vista de navegación Fuente: propia.
Ejecutivo
Fig. 16 Vista de navegación ejecutiva Fuente: propia.
Jefe de producción
Fig. 17 Vista de navegación jefe de usuario Fuente: propia.
Despachador de pedidos
Fig. 18 Vista de navegación Fuente: propia.
El Sprint terminó con la presentación del programa con el mapa de navegación, durante la presentación se
sugirió modificar la forma de eliminar un registro, ya que actualmente eliminaba un registro
inmediatamente se presionaba un botón, la propuesta del usuario es mostrar los datos del registro a eliminar
antes de ser eliminado, y un mensaje de advertencia para confirmar que se desea eliminar el registro, esto
con el fin de evitar eliminar un registro por accidente. Además, el desarrollo del reporte administrativo el
cual para la fecha aún no estaba en desarrollo.
Este Sprint tuvo una duración de dos semanas.
9.4.3. Sprint 2:
Sprint Planning
En la reunión se acordó dar solución a las sugerencias relacionadas con la forma de eliminar un registro,
además se acordó aplicarle diseño a la plataforma. Como se indicó en las historias de usuario, el diseño del
sistema debe tener una combinación de colores similar a la de la página web de la empresa. Así como
incorporar el Login, ya que hasta el momento no se había implementado.
Siguiendo el orden de ventanas que se estipuló se iban a usar, aplicando formato y diseño quedaron de la
siguiente manera:
Pantalla Login
A petición de los usuarios resultantes de la reunión del Sprint Planning, se incorpora el logo de la empresa
y se centra los componentes del formulario, el resultado es el siguiente:
Fig. 19 Login de usuario con diseño Fuente: propia.
Pantallas Menú
Para mejorar la experiencia de usuario se optó por dejar un tamaño considerable a los botones que
componen los menús, centrados tal como pasa con los componentes del Login.
Fig. 20 Menú con diseño Fuente: propia.
Pantallas Inventario
Es en estas pantallas donde se realiza la mayor cantidad de cambios, se añade un formato a las tablas para
que se vean organizadas, se reemplazan enlaces para dirigirse a las funciones de agregar, modificar y
eliminar registros por botones con colores característicos, que mejoran de manera significativa la
experiencia de usuario y se configuraron las tablas para que aparezca un scrollbar para evitar un tamaño
excesivo de las tablas de inventarios (figura 21)
Fig. 21 Inventario con diseño Fuente: propia.
Pantallas para adicionar, editar y borrar registros
Para los formularios de adición, edición y eliminación de registros, se optó por una configuración centrada
y muy simple, con cajones de gran tamaño, así como los botones, esto para facilitar así su diligenciamiento.
Fig. 22 Login de usuario con diseño Fuente: propia.
El Sprint terminó con la presentación del programa con la interfaz implementada, durante la presentación
se sugirió añadir unos iconos en los cajones del Login para mejorar su estética, además de añadir más alertas
cuando el usuario agregue, modifique o elimine un registro, además de agregar un encabezado en algunas
de las páginas ya que el logo y nombre de la empresa aparecen muy poco, el diseño en su mayoría fue
aprobado por los miembros de la reunión además de su navegabilidad, el tiempo de desarrollo del Sprint
fue de 15 días como se acordó.
9.4.4. Sprint 3:
Sprint Planning
Ésta fue la última reunión de este tipo, en el que se incorporaron las sugerencias dadas en la entrega del
anterior Sprint, además de incorporar la funcionalidad del reporte ejecutivo. De esta manera se obtuvo:
Pantalla Login
Se agregaron los iconos solicitados y se añadió una ligera transparencia en el área morada.
Fig. 23 Login de usuario con diseño de iconos Fuente: propia.
Pantallas de agregar y eliminar usuario
Se agregaron las alertas al añadir un usuario, así como para eliminarlos, donde se debe hacer clic en aceptar,
de lo contrario no efectuara cambio alguno, esto con el fin de evitar accidentes.
Fig. 24 Alerta de añadir usuario Fuente: propia.
Fig. 25 Alerta de Eliminar usuario Fuente: propia.
Pantallas de Adicionar, Modificar, y Eliminar
Aplica para las materias primas y los productos terminados, se generaron alertas para notificar la correcta
inserción de un producto, y una alerta en caso de editar y eliminar, estas últimas sólo ejecutan la acción si
se da clic en aceptar.
Fig. 26 Alerta de Añadir materia prima Fuente: propia.
Fig. 27 Alerta de materia prima Fuente: propia.
Fig. 28 Alerta de Eliminar materia prima Fuente: propia.
Pantallas Inventario
Se agregó un encabezado donde aparece el nombre de la empresa, y queda disponibilidad de añadir
información de contacto, además del logo.
Fig. 29 vista materias primas con encabezado Fuente: propia.
También fue removido el Scrollbar configurado para las tablas, ya que en entornos móviles
generaba conflictos de desplazamiento.
Fig. 30 vista materias primas con encabezado (B) Fuente: propia.
Informe Ejecutivo
Se agregó el informe ejecutivo utilizando el framewok para manipulación y graficación de datos. Dash, de
esta manera se obtuvo un reporte tipo “Dashboard” el cual facilita la visualización de los datos más
relevantes para el sector ejecutivo, como lo es saber qué cantidades hay por producto, qué cantidades hay
disponibles en una determinada presentación, y comparativas sobre cual presenta el mayor volumen de
producción etc.
De esta manera el reporte contiene una serie de gráficas que son:
● Gráfica de torta: en donde se puede visualizar la totalidad de los productos junto a la cantidad total
de unidades disponibles, esta grafica junta todas las unidades de un mismo producto, por lo que
permite mostrar un panorama general del estado de producción actual de la empresa
● Gráfica de barra: esta grafica toma en cuenta los productos más importantes en términos de margen
de ventas, estos son:
o Removedor de esmalte Azul
o Removedor de callos
o Removedor de cutícula
o Dilusor de esmalte
Por defecto, se mostraron las cantidades disponibles de cada producto de los anteriores
mencionados en 30 cc, sin embargo, el reporte cuenta con un filtro que permite seleccionar
cualquiera de las presentaciones existentes.
● Grafica de línea: esta gráfica sirve a manera de comparativo, y permite observar todos los datos
que arroja la gráfica de barras, pero de una forma más panorámica, puesto que muestra las
cantidades por cada uno de los valores de los productos mencionados.
Dicho reporte se puede visualizar en cualquier navegador y no necesita muchos recursos del sistema. Dado
que fue desarrollado en Python, se usaron herramientas para la trata de información como pandas, el cual
permite extraer información directamente de la base de datos y almacenarlo en un dataframe, de forma que
el consumo de memoria y el tiempo en red sea el menor posible. También se utilizó Flask, una herramienta
muy útil para gestionar aplicativos webs. Por último se utiliza una conexión a la base de datos, brindada
por psycogp, un gestor de conexiones muy liviano pero poderoso que permite hacer transacciones de
grandes volúmenes de información, sin mayores complicaciones. Todas las herramientas usadas se
implementaron, además, pensando en el crecimiento de la empresa, dado que un desarrollador futuro, no
tendrá problemas en extender el reporte puesto que todas las herramientas, incluida Python cuentan con una
gran comunidad que día a día facilita más la labor de implementar todas las herramientas en un solo sistema.
Fig. 31 Vista Reporte ejecutivo Fuente: propia.
El Sprint terminó con la presentación del programa con los cambios implementados, y la función de
informe ejecutivo funcionando, además de incorporar la función de Login, de esta manera concluye la
etapa de Sprint, aclarando que hay muchos aspectos mejorables y que se verán a detalle más adelante.
9.5 Etapa de pruebas o verificación y pruebas:
Objetivo: Verificar que el software de gestión de inventarios para la empresa laboratorio de cosméticos
Cosdy cumple con los requerimientos funcionales definidos según las historias de usuario elaboradas
previamente.
FUNCIONALIDAD CUMPLE NO
CUMPLE
Observaciones/Referencias
1. Función para agregar y eliminar
usuarios
Descripción: el sistema permite agregar
y eliminar usuarios
Operación: acceder a la función
“Agregar Usuarios” y “Eliminar
Usuarios”.
Resultado: el sistema agrega y elimina
usuarios, generando las respectivas
alertas para mejorar la interfaz de
usuario.
X
2. Función para visualizar el
inventario ejecutivo
Descripción: el sistema permite
visualizar tanto el inventario de
materias primas como de producto
terminado.
Operación: acceder al perfil ejecutivo y
debe aparecer una vista que contiene la
vista de inventario ejecutivo
Resultado: se despliega a manera de
tabla los elementos de los inventarios de
materia prima y producto terminado.
X
3. Función para gestionar materia
prima
X
Descripción: el sistema permite
visualizar el inventario de materias
primas a manera de tabla, junto a los
botones que permiten modificar el
inventario.
Operación: acceder al menú del perfil
jefe de producción y seleccionar
“Inventario materias primas”
Resultado: los productos del inventario
de materia prima se mostrarán, junto a
unos botones que permiten agregar, y
editar y eliminar cada uno de los
productos del inventario de materias
primas
4. Función para agregar
productos al inventario de
materia prima.
-Código del producto: por estándar de la
empresa el código debe empezar por MP
seguido de un número consecutivo.
-Descripción: el sistema permite agregar
productos al inventario de materias
primas.
-Operación: acceder a la función
“Agregar materias primas” mediante un
botón ubicado en la función “Gestionar
materias primas”.
-Resultado: despliega la vista “Agregar
materia prima”, en ella se desplegará un
formulario que contiene toda la
información necesaria para adicionar la
materia prima, para ser diligenciado en
los siguientes campos:
-Presentación: campo estrictamente
numérico y en él, se agrega el tamaño o
cantidad en el que viene el producto por
unidad.
X
- Cantidad: diligenciar la cantidad de
unidades que hay disponibles en área de
producción.
Al dar clic en el botón “Guardar” el
sistema genera un mensaje que indica
que la operación fue exitosa.
5. Función para editar productos al
inventario de la materia prima.
Descripción: el sistema permite editar
productos al inventario de materias
primas.
Operación: acceder a la función “Editar
materias primas” mediante un botón
ubicado en la función “Gestionar
materias primas”, en cada uno de los
registros que allí aparecen.
Resultado: despliega la vista “Editar
materia prima”, en ella se desplegará un
formulario que contiene toda la
información necesaria para editar la
materia prima, con la información que
actualmente tiene el producto, con
opción de modificarse en los siguientes
campos:
-Presentación: campo estrictamente
numérico y en él, se agrega el tamaño o
cantidad en el que viene el producto por
unidad.
- Cantidad: diligenciar la cantidad de
unidades que hay disponibles en área de
producción.
Al dar clic en el botón “Guardar” el
sistema genera un mensaje que indica
que la operación fue exitosa
X
6.Función para eliminar productos
del inventario materias primas.
Descripción: el sistema permite
eliminar productos del inventario de
materias primas.
Operación: acceder a la función
“Eliminar materias primas” mediante un
X
botón ubicado en la función “Gestionar
materias primas”, en cada uno de los
registros que allí aparecen.
Resultado: despliega la vista “Eliminar
materia prima”, en ella se desplegará un
formulario que contiene toda la
información necesaria para Eliminar la
materia prima, con la información que
actualmente tiene el producto en los
siguientes campos:
-Presentación: campo estrictamente
numérico y en él se agrega el tamaño o
cantidad en el que viene el producto por
unidad.
- Cantidad: diligenciar la cantidad de
unidades que hay disponibles en área de
producción.
Al dar clic en el botón “Eliminar” el
sistema genera una alerta que confirma
la eliminación del producto, si no se da
clic en “Aceptar” el sistema no
eliminará el producto.
7. Función para gestionar productos
terminados
Descripción: el sistema permite
visualizar el inventario de productos
terminados a manera de tabla, junto a los
botones que permiten modificar el
inventario.
Operación: acceder al menú del perfil
jefe de producción y seleccionar
“Inventario producto terminado”
Resultado: los productos del inventario
de producto terminado se mostrarán,
junto a unos botones que permiten
agregar, y editar y eliminar cada uno de
los productos del inventario de
productos terminados.
X
8. Función para agregar productos al
inventario de producto terminado.
X
-Código del producto: por estándar de la
empresa el código debe empezar por PT
seguido de un número consecutivo.
-Descripción: el sistema permite agregar
productos al inventario de producto
terminado.
-Operación: acceder a la función
“Agregar producto terminado” mediante
un botón ubicado en la función
“Gestionar materias primas”.
-Resultado: despliega la vista “Agregar
materia prima”, en ella se desplegará un
formulario que contiene toda la
información necesaria para adicionar la
materia prima, para ser diligenciado en
los siguientes campos:
-Presentación: campo estrictamente
numérico y en él se agrega el tamaño o
cantidad en el que viene el producto por
unidad.
- Cantidad: diligenciar la cantidad de
unidades que hay disponibles en área de
producción.
Al dar clic en el botón “Guardar” el
sistema genera un mensaje que indica
que la operación fue exitosa.
9. Función para editar productos al
inventario del producto terminado.
Descripción: el sistema permite editar
productos al inventario de productos
terminados.
Operación: acceder a la función “Editar
productos terminados” mediante un
botón ubicado en la función “Gestionar
productos terminados”, en cada uno de
los registros que allí aparecen.
Resultado: despliega la vista “Editar
producto terminado”, en ella se
desplegará un formulario que contiene
toda la información necesaria para
X
editar el producto terminado, con la
información que actualmente tiene el
producto, con opción de modificarse en
los siguientes campos:
-Presentación: campo estrictamente
numérico y en él se agrega el tamaño o
cantidad en el que viene el producto por
unidad.
- Cantidad: diligenciar la cantidad de
unidades que hay disponibles en área de
producción.
Al dar clic en el botón “Guardar” el
sistema genera un mensaje que indica
que la operación fue exitosa.
10.Función para eliminar productos
del inventario producto terminado.
Descripción: el sistema permite
eliminar productos del inventario de
producto terminado.
Operación: acceder a la función
“Eliminar producto terminado”
mediante un botón ubicado en la función
“Gestionar producto terminado”, en
cada uno de los registros que allí
aparecen.
Resultado: despliega la vista “Eliminar
producto terminado”, en ella se
desplegará un formulario que contiene
toda la información necesaria para
eliminar el producto terminado, con la
información que actualmente tiene el
producto en los siguientes campos:
-Presentación: campo estrictamente
numérico y en él se agrega el tamaño o
cantidad en el que viene el producto por
unidad.
- Cantidad: diligenciar la cantidad de
unidades que hay disponibles en área de
producción.
Al dar clic en el botón “Eliminar” el
sistema genera una alerta que confirma
X
la eliminación del producto, si no se da
clic en “Aceptar” el sistema no
eliminará el producto.
11.Función para visualizar el
inventario despachador de pedidos.
Descripción: el sistema permite
visualizar el inventario de producto
terminado.
Operación: acceder al perfil ejecutivo y
debe aparecer una vista que contiene la
vista de inventario ejecutivo
Resultado: se despliega a manera de
tabla los elementos de los inventarios
de producto terminado.
X
12. Función para visualizar reporte
ejecutivo.
Descripción: el sistema permite
visualizar un gráfico con información
de producción de los productos más
vendidos, que son:
-Removedor de esmalte (Azul)
-Removedor de cutícula
-Removedor de callos
-Dilusor de esmalte
X
13. Función pantalla inicial.
Descripción: la función permite
ingresar al sistema mediante una
identificación por usuario y contraseña,
con el fin de proporcionar seguridad de
acceso e identificar el tipo de usuario,
para así determinar las funciones del
sistema al que tiene acceso.
X En pruebas móviles, los
iconos dentro de los cajones
de usuario y contraseña se ven
centrados y no en la esquina
izquierda como en entorno de
escritorio.
Realizado por Nombre: Alejandro Díaz Pereira
Aprobado por Nombre: Juan Osorio Cuoto
Fecha 13-Dic-2019
Comentarios:
Tabla 4. Pruebas de calidad. Fuente: Propia
9.6 Etapa de implementación
El proyecto se montó en un servidor, donde la base de datos y el proyecto en war quedaron alojados en el
mismo server, el enlace de acceso fue proporcionado a los diferentes usuarios de la empresa. Además de
ello, se utilizó el software con supervisión durante una semana para ayudar a los mismos a familiarizarse
con el aplicativo y a su vez para demostrar la eficacia que puede brindar un proceso automatizado frente a
uno manual.
Fue suministrado a la empresa un cd que contiene los manuales técnicos y de usuario del aplicativo, junto
al código fuente.
10 Conclusiones
En conclusión, se logró el desarrollo de un software funcional en una fase beta para la gestión de inventarios,
el cual fue desarrollado en su mayor parte en java, usando JSP, también fueron utilizados lenguajes de
apoyo como Python y Javascript, dicho software permitió mejorar el proceso de inventarios tanto de
materias primas como de producto terminado de la empresa LABORATOROI DE COSMETICOS COSDY
S.A.S. el cuál era el objetivo general.
Adicionalmente, se optó por definir un proceso de inventarios, ya que la empresa LABORATORIO DE
COSMETICOS COSDY S.A.S. no contaba con un proceso claro y documentado, por ende, se obtuvo la
definición del proceso de inventarios y se aprobó con gerencia, departamento de calidad y departamento de
producción previo al desarrollo del aplicativo, cumpliendo así con el primer objetivo específico.
Además, cumpliendo a cabalidad con el tercer objetivo, el diseño del aplicativo fue desarrollado utilizando
una librería llamada Bootstrap que permitió realizar un diseño responsivo, por lo tanto, puede ser utilizado
en entornos móviles o PC.
En resumen, el producto es funcional y cumple aceptablemente con los requerimientos, sin embargo, se
entrega como producto beta con algunas recomendaciones.
11 Recomendaciones
Finalmente, se hacen algunas recomendaciones puesto que el proyecto se entrega como un producto beta,
puesto que como se estableció en las limitaciones los recursos económicos y tecnológicos estaban ligados
directamente con las políticas económicas de la empresa. El proyecto no contó con una gran inversión, sin
embargo, es un producto funcional que solo requerirá algunas mejoras como: mejorar el diseño responsivo
ya que en un entorno móvil algunos componentes se cambian de lugar, afectando la estética del sistema,
aunque sin afectar la parte funcional, diseñar un sistema de ingreso que permita un control más
personalizado de acceso a la plataforma. Ya que no hay un control en el servidor sobre los accesos, mejorar
la seguridad, ya que es posible acceder a funciones que no están disponibles para un usuario modificando
el enlace, diseñar un informe ejecutivo más avanzado y que se pueda ver en tiempo real.
Mejorar el sistema de alertas que posee el aplicativo al ejecutar una función que realice cambios relevantes
para mejorar la experiencia de usuario, implementar un diseño más elaborado con ayuda de un diseñador
gráfico, de tal forma que al pasar a un entorno móvil la visualización cambie completamente y permita una
experiencia de usuario completamente móvil para mejorar la experiencia del usuario.
12 Bibliografía
[1] Consejo de redacción de Siigo «¿Qué es un inventario?» (2018, enero 8), Siigo soy un empresario
[Online] Disponible en: https://www.siigo.com/blog/contador/que-es-un-inventario/
[2] Cámara de Comercio de Bogotá (CCB), «Industria cosmética y de aseo retoma rumbo de crecimiento»
(2018, marzo 3), [Online] Disponible en: https://www.ccb.org.co/Clusters/Cluster-de-
Cosmeticos/Noticias/2018/Marzo-2018/Industria-cosmetica-y-de-aseo-retoma-rumbo-de-crecimiento
[3]J. Pavon, « JAVA EE Aplicaciones web- Sistemas web» Departamento de software e inteligencia
artificial, Universidad Complutense de Madrid, 2013.
[4] Docs Oracle, «Java Platform, Enterprise Edition» Release 7 , 2014.
[5] P. Denzer(2017) « PostgreSQL» Universidad Técnica Federico Santa María, Febrero 2016
[6] A. Oliveros, F. Danyands, M. Mastropietro, «Prácticas de Ingeniería de Requerimientos en el desarrollo
de aplicaciones Web » Proceedings of the XVII Ibero-American Conference on Software Engineering
(CIBSE2014), Enero 2014.
[7] Departamento Ciencias de Computo e Inteligencia Artificial «JSP Basico » Universidad de granada,
Junio 2010.
[8] X. Albaladejo «Que es SCRUM »[Online], Disponible en : https://proyectosagiles.org/que-es-scrum/,
Mayo 2017.
[9] J.Palacio. «SCRUM Manager I las reglas de Scrum» Scrum Manager 2 edición, 2015.
[10]. S. White, PhD D. Myers «BPMN guía de referencia y modelado» Future Strategies inc 1 Edición.
[11]. Dirección de Planeación y Evaluación «Modelado de procesos con BPMN»| Universidad de los
Andes, enero 2016.
[12]. T. Vithani and A. Kumar, “Presentation 5. A comprehensive mobile application development and
testing lifecycle”. 2014 IT Professional Conference, 2014, pp. 1–3.
[13] J. Núñez Mori “Usabilidad en metodologías ágiles” universidad politécnica de Madrid facultad de
informática, noviembre 2013.
[14] A. Babativa, P. Briceño, C. Nieto “desarrollo ágil de una aplicación para dispositivos móviles. Caso
de estudio: Taxímetro Móvil”. Universidad Distrital Francisco José de Caldas Ingeniería, vol. 21 num. 3,
pp 260-275, 2016.
[15] Apache Foundation «about tomcat» [Online], Disponible en: www.tomcat.apache.org,2019.
[16] Mozilla Developer Network. «CSS developer guide», [Online], Disponible en:
https://developer.mozilla.org/es/docs/Web/CSS.
[17] Blueprint community (css) «Blueprint – css » [Online], Disponible en: www.blueprintcss.org.
[18] Eclipse Foundation «what´s Eclipse» [Online], Disponible en: www.eclipse.org/eclipseide.
[19] Free software Supporter «Ecplipse Public License » [Online], Disponible en:
http://www.gnu.org/licenses/license-list.html.
[20] Dash community «who is dash » [Online], Disponible en: https://www.plot.ly/dash/open-source/
13 Anexos
1. Manual de usuario
MANUAL DE USUARIO
SOFTWARE GESTOR DE INVENTARIOS PARA LABORATORIO DE COSMETICOS COSDY
S.A.S.
LABORATORIO DE COSMETICOS COSDY S.A.S.
CONVENCIONES:
FUNCIONALIDAD GENERAL
Los desarrollos hechos se pueden usar en los navegadores de internet más comunes, a través de formularios
o páginas que contiene botones, cajas y vínculos para recibir los requerimientos del usuario y mostrar la
información solicitada. Para los efectos de esta guía, se usará el término formulario como sinónimo de
formato, forma, página, URL, etc. La navegación sobre los desarrollos se describe a continuación.
C1. FORMULARIOS
Son los formatos que permiten al usuario consultar o ingresar los datos con la Herramienta. Maneja varios
tipos de formatos que estandarizan la presentación y facilitan su uso. Los formularios definidos son:
C1.1 ENTRADA
Para entrar al módulo es necesario tener en enlace de acceso, en alguno de los navegadores de internet tal
como Explorer, Chrome, Mozilla, Opera; aparece el formulario que se muestra a continuación.
Este es el formulario inicial, este formato le permite entrar al Sistema, solicita lo siguiente:
● Identificación del usuario. Valor alfanumérico que identifica de manera única a cada usuario. Este
es un valor alfanumérico (letras y/o números). Este Usuario es una información visible al público.
● Contraseña: Es un valor alfanumérico asignado inicialmente por el administrador del sistema.
Una vez el usuario ingresa la anterior información debe dar un clic sobre el botón <Ingresar>. El Sistema
verifica:
- Si es un usuario válido y la clave corresponde.
En el caso de que el usuario no sea válido el sistema despliega un mensaje "USUARIO NO
AUTORIZADO", esto significa que el usuario no está registrado. Si la clave no corresponde se
despliega el mensaje "CLAVE INVALIDA",
C1.2 BIENVENIDA
En este formulario se muestran los sub-módulos a los que tiene acceso el usuario en la franja de color azul.
Adicionalmente, muestra los objetivos generales del módulo y sus beneficios.
El menú contiene los accesos a los que el usuario tiene permitido ingresar.
C1.3 INVENTARIO
El formulario INVENTARIO despliega toda la información relacionada con el inventario, si el usuario
posee los permisos necesarios podrá tener acceso a acciones para modificarlo, de lo contrario solo podrá
observar la manera de consulta.
C1.4 ATRIBUTOS
El usuario puede utilizar este formato para gestionar los inventarios, la vista tiene los componentes
necesarios para hacer cambios a los registros dentro de los inventarios correspondientes.
Este formato tiene los siguientes componentes por cada campo del registro:
- Campos: Se presenta una columna, en la primera el usuario puede seleccionar los campos que
desea le presente en el formulario.
C1.8 BOTONES:
A continuación, se muestran los diferentes botones que se utilizan, cada uno con su descripción:
Botón Descripción
Permite realizar cambios en los registros de los
inventarios, bien sea editándolos o añadiendo
nuevos registros.
Permite salir a las ventanas anteriores
Permite realizar cambios en los registros de los
inventarios, bien sea editándolos o añadiendo
nuevos registros.
Despliega una tabla con información relevante para
poder modificar algún campo
Este botón permite acceder a una página que
contiene una gráfica comparativa entre los
productos más vendidos de la empresa, separado por
presentaciones.
Permite volver a la vista de Login.
Permite acceder a un formulario para ingresar un
registro al inventario.
Permite acceder a un formulario para editar un
registro al inventario.
Permite acceder a un formulario para eliminar un
registro al inventario.
1. INTRODUCCIÓN
El sistema gestor de inventarios tiene por objetivo permitir a LABORATORIO DE COSMÉTICOS
COSDY S.AS. disponer de un sistema que le permita automatizar el proceso de inventarios, para así obtener
mejores resultados en los demás procesos que estén ligados a los inventarios.
Este módulo permite:
- Crear, Editar, Eliminar registros de los inventarios.
- Consultar los inventarios
- Visualizar un reporte ejecutivo a manera de gráfica.
- Agregar y eliminar usuarios
Se aclara que de ninguna manera el software pretende automatizar completamente el proceso, es más bien
una herramienta complementaria que permite un uso más eficiente,
a) Crear Editar Eliminar
Para acceder a estas funciones, el usuario debe tener los permisos necesarios, y aparecerán a manera
de botones en las ventanas de inventarios, lo que llevará a un formulario que contiene los siguientes
campos:
● Código del producto: por convención se tiene que debe iniciar con MP si es una materia
prima o PT si es un producto terminado, seguido de un consecutivo
● Nombre del producto: se debe ingresar un nombre el cual puede ser alfanumérico, no se
recomiendan caracteres especiales.
● Presentación: es un campo numérico donde se debe colocar el tamaño que tiene el producto
individualmente.
● Unidad de medida: lista desplegable que permite seleccionar la manera en que es medido
el producto, según el sistema internacional
● Tipo de producto: este campo no se debe diligenciar, sin embargo, puede que este
preseleccionado en dos opciones que pueden ser materias primas o producto terminado
según sea el caso.
● Cantidad: campo numérico donde se deben colocar la cantidad de unidades disponibles.
b) Ver inventarios:
Tiene la función de permitir ver los registros actuales que tiene el inventario, bien sea para materias
primas como para producto terminado, estas funciones de consulta están disponibles para la
mayoría de roles de usuarios y su función es proporcionar información de cantidades y productos
disponibles en el momento.
c) Ver reporte ejecutivo:
Función exclusiva para los roles ejecutivos, proporciona una gráfica con los productos que más
comercialización poseen.
Es importante aclarar que el informe no es dinámico, quiere decir que no permite añadir más
productos de los que allí aparecen, lo que conlleva que realizar un cambio en el reporte requerirá
de conocimientos técnicos en programación.
2. Crear, Eliminar, Editar
Para ello se debe acceder a la función de inventarios.
Luego seleccionar el botón “+ agregar usuario”, o en cada uno de los registros se permite bien sea “Editar”
o “Eliminar”, al hacer clic se desplegará un formulario.
Se debe ingresar la información correspondiente en los campos, en caso que la operación deseada sea
adicionar. Si la operación es editar, aparecerán los campos con la información que el registro tiene, en ese
caso de deben cambiar los datos de los campos que se deseen. Y finalmente, si la operación seleccionada
es Eliminar, los campos solo mostrarán la información del campo sin permitir modificar nada.
Si la información está bien diligenciada al igual que el proceso, hacer clic en guardar o borrar (Según sea
el caso) y el sistema proporcionará un mensaje indicando si el proceso se realizó de manera correcta.
3. Visualizar inventario
La mayoría de usuarios tienen esta función disponible y para acceder a ella solo debe ingresar por el Login
y según sea el usuario, se mostrará inmediatamente los inventarios, en caso de ser jefe de producción,
aparecerá un menú donde debe seleccionar qué inventario desea.
Aparecerá una pantalla como la siguiente:
4. Visualizar reporte
Esta función permite desplegar la gráfica de los productos más vendidos en la empresa, junto a sus
presentaciones disponibles. Para ingresar, se debe seleccionar el botón “Ver gráfico producción” y se
despliega la gráfica
2. Manual técnico
MANUAL TÉCNICO Y GUÍA DE INSTALACIÓN
SOFTWARE PARA LA GESTIÓN DE INVENTARIOS PARA LA EMPRESA LABORATORIO
DE COSMÉTICOS COSDY S.A.S.
COSDY S.A.S.
INTRODUCCIÓN
Este manual describe los pasos necesarios para que la persona encargada del área de sistemas y/o cliente
con los conocimientos técnicos necesarios pueda realizar la instalación del aplicativo.
Es necesario resaltar que se nombran las especificaciones mínimas de hardware y software con las que se
debe contar para que no se presenten novedades durante la instalación del aplicativo.
1. REQUERIMIENTOS TÉCNICOS
REQUERIMIENTOS MÍNIMOS DE HARDWARE
Procesador: 2 Núcleos (CORE 2).
Memoria RAM: 4 Gigabytes (GB).
Disco Duro: 40 Gigabytes (GB).
REQUERIMIENTOS MÍNIMOS DE SOFTWARE
Privilegios de administrador.
Sistema Operativo: CENTOS 6, UBUNTU 14.06/16.04/18.04, WINDOWS SERVER.
2. HERRAMIENTAS UTILIZADAS PARA EL DESARROLLO
2.1 JAVA EE 6
[1] La plataforma Java EE está desarrollada a través del Java Community Process (JCP - Proceso de la
comunidad de Java), el cual es el responsable de todas las tecnologías Java. Grupos de expertos compuestos
por un grupo social interesado han creado las Java Specification Requests (JRS - Solicitudes de
especificación de Java) para definir las diferentes tecnologías de Java EE. El trabajo de la comunidad de
Java bajo el programa JCP ayuda a asegurar los estándares de estabilidad y la compatibilidad
multiplataforma de las tecnologías de Java.
La plataforma Java EE utiliza un modelo de programación simplificado. Los descriptores de despliegue
XML son opcionales. En su lugar, un desarrollador simplemente puede ingresar la información como una
anotación directamente en un archivo fuente de Java, y el servidor Java EE hará la configuración del
componente en el despliegue y tiempo de ejecución.
En la plataforma Java EE, la inyección de dependencias se puede aplicar a todos los recursos que un
componente necesita, ocultando efectivamente la creación y búsqueda de recursos desde el código de la
aplicación. La inyección de dependencias se puede usar en los contenedores de Enterprise JavaBeans (EJB
- JavaBeans empresarial), los contenedores web y los clientes de la aplicación. También permite al
contenedor de Java EE insertar automáticamente referencias a otros componentes o recursos requeridos,
usando anotaciones.
2.2 PostgreSQL
Es un avanzado sistema de bases de datos relacionales basado en Open Source. Esto quiere decir que el
código fuente del programa está disponible a cualquier persona libre de cargos directos, permitiendo a
cualquiera colaborar con el desarrollo del proyecto o modificar el sistema para ajustarlo a sus
necesidades. PostgreSQL está bajo licencia BSD.
Un sistema de base de datos relacionales es un sistema que permite la manipulación de acuerdo con las
reglas del álgebra relacional. Los datos se almacenan en tablas de columnas y renglones. Con el uso de
llaves, esas tablas se pueden relacionar unas con otras [2].
2.3 APACHE TOMCAT 7
El software Apache Tomcat® es una implementación de código abierto de tecnologías Java Servlet,
JavaServer Pages, Java Expression Language and Java WebSocket. Las cuales son desarrolladas bajo el
Java Community Process (JCP).
El software Apache Tomcat se desarrolla en un medio abierto y participativo, y publicado bajo la versión
de licencia Apache 2. El proyecto Apache Tomcat tiene el propósito de ser una colaboración de los mejores
desarrolladores alrededor del mundo. [3].
3. INSTALACIÓN Y CONFIGURACIÓN DE JAVA
3.1 Instalar la versión 1.6 del kit de desarrollo de Java (JDK por sus siglas en inglés)
En la siguiente ruta: https://www.oracle.com/java/technologies/javase-java-archive-javase6-
downloads.html encontrará las diferentes versiones del JDK de Java distribuidas por Oracle. Se debe
descargar la versión 6 para Linux, en formato Package Manager (*.RPM) para CENTOS 6, en formato
Tape Archiver empaquetado (*.tar.gz) para UBUNTU y en formato executable (*.exe) para los usuarios de
Windows.
Se deben aceptar los términos y condiciones de uso para que el sistema permita la descarga
de los archivos. Adicionalmente es necesario crear una cuenta, sin embargo, la descarga no
tiene ningún costo.
Una vez se cuente con las descargas de los archivos, se deben pasar al servidor para poder realizar los
procesos de instalación de ambos paquetes.
Imagen 1. Versión 8u131 del JDK de Java.
Para instalar los paquetes de JDK de Java, nos dirigimos al directorio en el que se encuentran los archivos
(donde se desea instalar, se recomienda “/usr/java” o en “/opt/”) y se ejecutan los siguientes comandos:
CENTOS 6:
Imagen 2. Comandos de instalación del JDK para centOS
UBUNTU:
Imagen 3. Comando de instalación JDK para Ubuntu
Para el archivo empaquetado de UBUNTU se debe tener en cuenta que el lugar donde se
desempaquete será el directorio al que se hará referencia al momento de realizar el proceso
de configuración de las variables de entorno.
Para Windows basta con abrir el archivo ejecutable y seguir los pasos del asistente del JDK que se
desplegará.
WINDOWS:
Imagen 4 Asistente de instalación del JDK de Oracle Java para Windows.
3.2 Configurar las variables de entorno del sistema
Utilizar las funciones de Java requiere configurar las variables de acceso para que el Sistema reconozca a
donde debe dirigirse en caso de necesitarlas. Para eso se realiza la configuración de las variables de entorno.
LINUX: en Ubuntu y Centos la configuración es la misma.
Tener en cuenta que, si se ejecuta este comando, la configuración de las variables de entorno
será temporal, es decir, cuando se reinicie el sistema operativo, no se establecerán estas
variables, para hacerlo permanente, debe modificarse mínimo el archivo
“/etc/environment”.
WINDOWS: En propiedades del sistema se agregan las variables de entorno
Imagen 6. Configurar variables de entorno del sistema en Windows.
MI_WEB= “UBICACIÓN DE ORIGEN”
Imagen 5. Configurar variables de entorno del sistema.
Echo $MI_WEB export
4. INSTALACIÓN Y CONFIGURACIÓN DE TOMCAT
4.1 Instalar la versión 7 de Tomcat
Dirigirse a la página de Tomcat “https://tomcat.apache.org/download-80.cgi” para bajar el archivo en
formato Tape Archiver empaquetado (*.tar.gz) para Linux y (*.exe) para Windows.
Imagen 7. Vista de la página de descarga de Tomcat 7.
LINUX: Una vez descargado el archivo, moverlo al directorio “/opt/” dentro del sistema operativo para
desempaquetarlo.
WINDOWS: Para Windows basta con descargar el archivo en formato (*.zip), moverlo a disco local C:/ y
luego descomprimirlo.
Imagen 9. Apache 7 descomprimido en Disco local C:
4.2 Copiar el ROOT entregado con el proyecto al directorio de Tomcat en el sistema
LINUX:
Se debe buscar el directorio ROOT dentro de la información enviada con el proyecto y dirigirse al
directorio ROOT dentro del sistema operativo. Este directorio se encuentra ubicado en:
“[ruta_directorio_tomcat]/webapps/”. Una vez ahí se puede borrar el directorio actual y copiar el que se
pasa, o se puede copiar la información del directorio dentro del actual modificando los archivos que
presenten duplicados.
WINDOWS:
En Windows se debe copiar la carpeta ROOT otorgada y se debe reemplazar en C:\apache-tomcat-
7.0.96\webapps
Tener en cuenta que los directorios eliminados no pueden recuperarse, por lo que debe
asegurarse que el nombre del directorio a eliminar sea correcto.
4.3 Configurar los usuarios de acceso al servidor
Dentro de las configuraciones de Tomcat se puede determinar el usuario que va a tener acceso al manager
del servidor. Para acceder al archivo donde se determina se debe buscar la ruta del directorio de Tomcat y
en el directorio conf se encuentra el archivo tomcat_users.xml.
Si los roles “manager-gui” y “admin-gui” no existen, deben configurarse en el mismo
archivo antes de definir los usuarios para que el sistema identifique que se le dará acceso
al administrador de tomcat a esos usuarios.
Para Windows funciona de manera similar, abrir el archivo users.xml en el bloc de notas
y modificar las líneas de código especificadas en la imagen 12.
4.4 Configurar el puerto para una conexión segura certificada
Para poder realizar la conexión a través de una conexión certificada, se debe realizar una petición para poder
valorar que la página es oficial y segura. Una vez que se cumplen los requisitos para el protocolo https, lo
siguiente es configurar el puerto 8443 dentro de Tomcat para poder acceder de manera protegida.
Lo primero que se debe hacer es acceder al archivo de configuración de las conexiones al servidor, este
archivo es el server.xml, se encuentra en la ruta “[ruta_directorio_tomcat]/conf/”. Una vez dentro, se añade
el código descrito en la imagen 14, el cual cuenta con los atributos de activación de los certificados de
seguridad previamente otorgados. Se debe ingresar antes de la etiqueta <connector> para el Puerto 8443
que se encuentra comentada por defecto.
Imagen 12. Código para habilitar un usuario de acceso al administrador del servidor Tomcat.
Tener en cuenta que cada vez que se modifique alguno de los archivos de configuración
de Tomcat, si este se encuentra en ejecución, se debe reiniciar para que los cambios
generados se vean aplicados.
Para Windows funciona de manera similar, abrir el archivo server.xml en el bloc de notas
y modificar las líneas de código.
5. INSTALACIÓN Y CONFIGURACIÓN DE POSTGRESQL 5.1 Descarga y configuración del software
Imagen 20. Página web instalación de postgres.
Descargar de la página oficial el instalar en el formato correspondiente en
https://www.enterprisedb.com/es/downloads/postgres-postgresql-downloads
Durante la instalación el manager de instalación preguntará si desea instalar “pgAdminIII” darle que si
En Windows se hace el mismo proceso, pero el archivo se llama startup.bat.
Imagen 13. Ingresar al directorio 'conf' y edición del archivo con editor 'nano'.
Imagen 14. Configuración del archivo server.xml para habilitar puerto seguro.
6.2 Ejecutar el manager y subir archivo del proyecto
Una vez iniciado el servidor, se puede ejecutar el manager de Tomcat siguiente la ruta en cualquier
navegador: http (o https si se cuenta con el certificado) ://[dirección_ip]/manager. Para poder acceder se
deben utilizar las credenciales configuradas previamente (usuario-contraseña).
Imagen 21. Manager del servidor Tomcat.
Ya en el servidor el último paso es subir el archivo con formato Web Application Archive (*.war). Para
esto nos dirigimos al panel Desplegar, y a la opción Seleccionar archivo war a cargar, una vez que se
encuentre el archivo, se da al botón Desplegar, y se espera a que la plataforma confirme que se subió con
éxito.
Imagen 22. Interfaz para el cargue de archivo en formato WAR.
6.3 Montar base de datos en PostgreSQL
Para finalizar con el proceso de configuración de las herramientas, para acceder al aplicativo, se debe
montar el backup de la base de datos suministrado con los archivos del programa.
Ejecutar la consola y dirigirse a la carpeta bin
Psql –U (Nombre de usuario) [Nombre de la base de datos] < C//: ruta de ubicación del archivo/[nombre
del backup]
Luego se deben crear las respectivas variables de entorno:
Ahora se debe conectar a sqlplus con algún perfil creado previamente que tenga los permisos necesarios
para crear una base de datos, para este ejemplo se utilizara “sysdba” e iniciar la instancia ORCL.
Ahora ya está todo listo para crear la base de datos, para ello debemos definir los parámetros, si tiene los
conocimientos técnicos suficientes puede modificar estos valores, de lo contrario sugiere una configuración
predeterminada.
7. INGRESO A LA PLATAFORMA
Una vez que se tiene la configuración completa del servidor y la base de datos, todo está listo
Imagen 26. Interfaz de inicio de la plataforma.
Imagen 24. Esquema de directorios
$export POSTGRESQL_SID=PGSQL
$export POSTGRES_HOME=$POSTGRES/9.3 /bin/
Imagen 25 Comandos Variables de entorno
Referencias
[1] https://javaee.github.io/tutorial/overview001.html#A1046550.
https://javaee.github.io/tutorial/toc.htm.
[2] https://www.ediciones-eni.com/open/mediabook.aspx?idR=a015d481608788b8e1648c4aa0777d00
[3] http://tomcat.apache.org/
[4] https://www.oracle.com/technetwork/es/articles/database-performance/restaurar-recuperar-
tablespaces-2228109-esa.html
[5] https://medium.com/@aarnlpezsosa/instalaci%C3%B3n-de-java-jdk-y-configuraci%C3%B3n-de-java-
home-en-ubuntu-18-04-f3307c07328
Recommended