Documente Academic
Documente Profesional
Documente Cultură
JUVENTINO ROSAS
TESINA
Presenta:
Francisco Fernando Ruiz Plascencia
Asesores:
M.I. Rebeca Eugenia Aguilar Durón
M.I. Juan Heriberto Gallegos Galindo
I
Dedicatoria
Dedicado a
A Dios, y a mis padres.
A Dios porque ha estado conmigo a cada paso que doy
y porque me ha visto crecer,
cuidándome y dándome fortaleza para continuar.
A mis padres y mi hermano, quienes han sido el gran apoyo que tengo
para poder llegar a este punto de mi carrera
y que con sus esfuerzos se valora inmensamente.
A mis abuelos, que siempre han estado conmigo desde mi infancia,
y que su compañia y dedicación es algo que nutre siempre.
A ti Montserrat, que donde quiera que estés allá arriba,
sepas que esto va por ti.
A ustedes, con amor.
II
Resumen
III
Abstract
IV
Índice general
1. Introducción 1
1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Definición del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4.2. Objetivos Particulares del Desarrollo del sistema . . . . . . . . . . . 3
1.5. Contribuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6. Organización de esta tesina . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Marco Teórico 5
2.1. Angular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1. Aplicaciones SPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.2. Antecedentes de Angular: AngularJS . . . . . . . . . . . . . . . . . 6
2.2. Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
V
2.3. Inversión de control (IOC) e Inyección de dependencia (DI) en Spring . . . 7
2.4. Apache Maven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5. Caracterı́sticas de Maven . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6. MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3. Análisis y Diseño 11
3.1. Análisis de Requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.1. Etapas del Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2. Desarrollo Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4. Descripción de la Implementación 12
4.1. Sección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2. Aplicación de Escritorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5. Pruebas y Resultados 13
5.1. De la Aplicación de Escritorio . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.1.1. Validación de los Registros en la Base de Datos . . . . . . . . . . . 13
6. Conclusiones 14
6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.2. Trabajo Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.2.1. Del Sitio Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.2.2. De la Aplicación de Escritorio . . . . . . . . . . . . . . . . . . . . . 14
VI
Índice de figuras
VII
Capı́tulo 1
Introducción
1.1. Motivación
1
1.2. Antecedentes
Vision Consulting, al ser una de las empresas de TI con mayor número de clientes
en la república mexicana basada en soluciones de negocio, debe de tener un grado de
control del flujo de actividades que permita conocer cual es el estatus actual o en que
fase de desarrollo se encuentra cada proyecto, lo que también permite como resultado la
rentabilidad de la empresa, ası́ como el impacto que pueda tener algún proyecto, como
brevemente se pueden mencionar los proyectos en desarrollo de Sura, o las versiones
concluidas o actualizaciones de los multivendores de Isban, correspondientes a Banco
Santander. El Sistema de Control y Rentabilidad (por sus siglas SICORE), desarrollado
de forma interna en la fábrica de software de Vision Consulting, se destina a ser utilizado
por los desarrolladores, independiente de la categorı́a, que forman parte de la célula de
Tecnologı́a, considerando que funge en el rol de administrador, el MasterChief Developers
de dicha célula. La implementación de éste sistema, permite conocer de forma particular, el
flujo de actividades de cada desarrollador, y en el proyecto que corresponde. La necesidad
de su implementación, surge debido a que no se conocı́a como se tenı́a el flujo general de
las actividade y asignaciones por cada proyecto, lo que podı́a repercutir en demoras en
cumplimiento de las actividades de finalización de asignaciones.
2
1.4. Objetivos
Realizar las pruebas de las sentencias, ası́ como querys de consulta para comprobar
el correcto funcionamiento de los microservicios.
1.5. Contribuciones
3
Microservicios construidos para la base de datos.
4
Capı́tulo 2
Marco Teórico
2.1. Angular
5
2.1.1. Aplicaciones SPA
Una aplicación web SPA creada con Angular es una web de una sola página, en la
cual la navegación entre secciones y páginas de la aplicación, ası́ como la carga de datos,
se realiza de manera dinámica, casi instantánea, ası́ncronamente haciendo llamadas al
servidor (backend con un API REST) y sobre todo sin actualizaciones de la página en
ningún momento. Es decir las aplicaciones web que se pueden desarrollar con Angular son
reactivas y no recargan el navegador, todo es muy dinámico y ası́ncrono con ajax.
Angular comenzó con la primera versión de AngularJS, que estaba escrito en puro
JavaScript, y con el que era bastante sencillo crear una aplicación. AngularJS ofrecı́a
un concepto muy novedoso, como era el two-way data binding, que era una forma de
interactuar entre la vista y el modelo, lo que se conoce como view model [3]. Gracias
al mismo, indicando en ciertas propiedades de HTML la directiva ng-model se podı́a
interactuar con las propiedades del modelo, y se actualizaban tanto desde la vista como
desde el modelo, es decir, era totalmente bidireccional. Esto revolucionó todo lo que hasta
ese momento habı́a en el frontend.
2.2. Spring
6
ver, agilizar y manejar los problemas y complejidades que van apareciendo en el mundo de
la programación, a medida las exigencias van creciendo, creando ası́, en la comunidad de
desarrolladores, un abanico de posibilidades para una creación cada vez más evolucionada
de aplicaciones [7].
Inversión de control es un término que puede confundirse, sin embargo, hay que con-
siderar la expresión que se utiliza para referirse al cambio en el flujo de ejecución y vida
de los objetos con respecto a la programación tradicional, básicamente de lo que se tra-
ta es de invertir la forma en que se controla la aplicación, lo qué antes dependı́a del
programador, como por ejemplo, el orden en que se llaman los métodos para darle un
comportamiento particular a la aplicación, ahora depende completamente de otro ente,
en este caso, el framework, todo esto con la finalidad de crear aplicaciones más complejas
y con funcionamientos más encapsulados y automáticos [5].
La inyección de dependencia, es un tipo de inversion de control, donde el manejo de
las propiedades de un objeto son inyectadas a través de un constructor, un setter, un
servicio, etc., creando de esta manera un control diferente para un comportamiento más
conveniente en nuestra aplicación, como se mencionó anteriormente.
Sabiendo esto, una de las caracteristicas principales de Spring framework es el Spring
container. El Spring Container es un IoC Container (Contenedor de Inversion de control,
por sus siglas en inglés), estos son frameworks o partes de un framework, en este caso, que
7
se encargan de realizar inyección de dependencia sin la necesidad de realizar la definición
en java (o el lenguaje de POO que esté utilizando) a través de archivos de metadata, por
ejemplo un xml.
Este IOC container se encargará de crear los objetos, relacionarlos, configurarlos y
manejar su ciclo de vida completo, desde la creación de estos hasta su destrucción, es por
esto que se usa el término Inversion of control en Spring, porque como se ha mencionado
anteriormente, el Spring container será el que controle una gran parte de la creación de
los objetos y de la inyección de dependencia en estos [?].
8
Un mecanismo distribuido de distribución de librerı́as. El comportamiento distri-
buido es siempre desde el repositorio local de Maven hacia los repositorios que están
publicados en Internet o en la red corporativa.
2.6. MySQL
9
MySQL fue inicialmente desarrollado por MySQL AB (empresa fundada por David
Axmark, Allan Larsson y Michael Widenius). MySQL A.B. fue adquirida por Sun Mi-
crosystems en 2008, y ésta a su vez fue comprada por Oracle Corporation en 2010, la cual
ya era dueña desde 2005 de Innobase Oy, empresa finlandesa desarrolladora del motor
InnoDB para MySQL.
Al contrario de proyectos como Apache, donde el software es desarrollado por una
comunidad pública y los derechos de autor del código están en poder del autor individual,
MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor
parte del código. Esto es lo que posibilita el esquema de doble licenciamiento anterior-
mente mencionado. La base de datos se distribuye en varias versiones, una Community,
distribuida bajo la Licencia pública general de GNU, versión 2, y varias versiones En-
terprise, para aquellas empresas que quieran incorporarlo en productos privativos. Las
versiones Enterprise incluyen productos o servicios addicionales tales como herramientas
de monitorización y soporte oficial. En 2009 se creó un fork denominado MariaDB por
algunos desarrolladores (incluido algunos desarrolladores originales de MySQL) descon-
tentos con el modelo de desarrollo y el hecho de que una misma empresa controle a la vez
los productos MySQL y Oracle Database.
10
Capı́tulo 3
Análisis y Diseño
Cabe mencionar que actualmente utilizan hojas de Excel, macros para su control
de inventarios, piezas, orden de servicio, clientes, piezas dañadas en tránsito, reportes y
contratos.
11
Capı́tulo 4
Descripción de la Implementación
En esta sección se describe la implementación tanto del sitio web como de la aplicación
de escritorio. Es posible también encontrar los resultados visuales y la navegabilidad de
los sistemas.
4.1. Sección
12
Capı́tulo 5
Pruebas y Resultados
13
Capı́tulo 6
Conclusiones
6.1. Conclusiones
14
Bibliografı́a
[1]
[2] Cecilio Álvarez. Qué es Maven. GenBeta, 2014. [Acceso online; accesado el 03-
Octubre-2019] https://www.genbeta.com/desarrollo/que-es-maven.
[3] Nacho Blanco. Qué es Angular. OpenWebinairs, 2018. [Acceso online; accesado el
02/Octubre/2019] https://openwebinars.net/blog/que-es-angular/.
[6] Antony Garcı́a González. Que es Maven y para que se utiliza. PanamaHitek,
2015. [Acceso online; accesado el 03-Octubre-2019] http://panamahitek.com/
que-es-maven-y-para-que-se-utiliza/.
[7] Luis Miguel López Maga na. Spring Framework. OpenWebinairs, 2018. [Ac-
ceso online; accesado el 02/Octubre/2019] https://openwebinars.net/blog/
que-es-spring-framework/.
[8] ORACLE. The World’s Most Popular Open Source Database. ORACLE, 2016.
[Acceso online; accesado el 26-Julio-2016] http://www.oracle.com/us/products/
mysql/overview/index.html.
[9] Vı́ctor Robles. Qué es Angular y para qué sirve. VictorRobles.web, 2018. [Acceso
online; accesado el 02-Octubre-2019] https://victorroblesweb.es/2017/08/05/
que-es-angular-y-para-que-sirve/.
15
[10] Carlos Yague. Apache Maven. OpenWebinairs, 2019. [Acceso online; accesado el
03-Octubre-2019] https://openwebinars.net/blog/que-es-apache-maven/.
16