Proyecto
Proyecto
ELÉCTRICOS
VII SEMESTRE
BOGOTÁ
2019
2
ELÉCTRICOS
VII SEMESTRE
BOGOTÁ
2019
3
TABLA DE CONTENIDO
INTRODUCCIÓN 5
PREGUNTA PROBLEMA 8
JUSTIFICACIÓN 9
OBJETIVO GENERAL 10
OBJETIVOS ESPECÍFICOS 10
ALCANCE 11
LIMITACIONES 12
MARCO REFERENCIAL 13
MARCO TEÓRICO 13
APLICACIÓN DISTRIBUIDA 14
ARQUITECTURA CLIENTE-SERVIDOR 14
APLICACIÓN WEB 19
MARCO TECNOLÓGICO 20
TECNOLOGÍAS UTILIZADAS 21
HERRAMIENTAS UTILIZADAS 29
RESULTADOS ESPERADOS 32
PRESUPUESTO 34
BIBLIOGRAFÍA 35
BÁSICA 35
CITADA 36
VIRTUAL 36
HISTORIAL 38
4
TABLA DE IMÁGENES
INTRODUCCIÓN
En la actualidad gracias a los grandes avances tecnológicos, las empresas han podido mejorar
mediante sistemas informáticos. Esto conlleva una mejora en una serie de factores dentro de las
realización de tareas.
La empresa VR Ingeniería y Mercadeo S.A.S., dentro del área de remanufactura, posee las
los trabajadores de la planta. Todo este proceso se realiza y registra de manera manual en papel
sistema que permite automatizar los procesos de control básico en los inventarios de la empresa,
dando solución a los problemas presentados en cada uno de los procesos como son:
ofrecer la solución.
7
VR Ingeniería y Mercadeo S.A.S., funciona desde hace 30 años y hasta la fecha manejan
casi toda la información de forma manual. Hay que tener en cuenta que la empresa está en
constante crecimiento demostrando mejores resultados económicos, por ende, va a ser mayor la
dificultad que tendrá al manejar casi toda su información manualmente; se ha adaptado a los
cambios que han surgido de acuerdo a su necesidad, además ha adquirido prestigio y respeto ante
sus proveedores.
controlar la información de las remisiones de una manera más sencilla y precisa es alta, existen
falencias al momento del empleado solicitar el material, debido que no tiene conocimiento del
tipo de material que maneja la empresa, otro inconveniente encontrado fue la falta de
remisiones y los datos de los proveedores de una manera eficiente. Al tener la información más
Teniendo en cuenta todo lo anterior y en la ausencia de datos confiables con los cuales iniciar
proveedores frecuentes y los diferentes tipos de inventario aplicables con el fin de elegir el
PREGUNTA PROBLEMA
JUSTIFICACIÓN
automatizar y optimizar todos los procesos en los cuales la información este vulnerable, por esta
razón se debe atraer a la empresa, para fomentar las herramientas del aplicativo web así el acceso
El aplicativo web será una herramienta útil y fiable a la hora de llevar el almacenamiento de
los datos del proveedor y el almacenamiento del material eléctrico que se suministra a la empresa
OBJETIVO GENERAL
Desarrollar una aplicación web para el control de inventarios del material eléctrico en la
OBJETIVOS ESPECÍFICOS
⮚ Definir los requerimientos del sistema según las necesidades existentes en la empresa, y
implementará el aplicativo.
⮚ Realizar el diseño técnico de los procesos que desarrollan los casos de usos recogidos en
aplicación web.
11
ALCANCE
producto existente, con el fin de obtener todos los datos necesarios de cada producto de una
manera organizada, confiable y correcta. Este sistema se realizará para el uso exclusivo de VR.
inventario. Estos incluyen valorar el inventario, medir el cambio en el y planificar los niveles de
inventario futuro. El valor del inventario al final de cada período proporciona una base para la
empresa determinar el costo del inventario vendido durante el período. El nivel de inventario y los
El sistema será implementado acorde a los requerimientos solicitados por la empresa. Se pretende
además que el sistema en mención sea escalable desde el punto de vista del desarrollador, es decir,
LIMITACIONES
A pesar de que el aplicativo llevará un registro actualizado de las altas y bajas del material
confiabilidad y dependencia del ingreso de datos humano. Puesto que un sistema perpetuo se
actualiza cada vez que una transacción ingresa al sistema, los empleados dependen de los datos
del robo o desperdicios, conocido como la reducción, hasta que se realice un recuento físico, que
ocurre sólo una vez al año. La otra limitación de un sistema perpetuo considera que este depende
del ingreso de datos humanos. A medida que cada transacción ocurre, un empleado ingresa los
MARCO REFERENCIAL
MARCO TEÓRICO
metodología y estándares que se utilizarán durante todo el proceso de creación del mismo, así
como realizar un correcto diseño de su arquitectura a nivel de sistema y a nivel de software. Con
Para tal fin, se han creado una serie de modelos de arquitectura de sistema, así como patrones
de diseño que en la práctica han probado ser soluciones eficientes a problemas comunes en el
bien no es obligatorio, es considerado una buena práctica a la hora de diseñar e implementar una
aplicación.
Desde sus inicios, PMiS se ha venido desarrollando utilizando un modelo basado en capas y
una arquitectura cliente servidor, por lo tanto, el módulo de inventario y rastreo de puntos de
venta se desarrolló siguiendo las mismas pautas. El presente capítulo tiene como finalidad
exponer el modelo y arquitectura utilizada durante el desarrollo del módulo, así como también
APLICACIÓN DISTRIBUIDA
ARQUITECTURA CLIENTE-SERVIDOR
Es un modelo de aplicación distribuida en el cual las tareas se reparten entre los proveedores
se trata de una arquitectura en la cual un programa cliente realiza peticiones a otro programa, el
En esta arquitectura, los requerimientos realizados por los clientes resultan en trabajo
realizado por el servidor o servidores. Un cliente es todo proceso que le permite al usuario
con el usuario, administrar la interfaz, realizar la validación de los datos introducidos por el
mismo, generar las peticiones, recibir y formatear los datos recibidos del servidor y por último
algún recurso administrado por el mismo. Estas peticiones pueden ser recibidas desde múltiples
clientes. Su principal función es procesar los requerimientos de estos clientes, esto incluye
recibir las peticiones y datos enviados desde los mismos, realizar validaciones, ejecutar la lógica
15
de la aplicación y enviar los resultados al cliente. Un servidor puede a su vez actuar como el
cliente de otro servidor, por ejemplo, un servidor de bases de datos, o varios servidores pueden
actuar en conjunto para satisfacer los requerimientos de los clientes. Todo esto es transparente
reparar, actualizar e incluso mudar un servidor sin que los clientes se vean afectados
● Si el servidor colapsa (deja de funcionar), las peticiones de los clientes no pueden ser
atendidas.
entre otras cosas, un diseño cuidadoso de la arquitectura del software de la misma. Un mal
diseño puede sin duda, afectar considerablemente el tiempo de desarrollo de una aplicación, la
incorporar nuevas funcionalidades a la aplicación a lo largo del tiempo. Si bien existen diversas
desarrollo de software hacer uso de soluciones genéricas ya probadas y cuya eficiencia haya sido
de arquitectura de software que separa los datos de la aplicación, la interfaz de usuario y la lógica
● El modelo: está compuesto por los datos de la aplicación y la lógica para manipular
nivel de modularidad que se busque. La división más sencilla resulta en dos capas, la
● La vista: Es la representación del modelo ante el usuario. Proporciona los medios para
las peticiones que realiza el usuario haciendo uso de la vista o a otros eventos que se
modificando su estado.
7. Finalmente, la vista espera por otra acción que inicie el ciclo nuevamente.
Como se puede notar en el flujo de control antes descrito, en el patrón de diseño MVC el
controlador actúa como un mediador entre la vista y el modelo, logrando de esta forma una clara
19
separación entre ambos componentes. Esta separación es una de las ventajas de este patrón sobre
programadores puede trabajar en la vista mientras que otro grupo trabaja en el modelo
de manera simultánea.
● Un mismo modelo puede tener asociadas múltiples vistas, de esta forma se pueden
crear distintas interfaces de usuario para distintos dispositivos sin necesidad de re-
implementar el modelo.
● Con el paso del tiempo es normal que la interfaz de una aplicación cambie para
adaptarse a las nuevas necesidades de los usuarios, con el patrón MVC este cambio
PMiS adoptó el patrón MVC como su patrón de diseño de arquitectura desde el inicio, por
este motivo fue requerimiento de la empresa que el módulo de inventario y rastreo de puntos de
APLICACIÓN WEB
Dentro del campo de la ingeniería de software se denomina aplicación web a una aplicación
de la cual los usuarios hacen uso accediendo a un servidor web a través de internet o de una
intranet mediante un navegador. Estas aplicaciones son populares debido a lo práctico del
navegador como cliente, a la independencia del sistema operativo y a la facilidad para actualizar
usuarios potenciales.
puntos de venta, la arquitectura cliente-servidor resultaba ideal para su implementación. Por otro
lado, siendo la función principal del módulo el registro de la entrada y salida de los equipos de
distintas ubicaciones, las cuales irán aumentando conforme la empresa crece y se expande,
MARCO TECNOLÓGICO
Una vez establecidos los fundamentos básicos de la aplicación, como la arquitectura del
El presente capítulo tiene como objetivo introducir las tecnologías y herramientas utilizadas
TECNOLOGÍAS UTILIZADAS
JAVA
desarrollado a principios de los años 90 por Sun Microsystems. El lenguaje como tal, toma gran
parte de su sintaxis de C y C++, pero posee un modelo de objetos considerablemente más simple
y además elimina por completo las herramientas de bajo nivel que suelen inducir a muchos
errores.
sencillez, robustez y la portabilidad que brinda a las aplicaciones. Además, Java se distribuye
con un conjunto enorme de clases que facilitan y aceleran el desarrollo de las aplicaciones.
Sumado a esto, existe un gran número de librerías y tecnologías basadas en Java de libre
que liberan al programador de tener que repetir trabajo, así como también gran variedad de
Por todo esto Java es una excelente opción a considerar al momento de elegir el lenguaje a
En el caso del módulo de inventario y rastreo de puntos de ventas, el uso de este lenguaje fue
requerimiento explícito de la empresa, puesto que el sistema para el cual se desarrolló dicho
APACHE STRUTS
Apache Struts es una herramienta de soporte para el desarrollo de aplicaciones web bajo el
extensible, flexible y de carácter libre que ayuda a acelerar el proceso de desarrollo de una
aplicación web y que utilizado con rigurosidad permite sacar provecho a todas las ventajas del
Struts es una aplicación framework (marco de trabajo de aplicación) lo cual significa que, en
sí, es el esqueleto de una aplicación. Dentro del patrón de diseño MVC, Struts provee a los
desarrolladores solo del controlador de la aplicación, así como de las interfaces y los medios para
Struts es un framework extensible y dispone de gran variedad de plugins que facilitan y aceleran
JBOSS HIBERNATE
Hibernate es una herramienta de mapeo objeto-relacional para la plataforma Java que facilita
el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de
una aplicación. Busca solucionar el problema entre los dos modelos de datos coexistentes en una
datos (modelo relacional). Para lograr esto se basa en un conjunto de archivos XML en los cuales
el programador describe su modelo de datos, las relaciones que existen y las formas que tienen.
Con esta información Hibernate le permite luego al programador manipular los datos de la
base de datos como si se tratara de objetos, con todas las características de la programación
orientada a objetos. De esta forma Hibernate provee al desarrollador de la interfaz entre la capa
APACHE TOMCAT
Apache tomcat es servidor web con soporte para servlets (programas que se ejecutan en un
servidor) que implementa las especificaciones de los servlets y de Java Server Pages (JSP) de
Sun Microsystems. Está escrito en Java por lo cual está disponible para cualquier plataforma
Es una tecnología de código abierto y libre distribución que al apegarse a las especificaciones
de las tecnologías JSP y Java Servlet, resulta una excelente elección al desarrollar sistemas web
escritos en Java.
POSTGRES SQL
26
en vez de multihilos para garantizar la estabilidad del sistema. Su desarrollo comenzó hace más
de 16 años y desde entonces ha probado funcionar muy bien con grandes cantidades de datos y
una alta concurrencia de usuarios. Por esta razón es considerado uno de los manejadores de base
Se utilizó como el manejador de base de datos del módulo de inventario y rastreo de puntos de
venta a petición de la empresa, puesto que es el mismo manejador usado por el resto del sistema.
La tecnología de capa de presentación usada fue JSP (Java Server Pages). JSP es una
tecnología Java del lado del servidor que permite generar contenido dinámico para web, en
forma de documentos HTML, XML o de otro tipo. Permite la utilización de código Java
mediante scripts, así como también la definición y utilización de etiquetas jsp que encapsulan
funcionalidad y agregan un nivel más de abstracción a las páginas, dando como resultado un
código más elegante, limpio, legible y mantenible. Además, existen una gran cantidad de
librerías de etiquetas jsp disponibles que implementan una gran variedad de funcionalidades y
permiten así acelerar el proceso de desarrollo. Como ejemplo se puede citar la Strut Tag Library
(Librería de etiquetas de Struts) que es un conjunto de etiquetas distribuidas junto con Struts y
que facilitan enormemente la tarea de desarrollar vistas en jsp haciendo uso de dicho framework.
27
sus atributos. En el caso del módulo de inventario y rastreo de equipos, este fue el formato
Por último, para dar estilo a las páginas se hizo uso de hojas de estilo CSS (Cascading Style
escrito en HTML o XML. La idea que se encuentra detrás de las hojas de estilo es la de separar
a cada uno de los componentes por separado sin afectar el componente restante.
Todas las vistas del módulo fueron generadas haciendo un uso combinado adecuado de estas
tres tecnologías, separando claramente la estructura de los documentos de sus reglas de estilo
JAVASCRIPT
dinamismo a las páginas web. Es interpretado por el navegador y aunque existe una forma de
JavaScript del lado del servidor, su uso más común es del cliente, principalmente para mejorar
las interfaces de usuario y realizar validaciones de datos antes de que estos sean enviados al
servidor para su procesamiento. Este fue el uso que se le dio en el desarrollo del módulo de
AJAX
JavaScript asíncrono + XML. Más que una tecnología en sí misma, AJAX es una combinación
de varias tecnologías independientes que se unen para crear aplicaciones de internet enriquecidas
o RIAs (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente mientras que se
mantiene una comunicación asíncrona con el servidor en segundo plano, de esta forma es posible
realizar cambios sobre las paginas sin necesidad de recargarlas, mejorando así la experiencia del
Con AJAX se rompe el modelo tradicional de aplicación web en el cual las acciones del usuario
experiencia similar a la de interactuar con una aplicación de escritorio, pero en un entorno web.
Para el desarrollo del módulo de inventario y rastreo de puntos de venta se hizo uso
exhaustivo de AJAX con la finalidad de mejorar la experiencia del usuario. Sin embargo, el uso
de esta tecnología se hizo a través de la librería jQuery, la cual simplifica enormemente el uso de
JQUERY
jQuery Es una biblioteca de JavaScript diseñada con dos objetivos fundamentales: facilitar la
manipulación de los documentos HTML y simplificar el uso de AJAX. jQuery es software libre
29
ofrece una gran cantidad de funcionalidades basadas en JavaScript que resultan en un aumento
de la productividad y en una reducción de los tiempos de desarrollo. Con jQuery se pueden crear
de forma fácil contenidos web dinámicos y atractivos con tan solo unas pocas líneas de código.
El segundo punto fuerte de jQuery es la simplificación del uso de AJAX en las aplicaciones
web. La librería provee un conjunto rico de funciones altamente configurables que facilitan de
Por último, jQuery cuenta con un conjunto enorme de plugins que son de libre distribución y
que implementan una gran variedad de funcionalidades de uso común en las aplicaciones web.
DATATABLES
búsqueda y ordenamiento, entre otras cosas, a tablas de datos estáticos en documentos HTML.
Es una herramienta flexible y altamente configurable que facilita el desarrollo y ayuda a mejorar
JASPERREPORTS
distintos formatos como PDF, XML, CSV, Excel, OpenOffice y Word entre otros. Es una
30
herramienta libre, distribuida en forma de biblioteca que puede ser embebida (incrustada) en
cualquier aplicación Java, bien sea de escritorio o web. En JasperReports la estructura del
información como, por ejemplo, el resultado de una consulta realizada a una base de datos o una
Como parte del conjunto de funcionalidades que debía proveer el módulo de inventario y
resultado de ciertas operaciones del negocio. La decisión relacionada al cómo generar estos
reportes fueron dejadas a discreción del programador. Se optó por usar JasperReport para estos
programadores dentro de la empresa que habían tenido experiencias previas con la misma.
CVS
CVS o Concurrent Versions System que es español se traduciría como Sistema de Versiones
CVS se encarga de mantener un registro de todo el trabajo y los cambios en los ficheros que
servidor (esto se conoce como repositorio) y los clientes se conectan a éste para sacar una copia
completa de la versión más actual, trabajar sobre la misma y eventualmente incorporar sus
31
cambios en el servidor, generando así una nueva versión del proyecto. CVS es una herramienta
HERRAMIENTAS UTILIZADAS
MYECLIPSE
MyEclipse es un entorno de desarrollo integrado o IDE por sus siglas en inglés (Integrated
programas desde una misma interfaz, ofreciendo una variedad de servicios que facilitan
Al igual que la mayoría de los entornos de desarrollo modernos, MyEclipse ofrece facilidades
sobresale entre otros entornos, como Eclipse (en el cual está basado), debido a que se distribuye
con una gran variedad de plugins ya instalados y listos para su uso que facilitan aún más la tarea
fue ampliamente usado en el desarrollo del proyecto. MyEclipse soporta el desarrollo de todos
Este entorno de desarrollo ha sido usado por el departamento de sistemas de la empresa desde
sus inicios, por lo cual, si bien no fue un requerimiento hacer uso del mismo para desarrollar el
IREPORT
reportes se definen en un archivo XML que, aunque es de fácil lectura, no permite obtener una
retroalimentación visual del diseño en el cual se trabaja. Por este motivo se utilizó para el diseño
iReport es una herramienta de diseño de reportes basados en JasperReports, que hace uso de
una interfaz gráfica en la cual el diseñador es capaz de observar como luce el reporte al mismo
tiempo que trabaja en el diseño del mismo. Es una herramienta WYSIWYG (What You See Is
What You Get), que le permite al diseñador del reporte centrarse en el diseño gráfico del mismo
alejándose del XML subyacente. De esta forma se obtienen resultados más satisfactorios y en
menor tiempo.
Es una herramienta intuitiva y fácil de usar, basada en los principios de manipulación directa.
Además, facilita la integración de JasperReports con otras tecnologías de uso específico como
PGADMIN
35
el manejador PostgreSQL. Es de código abierto y libre distribución. Permite, haciendo uso una
interfaz gráfica amigable, desde realizar consultas sencillas hasta construir bases de datos
complejas.
Se utilizó durante el desarrollo del módulo básicamente para hacer consultas al estado de la
FIREBUG
Firebug es una herramienta de desarrollo web que permite analizar, editar, monitorizar y
depurar el código fuente, CSS, HTML y JavaScript de una página web de manera instantánea.
Originalmente se distribuía de forma gratuita como una extensión de Firefox, aunque ya existe
una versión ligera para el navegador de Google, Chrome. Es una herramienta muy útil, sobre
RESULTADOS ESPERADOS
⮚ Control de usuarios.
37
TRABAJO DURACIÓN
Nº ACTIVIDADES COMIENZO FIN
HORAS DÍAS
1 Visita de diagnóstico 16 2 lunes, 30 de julio miércoles, 1 de agosto
recolección de datos
1.2 Recolección de datos 20 3 jueves, 9 de agosto lunes, 13 de agosto de
de 2018 2018
1.3 Análisis e 80 10 martes, 14 de martes, 28 de agosto de
datos
2 Elaboración de la 480 60 miércoles, 29 de viernes, 23 de
propuesta
700 88
38
PRESUPUESTO
Impresora
Subtotal $3.700.000
o Descripción del software
Material Valor
PostgreSQL $0
Netbeans $0
Microsoft Windows $720.000
Subtotal $720.000
Software
Desarrollador $3.200.000
Analista de Datos $1.500.000
Suministro Oficina $130.000
Subtotal $15.630.000
PostgreSQL
Subtotal $370.000
o Descripción Total
Recurso Valor
Hardware $3.700.000
Software $720.000
Recursos Humanos $15.630.000
Servicio Hosting y Dominio $370.000
39
Total $20.420.000
40
BIBLIOGRAFÍA
BÁSICA
Colombia, 1996.
− CHAPPELL, David, Aplique .Net, Edición Español 3105-03 Información Libre: Pearson
− Bender, Richard, (1996): Proposed software evaluation and test KPA. Bender and
cognitiva. Paidós.
CITADA
Pag 4,5.
− BOCK, Robert (2003), Objetivo de los inventarios, Editorial Work Study, tercera edición,
Pag 3.
Pag 6.
Pág. 190.
VIRTUAL
− http://www.gestiopolis.com/administracion-estrategia/administracion-deinventarios.htm
− http://www.monografias.com/trabajos62/gestion-automatizada-invetariospymes/gestion-
automatizada-invetarios-pymes2.shtml.
− http://www.gestiopolis.com/recursos/documentos/fulldocs/ger1/teodesisjuan.ht m.
− http://www.definicionabc.com/tecnologia/aplicacion.php.
− http://es.scribd.com/doc/916042/Visual-Studio-2010.
− http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2010-and-net-3- 5-
released.aspx. • http://msdn.microsoft.com/library/z1zx9t92.
− http://msdn.microsoft.com/es-es/library/aa970268.aspx.
− http://www.microsoft.com/spain/sql/productinfo/overview/what-is-sql.
− http://www.ecured.cu/index.php/Rational_Rose_Enterprise_Edition.
42
− http://visualbasic-net.blogspot.com/2011/01/que-es-visual-studio-net.html.
− http://es.wikipedia-org/wiki/Modelo_Vista_Controlador
− http://struts.apache.org/
− https://repository.ean.edu.co/bitstream/handle/10882/1585/SuarezChristian2012.pdf?seq
43
HISTORIAL