Informe Final de Tesis - Luis Guillermo Ramirez Coronado
Informe Final de Tesis - Luis Guillermo Ramirez Coronado
Informe Final de Tesis - Luis Guillermo Ramirez Coronado
TESIS
PRESENTADO POR:
LUIS GUILLERMO RAMÍREZ CORONADO
ASESORADO POR:
Ing. CARMEN ZULEMA, QUITO RODRÍGUEZ
COASESORADO POR:
Dr. MOISÉS DAVID, SAAVEDRA ARANGO
PIURA, 2017
UNIVERSIDAD NACIONAL DE PIURA
TESIS
-------------------------------------------------------------------
LUIS GUILLERMO RAMÍREZ CORONADO
TESISTA
-------------------------------------------------------------------
Ing. CARMEN ZULEMA, QUITO RODRÍGUEZ
ASESOR
-------------------------------------------------------------------
Dr. MOISÉS DAVID, SAAVEDRA ARANGO
CO-ASESOR
PIURA, 2017
ÍNDICE
INTRODUCCIÓN ............................................................................................................................................. 1
RECOMENDACIONES ................................................................................................................................ 99
1
en la investigación.
2
Capítulo 1. El Problema de Investigación
3
servidor?. Esto se debe a que en nuestro medio no existen estudios previos
de comparativas de estas tecnologías que ayuden a los desarrolladores
escoger un marco de trabajo que se adapte a las necesidades o envergadura
de su proyecto. El problema de desarrollar sistemas o aplicaciones sin tomar
criterios de selección de marcos de trabajo o sin tener en cuenta alguna
investigación como base para sus desarrollos de Software, se vería reflejado
en sistemas poco satisfactorios e improductivos en cuanto a su rendimiento y
escalabilidad.
Para satisfacer estos requisitos es necesario saber elegir qué framework
utilizar teniendo como base algún estudio previo de estos. Es por esta razón
que se realizó un estudio comparativo del tiempo de ejecución de una
aplicación Web desarrollada en diferentes marcos de trabajo utilizados en el
lado del cliente y en el lado del servidor.
1.1.2. Formulación del problema
¿Cuál es el tiempo de ejecución de una aplicación Web que ha sido
desarrollada con diferentes marcos de trabajo utilizados en el lado del cliente
y en el lado del servidor?
4
tecnologías que se encuentran en auge denominadas marcos de trabajo
(frameworks). Pero no todas estas herramientas pueden llegar a solucionar o
cubrir las necesidades al momento de emprender un proyecto de desarrollo
de Software, por la sencilla razón que estas tecnologías han sido creadas para
solucionar problemas o situaciones específicas. Entonces al no tener el
conocimiento suficiente y apropiado del uso y beneficios de estas tecnologías
en algunos casos se puede llegar a obtener productos no esperados. Y esto
sucede debido a que no existen estudios o investigaciones que demuestren o
sirvan de base para determinar qué marcos de trabajo son convenientes
emplear para diferentes escenarios.
Este proyecto de investigación se realizó con la finalidad de determinar qué
marcos de trabajo permiten que la aplicación a desarrollar tenga mejores
tiempos de ejecución, debido a que estos deben ser cortos y de gran
velocidad. Además esta investigación es un aporte para aquellas empresas
de desarrollo de Software y desarrolladores, puesto que además de ofrecer
una visión clara y amplia del manejo de estas herramientas, les servirá como
base para futuros proyectos debido a que les resultará más fácil seleccionar
un marco de trabajo de acuerdo a las necesidades y magnitud del proyecto
que desean empezar.
Cabe indicar que en esta investigación solo se abarcarán aspectos de calidad
y no de seguridad de Software. En la parte de calidad se tomó el rendimiento
como factor de calidad para el desarrollo de Software, este factor está definido
en el modelo FURPS (Funcionality, Usability, Reliability, Performance,
Supportability) desarrollado por Hewlett Packard en 1987; además dentro de
este factor se encuentra como atributo el tiempo de ejecución que sirvió como
criterio de comparación de la presente investigación.
5
Capítulo 2. Marco Teórico
Actualmente empresas desarrollan su Software con tecnologías con las que más
tienen experiencia, pero estas ya no son utilizadas actualmente teniendo de
ejemplo algunos lenguajes de programación tales como Cobol, FoxPro,
PowerBuilder solo por mencionar algunos. Esto ocasiona que las aplicaciones que
estén desarrollando no sean las más rápidas posible, es decir que los tiempos de
ejecución antes, durante y después de ejecutarla sean los más cortos y rápidos
posibles. Para conseguir esto, los sistemas han tenido que migrar del tradicional
escritorio hacia la Web la cual brinda un ambiente similar al de las aplicaciones de
escritorio. Para esto es casi obligado el uso de técnicas como: hojas de estilo, un
marcado HTML, menor refrescamiento de pantalla mediante Ajax y mayor
intervención de programación del lado del cliente con JavaScript, para así poder
cumplir las necesidades suscitadas anteriormente. Es aquí donde surgen
herramientas o tecnologías que permitan que el desarrollo de aplicaciones Web sea
más rápido y eficiente, por consiguiente obtener Software con mejores tiempos de
ejecución. En nuestro entorno estas herramientas son relativamente nuevas,
denominadas marcos de trabajo o en ingles framework, que se define como “un
conjunto de componentes físicos y lógicos estructurados de tal forma que permitan
ser reutilizados en el diseño y desarrollo de nuevos sistemas de información”
(Guerrero & Recaman, 2009). Según Saavedra (2009) “un framework es una
estructura de soporte definida en la cual otro proyecto de Software puede ser
organizado y desarrollado a partir de una estructura Software compuesta de
componentes personalizables e intercambiables para el desarrollo de una
aplicación”. Guerrero & Suarez (2010), indican que “los marcos de trabajo
contienen patrones y buenas prácticas que apoyan el desarrollo de un producto y
un proceso con calidad”. Lo anterior permite vislumbrar la importancia de adoptar
un marco de trabajo y cómo su elección debe ser una de las actividades relevantes
al inicio de todo proceso de desarrollo de Software. Cada uno está orientado a un
tipo de proyecto por lo que elegir el adecuado nos puede ahorrar una gran cantidad
de trabajo. En su Web Ernesto (s.f) indica que:
6
distribución más básica, pero otros lenguajes como PHP tienen diversos
frameworks creados por distintas empresas que se pueden utilizar
opcionalmente. Los frameworks además se pueden encontrar para
programación del lado del cliente y lado del servidor. Los frameworks del lado
del cliente sirven para programar con lenguaje JavaScript de una manera
rápida y compatible con todos los ordenadores. Mientras que los frameworks
para el desarrollo de aplicaciones en el lado del servidor se pueden encontrar
sobre varios lenguajes de programación PHP, .Net, Rubi, etc. (párr.3 ). “
Por otra parte existe AngularJs que es un framework JavaScript basado en MVC y
que se centra en intentar dinamizar documentos HTML y ejecutarse como
aplicación de una sola página. AngularJs cambia el enfoque de dinamización de
documentos HTML estáticos mediante la vinculación de elementos del documento
HTML con el modelo de datos (Data Binding). De este modo, se define un modelo
de datos que se correspondera con determinadas partes del documento HTML y,
siempre que hay cambios en una parte, automáticamente se veran reflejados en la
7
otra, con independencia del árbol DOM de JavaScript. Las caracteristicas más
resaltantes de AngularJs son: sigue el patrón MVC, sencillo y potente sistema Data
Binding, popularización de las aplicaciones, inyección de dependencias y
construcción de dependencias y/o modificación de comportamiento mediante
directivas.
8
el uso de banda ancha y la carga del servidor, el enrutamiento y las URLs
inteligentes hacen amigable las direcciones de las páginas de la aplicación y la
interacción con Ajax es mucho más sencilla.
9
comunidad LINUX de la ESPOCH. Dicha investigación se planteó con el
interés de facilitar la creación de aplicaciones en PHP5 junto con MySQL; y,
con ello el desarrollo de un sitio Web para la Comunidad Linux de la Escuela
Superior Politécnica de Chimborazo. Por otro lado, se pretende indicar que
existen frameworks de PHP que bien pudieran favorecer al programador en
tiempo de desarrollo, empleo de mejores prácticas y uso de estándares para
emprender proyectos de Software con mucho esfuerzo y que sean sobre todo
de calidad.
Para cumplir con la investigación se usó el método de investigación científico,
una serie de información recolectada y luego procesada para incluirla en el
marco teórico, en las comparaciones se usó la tabla de ponderación,
finalmente para el desarrollo de la aplicación para la comunidad Linux de la
ESPOCH fue necesario aplicar la metodología de desarrollo rápido XP.
Los autores concluyeron que mediante un adecuado estudio de los
frameworks se puede obtener una visión mayor de su funcionalidad,
características, arquitectura, portabilidad, etc. Se puede obtener una larga
lista de frameworks para PHP; para seleccionar el más adecuado es necesario
estudiarlo y basarse en opiniones como foros de discusión, y el uso que se le
va a dar. Los frameworks estudiados tienen características diferentes a pesar
de basarse en el modelo MVC; sin embargo, se tomó en consideración sobre
la facilidad de uso en cuanto a acceso a datos, seguridad, plugins, Ajax,
interfaz gráfica. Y por último una de las debilidades de los frameworks es la
falta de documentación y de las continuas liberaciones del Software, ya que
en ocasiones el creador del framework abandona el proyecto.
Este trabajo se relaciona con la investigación planteada, ya que se centra en
estudiar aquellos frameworks para PHP es decir del lado del servidor, con la
finalidad de obtener una visión más amplia de sus características, arquitectura
y funcionalidad para así poder desarrollar la aplicación Web con el framework
que mejor se adapte a las necesidades del proyecto.
Sánchez, E. & Vera, I.(2011) en su tesis “Análisis del rendimiento de
Frameworks PHP para desarrollar aplicaciones Web óptimas. Caso práctico:
Portal Academia Linux Espoch”, donde el objetivo general de la investigación
fue realizar un análisis comparativa del rendimiento de frameworks PHP para
desarrollar aplicaciones Web optimas; trata sobre un estudio y análisis
10
investigativo a fondo del rendimiento de diferentes frameworks para obtener
como resultado el framework más óptimo para el desarrollo de aplicaciones
Web. Esta investigación hace referencia a que la mayoría de desarrolladores
implementan sus proyectos en el framework que tienen más conocimiento, sin
realizar una investigación previa en búsqueda del framework que se ajuste a
las necesidades y a su vez ofrezca el mejor rendimiento y escalabilidad.
Los autores concluyen que mediante un adecuado estudio de los tres
frameworks seleccionados, se puede tener una mejor visión en el marco del
rendimiento. Además el estudio les permitió determinar que el framework más
eficiente para el desarrollo en el rendimiento es CodeIgniter. Y por último el
manejo de la base de datos mediante el uso de frameworks requiere de
utilización de recursos de Hardware y Software al momento de realizar
consultas a base de datos, demostrando que CodeIgniter posee las mejores
librerías para el manejo de base de datos, superando ampliamente a Cake
con un 62% seguido a Zend con un 25% en el manejo de transacciones.
Esta investigación está relacionada con la investigación planteada debido a
que también realiza un comparativo de los frameworks para el lado del
servidor, en este caso del lenguaje de programación PHP. Y además permite
determinar que parámetros se pueden utilizar para realizar este estudio
comparativo.
Espinoza, C. (2012) en su trabajo de monografía “Comparativa de
Frameworks para el desarrollo de aplicaciones con PHP”, cuya investigación
hace referencia a que los desarrolladores eligen frameworks al azar,
generando dificultades al proyecto, es por esa razón que pretende comparar
los frameworks más populares. Su propuesta se basa en escoger la mejor
herramienta, mediante la implementación de un caso práctico, evitando que
los programadores pierdan tiempo identificando tediosos detalles de bajo
nivel, en vez de requerimientos de Software. Para seleccionar estas
herramientas utilizó modelos o métodos de calidad en función del framework
seleccionado generar aplicaciones uniformes que faciliten reutilizar código y
promover buenas prácticas de desarrollo, como el uso de patrones y a su vez
incrementa las ganancias.
La autora concluye que dentro de los modelos o estándar de calidad, el
estándar que se adapta a la evaluación del framework es el ISO IEC 9126 al
11
ser considerado como modelo mixto, en el que su principal característica es
definir factores de calidad más abstractos que sean reutilizados virtualmente
en todos los dominios posibles, facilitando así la comparativa de los
frameworks, además de no ser modelo rígido, facilitando así la comparativa
de los frameworks.
Este trabajo de investigación es pertinente con la investigación planteada,
debido a que también se realiza una comparativa de frameworks para el
desarrollo de aplicaciones con PHP. Además hace énfasis en que al no tener
conocimientos de estos se genera dificultades en los proyectos de desarrollo.
Ponce, S. (2011) en su proyecto “Sistema Web para el Departamento de
Asesoría Jurídica de la dirección Provincial de Educación de IMBABURA SIG-
RRHH, mediante la utilización del Framework Symfony”. El objetivo de este
proyecto fue desarrollar e implementar un sistema Web para el departamento
de Asesoría Jurídica de la Dirección Provincial de Educación de Imbabura,
para mejorar la gestión de los procesos. En su proyecto define qué la correcta
administración y control del recurso humano permite a instituciones agilizar
sus procesos, reducir costos y la consecución de los objetivos de calidad, es
por ello que el desarrollo de un Sistema Web para la gestión de recurso
humano para la Dirección Provincial de Educación de Imbabura, facilitara los
procesos concernientes al Personal, permitiendo realizar actividades para la
manipulación de datos en tiempo real; utilizando herramientas de desarrollo
como PHP y MySQL con utilización del framework Symfony, evitando la
pérdida de la información y agilizando los trámites correspondientes.
El autor concluye que la automatización y seguridad de la información en la
Dirección de Educación de Imbabura reduce gastos por pérdida de
información y agiliza los trámites correspondientes, mejorando la
administración en procesos informáticos. Además al utilizar MVC en el
desarrollo del módulo “Sistema Web para el departamento de Asesoría
Jurídica” nos permite tener la estructura del sistema de una manera ordenada,
permitiendo el buen funcionamiento del aplicativo por parte del área de
informática. Y por último que MySQL es un motor de base de datos que
proporciona solidez, confiablidad, pertinencia, seguridad, integridad,
disponibilidad, relevancia con datos almacenados como: Instituciones
educativas, datos de personas particulares, documentos legales,
12
resoluciones, citas, etc.
Este proyecto tiene relación a la investigación planteada debido a que se
desarrolla una aplicación Web utilizando el framework Symfony, siendo este
uno de los frameworks del lado del servidor que será objeto de estudio en esta
investigación.
2.1.2. Antecedentes nacionales
Calmet, J.(2014) en su tesis “Sistema informático Web de trámite
documentario para la Ugel de Zarumilla – Tumbes utilizando los frameworks
AngularJS y Spring MVC”, presenta una propuesta funcional de un sistema de
información Web desarrollado utilizando dos de los frameworks más
populares hoy en día: AngularJS y Spring MVC, para la gestión de
expedientes en el proceso de tramite documentario de una Unidad de Gestión
Educativa Local, cuyo propósito es mejorar el control y seguimiento de los
expedientes al interior de la institución. Para lograr esto, previo al desarrollo
de la propuesta, se realizó un análisis de la institución, identificando la realidad
problemática y las oportunidades de mejora a través de un sistema de
información Web.
Para el desarrollo de la propuesta se escogió a ICONIX como metodología de
desarrollo lo que permitió realizar el análisis y diseño del sistema haciendo
uso de técnicas como el modelado con Lenguaje Unificado de Modelado
(UML).
De esta manera se procedió a la implementación utilizando un entorno de
desarrollo integrado (IDE) que permitió realizar la correcta integración de los
frameworks seleccionados, llegando a la conclusión que a través del
desarrollo de un sistema de información Web para el proceso de tramite
documentario, se logra capitalizar una oportunidad de mejora en el control y
seguimiento de expedientes al interior de la institución utilizando AngularJS y
Spring MVC como frameworks front-end y back-end respectivamente y una
metodología de desarrollo ágil para acelerar el desarrollo del sistema.
Esta tesis se relaciona con la presente investigación por la razón que uno de
los frameworks utilizados para el desarrollo del sistema informático en esa
tesis será objeto de estudio en la investigación debido a que pertenece a los
frameworks del lado del cliente, AngularJs.
13
2.2. Framework
2.2.1. Definición
Un framework o marco de trabajo es un conjunto de componentes físicos y
lógicos estructurados de tal forma que permiten ser reutilizados en el Diseño
y Desarrollo de nuevos Sistemas de Información. (Minetto, 2007).
2.2.2. Clasificación
Un marco de trabajo (framework) se puede clasificar tomando en cuenta el
ámbito en que se desenvuelve:
14
System infraestructure frameworks: Frameworks para
infraestructura de un sistema. Estos frameworks simplifican el
desarrollo de aplicaciones, ya sea frameworks de comunicaciones,
interfaces de usuario, etc. Este tipo de frameworks son internos de la
organización y no son vendidos a los consumidores directamente.
Middleware integration frameworks: Frameworks de integración.
Estos frameworks son comúnmente utilizados para integrar
aplicaciones distribuidas y componentes. Son diseñados para mejorar
la habilidad de los desarrolladores de Software de modularizar,
reutilizar y extender la infraestructura de las aplicaciones para trabajar
en ambientes distribuidos. Estos frameworks pueden ser vendidos a
los consumidores, que usualmente son otras organizaciones
dedicadas al desarrollo de Software.
Enterprise application frameworks: Frameworks para aplicaciones
empresariales. Estos frameworks tratan con muchos dominios de
aplicaciones como telecomunicaciones, aeronáutica, finanzas. En
comparación con los frameworks de infraestructura o integración, son
costosos de desarrollar o de adquirir. Los frameworks empresariales
soportan el desarrollo de aplicaciones directamente, en contraste a
los frameworks de integración e infraestructura, que se enfocan en el
desarrollo interno a una organización (Object-Oriented Application
Frameworks, 2016).
15
dependencia entre métodos, redefinir una operación puede requerir
redefinir otra, y así sucesivamente.
Black Box: Frameworks de Caja Negra o dirigidos por datos, se
estructura utilizando composición de objetos y delegación en lugar de
herencia. Enfatizan las relaciones dinámicas entre los objetos en lugar
de relaciones estáticas entre las clases. Se puede añadir nueva
funcionalidad al framework componiendo objetos existentes de
diferentes formas, para reflejar el comportamiento de la aplicación. El
usuario del framework no tiene que conocer con profundidad los
detalles de éste, sino sólo conocer cómo usar y combinar los objetos
existentes. En general son más fáciles de utilizar que los frameworks
de caja blanca. Por el contrario, los frameworks de caja negra son
más difíciles de construir, porque sus interfaces y puntos de anclaje
deben anticiparse a un conjunto muy amplio de posibilidades.
Grey Box: Estos frameworks es la combinación de los frameworks de
caja blanca y negra, buscando evitar sus desventajas. Permiten la
extensión mediante la herencia y la ligadura dinámica, y además
tienen la propiedad de ocultar información innecesaria a los usuarios
del framework. Los frameworks de caja gris intentan sacar provecho
de los beneficios de ambos tipos de frameworks, mientras intentan
validar las limitaciones de ambos. Realizando un análisis del ciclo de
vida de los distintos tipos de frameworks, los frameworks de caja
negra representan la etapa de madurez de un framework, pero
muchas veces hay limitaciones tanto de tiempo como de dinero que
impiden alcanzar esta etapa, por lo que el desarrollo del framework
queda “a medio camino” como un framework de caja gris (Fernandez
Silva & Jalil Moreno, 2007).
16
Tabla 1.
Principales características identificadas en los frameworks (marcos de
trabajo).
DESCRIPCIÓN CARACTERÍSTICAS
Abstracción de URLs No es necesario manipular directamente las URLs ni las
sesiones, el marco de trabajo ya se encarga de hacerlo.
Acceso a Datos Incluyen herramientas e interfaces necesarias para
integrarse con herramientas de acceso a datos.
Disponen de conectores a las bases de datos más
conocidas.
Controladores La mayoría de marcos de trabajo e interfaces
implementa una serie de controladores para gestionar
eventos, como una introducción de datos mediante un
formulario o el acceso a una página. Estos controladores
poder ser fácilmente adaptables a las necesidades de un
proyecto en concreto.
Autenticación y Incluye mecanismos para la identificación de usuarios,
control de acceso mediante la solicitud de nombre de usuario y una
contraseña cifrada, para restringir el acceso a
determinados componentes y usuarios.
Formularios Cuenta con herramientas para crear formularios,
permitiendo la aplicación de controles personalizados a
cada uno de los objetos que son utilizados en
formularios.
Código Abierto Reducción de costos en licencias, pues la mayoría de
(OpenSource) componentes reutilizables son de código abierto.
Reducción de Permiten la creación de plantillas para la reutilización de
esfuerzo en el código. Permite la simplificación de problemas comunes
desarrollo en proceso desarrollo, por ende se optimizan los
tiempos de desarrollo.
Solución definida y Satisface requerimientos claramente definidos en un
controlada proyecto.
Fuente: (Guerrero & Recaman, 2009) .
17
uso de él en situaciones muy variadas. Esto da confianza al
programador para utilizarlo y saber que existe información generada
por otros usuarios que alertan sobre posibles fallos en el framework
y hasta la forma de evadirlos.
Implantación de mejores prácticas: En el diseño y construcción de
un framework, los desarrolladores se basan en todo su conocimiento
y experiencia adquirida a lo largo de muchos años. El resultado es
que el programador que usa el framework utiliza, a veces sin saberlo,
las mejores prácticas introducidas en él desde el diseño, tanto las que
se usen internamente, como las expuestas en el API para uso y
extensión.
Definición de arquitectura: Los frameworks definen (total o
parcialmente) la estructura arquitectónica de la aplicación que se
monte sobre ellos. Esto ayuda al arquitecto del sistema a tomar las
decisiones más rápidamente, sobre la forma de organizar los
módulos, componentes y demás recursos que en conjunto forman la
aplicación.
Acelera el desarrollo de aplicaciones: Al sumar todos los puntos
anteriores, el resultado final del uso de los frameworks apropiados en
una aplicación es que debería recortarse el tiempo necesario para
implementar el desarrollo (Hohman Sandoval, 2014).
18
Finalmente, en una tercera se denomina el framework, el aprendizaje
deja de ser pronunciado, pero es en este punto en el que se
aprovechan las ventajas del framework aprendido y el programador
puede aportar valor al proyecto.
Lo que esto implica es que un programador que no conoce el
framework no puede comenzar inmediatamente a codificar, sino que
debe dedicar tiempo a conocer la herramienta y eso puede retrasar
un proyecto si no se le toma en cuenta.
Limitaciones y restricciones del framework: Los frameworks
pueden llegar a ser muy intrusivos en el código de la aplicación ya
que obliga a utilizar la arquitectura que define o a utilizar las clases e
interfaces de las que debe heredar la aplicación. Esto crea un alto
acoplamiento con las interfaces/clases del framework y hacen difícil
quitar o cambiar el framework por otro con características similares.
Uso de un framework no apropiado: Es posible que se elija usar un
framework no apropiado para el fin que se pretende alcanzar o bajo
las circunstancias en las que se encuentra el proyecto por una
variedad de razones. El framework puede no estar diseñado para el
uso que se pretender dar, no ser compatible con otros frameworks
usados en el proyecto, no estar suficientemente probado y causar
problemas en los que puede ser difícil detectar la causa ya que el
código del framework normalmente es ajeno al programador, puede
no tener un buen soporte de la comunidad. Una comunidad fuerte (en
número de integrantes y participación) es importante proporcionar
soporte a los programadores, pues es común que los problemas con
los que se enfrente una persona al usar el framework, se lo encuentre
otra después. Sí existe falta de documentación, foro de discusión y
otras herramientas, encontrar información útil será muy complicado,
puede no estar lo suficientemente maduro, por lo que puede haber
cambios no compatibles y radicales entre una versión y la siguiente,
lo que puede complicar introducir actualizaciones que corrigen errores
con el framework o agregar mejoras en rendimiento o en su utilización
(Hohman Sandoval, 2014).
19
2.2.6. Componentes de un framework
Según (Pree, 1994), los frameworks están conformados por zonas
congeladas (frozen spots) y zonas calientes (hot spots).
Las partes congeladas definen la arquitectura general de un sistema de
software, es decir, sus componentes básicos y las relaciones entre estos.
Esas partes permanecen inalteradas (congeladas) en cualquier
instanciación del framework.
Las partes calientes representan los puntos en los que los programadores
pueden añadir su propio código para añadir la funcionalidad específica de
su propio proyecto.
Cabe recalcar que los frameworks son más que MVC, debido a que “MVC
no es una arquitectura” (Martin, 2011).
20
Controlador: es el intermediario entre la vista y el modelo. Es quien
controla las interacciones del usuario solicitando los datos al modelo
y entregándolos a la vista para que ésta la presente al usuario.
21
se codifica en un lenguaje soportado por los navegadores Web en la que se
confía la ejecución al navegador.
22
Es importante mencionar que una página Web puede contener elementos
que permitan una comunicación activa entre los usuarios y la información.
Esto permite que el usuario acceda a los datos de modo interactivo, gracias
a que la página responderá a cada una de sus acciones, como por ejemplo
rellenar y enviar formularios, participar en juegos diversos y acceder a
gestores de base de datos de todo tipo (Amarez Hernández, Campos
Cantero, & Castelo Delgado, 2011).
CARACTERÍSTICA DESCRIPCIÓN
Ahorro de tiempo Se pueden realizar tareas sencillas sin necesidad
de descargar e instalar ningún programa.
Compatibilidad No hace falta crear diferentes clientes en función
de cada sistema operativo. Basta tener un
navegador actualizado para poder utilizarlos.
Espacio No ocupan espacio en el disco duro
Multiplataforma Se puede usar desde cualquier sistema operativo
porque solo es necesario tener un navegador
Fuente: (Amarez Hernández, Campos Cantero, & Castelo Delgado, 2011) .
23
2.4. Framework Laravel
2.4.1. Introducción
Laravel es un framework Open-Source para desarrollar en PHP, con una
filosofía muy clara enfocada para que el código sea lo más expresivo y
elegante posible, para desarrollar aplicaciones y servicios Web.
24
Laravel 5.1 sigue las mejoras realizadas en Laravel 5.0 mediante la adopción
(PSR-2 Codificación guía de estilo) y la adición de retransmisión de eventos,
parámetros de middleware, las mejoras comandos de Artisan, etc.
2.4.2. Instalación
Para ver como se realiza la instalación de este framework ver Anexo 5.
2.4.3. Características
En la Tabla 3 se muestra las principales características de Laravel:
Tabla 3.
Características de Laravel
CARACTERÍSTICA DESCRIPCIÓN
Modularidad Laravel se ha construido utilizando más de 20 librerías
diferentes, fuertemente integradas con el gestor de
dependencias Composer.
Testeabilidad Laravel tiene varios asistentes (helpers) que ayudan a visitar
las rutas de testeo, navegando por el HTML resultante para
asegurar que los métodos que se llamen desde las diferentes
clases sean correctos.
Enrutamiento Laravel proporciona una extrema flexibilidad en la definición
(routing) de las rutas de la aplicación. Inspirado en la filosofía de los
micro-frameworks Sinatra y Silex. Todavía más, es posible
adjuntar funciones de filtro que se ejecuten en rutas
específicas.
Gestor de Frecuentemente la aplicación se ejecutará en diferentes
configuración entornos, esto quiere decir que tanto la base de datos como
credenciales o dominios serán diferentes si se ejecutan en el
entorno de test o en los servidores de producción. Laravel
permite definir configuraciones separadas para cada uno de
los entornos.
Confeccionador de Cuando se instala Laravel viene con un constructor de
consultas y ORM consultas, este permite lanzar consultas a la base de datos
(Object Relational con una sintaxis PHP de métodos enlazados, en lugar de
Mapper) tener que escribir código SQL. Además proporciona un ORM
y una implementación de Registro Activo (ActiveRecord)
llamado Eloquent, que permite definir modelos
interconectados. Estos componentes son compatibles con
gestores de base de datos tales como PostgreSQL, SQLite,
MySQL y SQL Server.
Confeccionador Inspirado por la filosofía Rails, estas características permiten
esquema, definir un esquema de base de datos dentro de PHP y
mantener un registro de los cambios para así ayudar en la
25
migraciones y migración de base de datos. Las repoblaciones (Seeding)
repoblaciones permiten poblar las tablas seleccionadas de una base de
datos una vez realizada la migración para de esta forma
rellenar con datos las tablas.
Motor de plantillas Laravel viene con Blade, un lenguaje ligero de plantillas con
el cual se pueden crear diseños anidados con bloques
predefinidos en el que el contenido se inserta dinámicamente.
Además Blade guarda en Caché los archivos generados.
Email Con la clase Mail que es un derivado de la librería SwiftMailer,
Laravel proporciona una forma muy sencilla de enviar emails,
con contenido HTML y adjuntos.
Autenticación Laravel viene con las herramientas para crear en toda Web
un formulario de registro, autenticación e incluso envió de
contraseñas a usuarios que no la recuerden.
Fuente: (Orduz Navarrete, 2016).
2.4.4. Estructura
La estructura de aplicaciones predeterminada de Laravel pretende
proporcionar un gran punto de partida para aplicaciones grandes y
pequeñas. (Laravel, 2016).
26
Figura 4. Estructura de directorios en
Laravel.
Tabla 4.
Estructura de directorios en Laravel
DIRECTORIO PROPÓSITO
app/ Contiene el código principal de la aplicación, todas las clases
de la aplicación estarán en este directorio.
bootstrap/ Contiene archivos que inicializan el framework y configuran
el autoloading. Este directorio contiene un directorio Caché
que contiene archivos generados por el framework para la
optimización del rendimiento, como la ruta y los archivos de
Caché de servicios.
config/ Contiene todos los archivos de configuración de la
aplicación.
database/ Contiene las migraciones de la base de datos y los seedings.
También se puede utilizar este directorio para mantener una
base de datos SQLite.
public/ Contiene el archivo index.php, que es el punto de entrada
para todas las solicitudes que entran a la aplicación. Este
directorio también contiene imágenes, archivos JavaScript y
CSS.
27
resources/ Contiene las vistas de la aplicación, así como recursos
crudos, no compilados, como LESS, SASS o JavaScript.
Este directorio también contiene todos los archivos de
idioma.
routes/ Contiene todas las definiciones de ruta para su aplicación.
De forma predeterminada, se incluyen tres archivos de ruta
con Laravel: Web.php, api.php y consola.php.
storage/ Contiene las plantillas de Blade compiladas, sesiones
basadas en archivos, caches de archivos y otros archivos
generados por el framework.
tests/ Contiene las pruebas automatizadas que se implementen.
vendor/ Contiene las dependencias descargadas e instaladas con
Composer
Fuente: (Laravel, 2016).
Elaboración propia
2.4.5. Componentes
Entre los principales componentes de Laravel se tienen los siguientes:
28
funciona en todos los sistemas de base de datos compatibles. El
generador de consultas de Laravel utiliza el enlace de parámetros
PDO para proteger su aplicación contra los ataques de inyección
SQL. No hay necesidad de limpiar las cadenas que se pasan como
enlaces.
Migrations: Las migraciones son como el control de versiones para
la base de datos, lo que permite modificar y compartir fácilmente el
esquema de datos de la aplicación. Las migraciones suelen ser
emparejadas con el constructor de esquema de Laravel para crear
fácilmente el esquema de la base de datos de la aplicación.
Eloquent: Es un ORM (Object Relational Mapper) incluido en Laravel
que proporciona una implementación de ActiveRecord simple y
hermosa para trabajar con la base de datos. Cada tabla de la base de
datos tiene un “Modelo” correspondiente que se utiliza para
interactuar con esa tabla. Los modelos permiten consultas los datos
en las tablas, así como insertar nuevos registros en la tabla.
29
2.5. Framework Symfony
2.5.1. Introducción
Symfony es un completo framework diseñado para optimizar, gracias a sus
características, el desarrollo de aplicaciones Web. Para empezar, separa la
lógica de negocio, la lógica de servidor y la presentación de la aplicación
Web. Proporciona varias herramientas y clases encaminadas a reducir el
tiempo de desarrollo de una aplicación Web compleja. Además, automatiza
las tareas más comunes, permitiendo al desarrollador dedicarse por
completo a los aspectos específicos de cada aplicación. El resultado de
todas estas ventajas es que no se debe reinventar la rueda cada vez que se
crea una nueva aplicación Web.
30
grado de madurez suficiente como para integrarlas en un framework
completo. Fabien empleo un año entero para desarrollar el núcleo de
Symfony, basando su trabajo en el framework Mojavi (que también era un
framework que seguía el funcionamiento MVC), en la herramienta Propel
para el mapeo de objetos a bases de datos (conocido como ORM, de “object-
relational mapping”) y en los helpers empleados por Ruby on Rails en sus
plantillas.
2.5.2. Instalación
Para ver como se realiza la instalación de este framework ver Anexo 6.
2.5.3. Características
Symfony se diseñó para que se ajuste a los siguientes requisitos:
Tabla 5.
Características de Symfony.
ITEM DESCRIPCIÓN
1 Fácil de instalar y configurar en la mayoría de plataformas (y con la
garantía de que funciona correctamente en los sistemas Windows y *nix
estándares).
2 Independiente del sistema de gestor de bases de datos.
3 Basado en la premisa de “convenir en vez de configurar”, en la que el
desarrollador solo debe configurar aquello que no es convencional.
4 Sigue la mayoría de mejores prácticas y patrones de diseño.
Preparada para aplicaciones empresariales y adaptables a las políticas
5 y arquitecturas propias de cada empresa, además de ser lo suficiente
estable para desarrollar aplicaciones a largo plazo.
6 Fácil de extender, lo que permite su integración con librerías
desarrolladas por terceros.
31
7 La capa de presentación utiliza plantillas y layouts que pueden ser
creados por diseñadores HTML sin ningún tipo de conocimiento del
framework.
8 Los formularios incluyen validación automatizada, lo que asegura la
obtención de datos correctos y mejora la experiencia de usuario.
9 La gestión de la Caché reduce el ancho de banda utilizado y la carga del
servidor.
10 La autenticación y la gestión de credenciales simplifican la creación de
secciones restringidas y la gestión de la seguridad de usuario.
El sistema de enrutamiento y las URL limpias permiten considerar a las
11 direcciones de las páginas como parte de la interfaz, además de estar
optimizadas para los buscadores.
Las interacciones con Ajax son muy fáciles de implementar mediante los
12 helpers que permiten encapsular los efectos JavaScript compatibles con
todos los navegadores en una única línea de código.
Fuente: (Francois Zaninotoo).
2.5.4. Estructura
Una vez instalado Symfony, en el proyecto se observa una jerarquía de
directorios. Esta jerarquía es común a todos los proyectos de Symfony y está
compuesta por las carpetas que muestra a continuación la Figura 15:
Figura 6. Estructura de
directorios de una aplicación en
Symfony.
32
Tabla 6.
Estructura de directorios de una aplicación en Symfony.
DIRECTORIO PROPÓSITO
app/ Contiene los archivos de configuración, la caché, los logs y los
recursos globales.
app/config Guarda todos los archivos de configuración de la aplicación.
app/cache Contiene todos los archivos generados por las numerosas
cachés de Symfony (clases, enrutamiento, plantillas, entidades,
validación, etc.). Junto con el directorio app/logs es el único en
el que Symfony debe tener permisos de escritura.
app/logs Contiene los archivos de logs generados por la aplicación en
cualquier entorno de ejecución (desarrollo, producción, tests,
etc.). Junto con el directorio app/cache es el único en el que
Symfony debe tener permisos de escritura.
app/Resources Almacena los recursos que se utilizan globalmente en el
proyecto (como por ejemplo el layout de las plantillas) o
recursos muy especiales que no encajan en ningún otro sitio
(como por ejemplo una librería para comprimir archivos CSS y
JavaScript).
src Guarda todo el código fuente propio del proyecto. Aquí es
donde se crean los bundles de la aplicación
vendor Contiene todo el código fuente de Symfony y todas las librerías
externas.
web El único directorio público del proyecto. Contiene archivos Web
(CSS, JavaScript, e imágenes) y los controladores frontales de
la aplicación (app.php y app_dev.php).
Fuente: (Eguiluz, 2012).
2.5.5. Componentes
Entre los principales componentes de Symfony cabe destacar los siguientes:
33
Cache Component: Este componente se utiliza para almacenar en caché el
contenido arbitrario de una aplicación y así mejorar su rendimiento (Symfony,
2017).
34
2.6. Framework AngularJs
2.6.1. Introducción
AngularJs es una tecnología del lado del cliente, una framework JavaScript
OpenSource desarrollado por Google utilizado principalmente para crear
aplicaciones Web de una sola página; funciona con las tecnologías Web más
asentadas a lo largo del tiempo (HTML, CSS y JavaScript) para hacer el
desarrollo de aplicaciones Web fácil y rápido. El código fuente de AngularJs
está disponible gratuitamente en GitHub bajo la licencia MIT. Esto significa
que cualquier persona puede contribuir y ayudar a su desarrollo.
2.6.2. Instalación
Para ver como se realiza la instalación de este framework ver Anexo 7.
2.6.3. Características
La Tabla 7 muestra las características principales del framework AngularJs.
35
Tabla 7.
Características principales de AngularJs
CARACTERÍSTICAS DESCRIPCIÓN
MVC bien realizado Normalmente en los frameworks MVC se pide al
desarrollador que escriba el código de una cierta forma
para poder funcionar. Esto supone mucho trabajo.
AngularJs sin embargo gestiona los componentes y los
interconecta de una forma muy sencilla y sin
complicaciones.
HTML para la interfaz Se utiliza el HTML con su sistema de etiquetado
tradicional para la definición de la interfaz gráfica de la
aplicación Web. Mucho más sencillo e intuitivo que
tener que definir toda la UI mediante JavaScript.
Modelos de datos En AngularJs los modelos de datos son JavaScript
POJO Objects (POJO) con lo que no requieren las funciones
extras estilo getters y setters. El código queda limpio y
natural.
Directivas con AngularJs permite añadir funcionalidad extra con
comportamientos nuevas etiquetas HTML, se pueden inventar y definir
propios elementos HTML. Esto es extremadamente
potente, reutilizable y escalable.
Flexibilidad con los De una forma eficiente, cómoda y sencilla se puede
filtros formatear los datos o filtrarlos con una sola línea de
código. Son funciones desarrolladas totalmente
independientes que se encargan de transformar los
datos.
Manipular el DOM en Tradicionalmente (por ejemplo con JQuery)
el controlador manipulamos el DOM añadiendo el comportamiento.
Con AngularJs se separa el comportamiento de
manipular del DOM, de hecho en AngularJs se debe
realizar en las directivas y no en la vista.
Sistema de eventos Sencilla comunicación por mensajes mediante eventos.
Comunicando un particular nodo con sus hijos.
Mediante broadcast() se envía a todos sus hijos
y mediante emit() a todos sus padres.
Unit Testing AngularJs tiene un buen mecanismo de testeo en parte
gracias también a su inyección de dependencias.
Fuente: (Rodriguez, 2014).
2.6.4. Estructura
Cuando se empieza a trabajar con AngularJs uno de los problemas que
rápidamente aparece, es como organizar los diferentes directorios. Sobre
todo cuando la aplicación incrementa su tamaño. Para ese problema existen
varios enfoques posibles (Álvarez, 2015):
36
Patrón Inline: Es la estructura más sencilla y hace referencia a
cuando los servicios, directivas, controllers y filtros están ubicados en
una etiqueta de “script” dentro de la misma página HTML.
37
Figura 10. Patrón Específico
Patrón Dominio: Cuando la
aplicación que se desarrolla es de gran tamaño aparece este patrón
en el cual los elementos se agrupan en relación con el dominio al que
pertenecen.
2.6.5. Componentes
Módulos: Son una pieza fundamental en el desarrollo cotidiano,
sirven para organizar el código en librerías. Se puede decir que los
38
módulos son contenedores de diferentes partes de la aplicación
(controllers, services, filters, directives, etc.).
Scopes: Los Scopes son un núcleo fundamental de cualquier
aplicación de AngularJs. El objeto scope es donde se define la
funcionabilidad de la aplicación, los métodos en los controladores y
las propiedades en las vistas. Los Scopes sirven de nexo de unión
entre el controlador y la vista, estos guardan la información de los
modelos que se representan en la vista y también atributos que se
utilizan para manejar la lógica de la misma.
Controladores: Los controladores son los encargados de inicializar y
modificar la información que contienen los Scopes en función de las
necesidades de la aplicación, cuando se crea un nuevo controlador
en una página. Angular le une un nuevo Scope, por lo que solo se
tendrá que realizar la función del constructor.
Directivas: Las directivas son etiquetas en un elemento del DOM (un
atributo, un nombre de elemento, comentario o clase CSS) que
indican al compilador de HTML de AngularJs ($compile) cuál debe ser
su comportamiento.
Filtros: Los filtros permiten modificar el modo en el que se va a
presentar la información al usuario. AngularJs cuenta con una gran
cantidad de filtros ya creados para su uso directamente y una
funcionalidad increíble para crear filtros.
Servicios: Es un objeto JavaScript que permite obtener información.
Estos objetos tienen métodos que sirven para mantener los datos en
el ciclo de vida de la aplicación y se comunican a través de los
controladores de una manera consistente.
Factorías: Las factorías son como contenedores de código que se
puede usar en las aplicaciones. Son un tipo de servicio, “service”
AngularJs, con el que se implementan librerías de funciones o
almacén de datos.
Promesas: Una promesa es un método para resolver el valor de una
variable de forma asíncrona. Las promesas son objetos que
representan el valor de retorno o la excepción que retorna finalmente
39
una función; son de gran utilidad cuando se trata con objetos remotos.
Se podría ver desde el punto de vista de que fuesen la proxy de estos
objetos.
Service $Http: Es un servicio básico de AngularJs que facilita la
comunicación con los servidores HTTP remotos a través del objeto
XMLHttpRequest del navegador o mediante JSONP.
40
2.7. Framework JQuery
2.7.1. Introducción
JQuery es un framework JavaScript libre y OpenSource, del lado del cliente,
que se centra en la interacción entre el DOM, JavaScript, Ajax y HTML. El
objetivo de esta librería JavaScript es simplificar los comandos comunes de
JavaScript. De hecho, el lema de JQuery es “escribir menos para hacer más”
(Write less, do more).
JQuery, al menos en su origen, es obra de una sola persona: John Resig.
Este joven prodigio de JavaScript desarrolló la primera versión de JQuery en
Enero 2006. En aquel momento tenía solo 20 años. Resig continúa siendo
el motor de JQuery, pero ahora le ayuda una comunidad de apasionados.
(Van Lancker, 2014).
JQuery es software libre y de código abierto, posee un doble licenciamiento
bajo la Licencia MIT y la Licencia Pública General de GNU v2, JQuery, al
igual que otras bibliotecas, ofrece una serie de funcionalidades basadas en
JavaScript que de otra manera requerirán de mucho más código, es decir,
con las funciones propias de esta biblioteca se logran grandes resultados en
menos tiempo y espacio. (Bravo Olmos & Enriquez Solís, 2012).
Además la fundación de JQuery cuenta con otros proyectos:
JQuery User Interface: Conocido como JQuery UI, es una biblioteca de
componentes para el framework JQuery que le añaden un conjunto de
plug-in, así como efectos visuales con el objetivo de crear aplicaciones
Web amigables e impresionantes para el usuario (JQuery User Interface,
s.f.) .
QUnit JS Unit Testing: QUnit es un marco potente y fácil de usar
pruebas unitarias. Es usado por JQuery, JQuery UI y proyectos JQuery
41
Mobile y es capaz de probar cualquier código JavaScript genérico (QUnit
JS Unit Testing, s.f.).
JQuery Mobile: Este framework te permite el desarrollo de aplicaciones
para teléfonos móviles (dispositivos táctiles) (JQuery Mobile, s.f.).
2.7.2. Instalación
Para ver como se realiza la instalación de este framework ver Anexo 8.
2.7.3. Características
A continuación se listan las características más resaltantes de este
framework:
2.7.4. Componentes
JQuery Tools es una colección de componentes básicos para interfaz de
usuario que se emplea alrededor del mundo (JQuery Tools, 2017). JQuery
Tools fue creado teniendo como propósito mejorar la usabilidad y respuesta
de sitios web, por ello se emplean diversos componentes que usualmente
42
no se encuentran en otras colecciones de interfaz de usuario. Por ello,
JQuery Tools presenta gran valor para todos los desarrolladores web ya que
permite crear páginas web que se vean bien y que presenten información de
manera adecuada.
Tabla 8.
Componentes de JQuery
Componente Descripción
JQuery Tabs Las pestañas son uno de los elementos más empleados en el
desarrollo Web, pues permite mostrar contenido en una misma
página. JQuery Tabs permite crear pestañas horizontales y
acordeones.
JQuery Tooltip Las anotaciones ayudan a crear una interfaz más amigable ya que
permiten que el usuario pueda visualizar consejos para un mejor uso
y una mejor experiencia. JQuery Tooltip te permite crear anotaciones
(con efectos) grandes y pequeñas.
JQuery Overlay Las superposiciones son parte importante del entorno Web ya que
permiten que el usuario se concentre en un solo elemento. Con
JQuery Overlay se puede crear presentaciones de imágenes y
ventanas de diálogo modal.
JQuery Scrollable Otro componente que se emplea ampliamente en el entorno Web,
ayuda a visualizar contenido o imágenes de manera más interactiva.
JQuery Form Este componente ofrece las herramientas esenciales para construir
formularios para cualquier propósito.
Fuente: (JQuery Tools, 2017)
Elaboración propia
43
Capítulo 3. Metodología
Tabla 9.
Empresas e Instituciones públicas y privadas
44
3.3. Técnicas e instrumentos para la recolección de datos.
Los instrumentos y técnicas que se utilizaron en este trabajo de investigación
son:
3.3.1. Encuesta.
El objetivo de la encuesta es obtener información de las empresas e
instituciones de Piura que se utilizará en este trabajo de investigación (ver
Anexo 3).
3.3.2. Observación.
Esta técnica se utilizó para recolectar los datos que se obtuvieron en el
proceso de comparación de tiempos de ejecución en cada escenario de
prueba.
45
Apache JMeter es una herramienta de carga para llevar a cabo simulaciones
sobre cualquier recursos Software.
46
públicas o privadas. Para poder llevar a cabo esta encuesta se realizó un
muestreo por conveniencia.
47
Módulo de
Módulo de Módulo SIAF Finanzas Módulo de
Contabilidad 6% 7% Lógistica
Módulo de 6% 7%
Recaudación
6% Módulo de
Recursos
Módulo Humanos
Académico 19%
6%
Módulo de
Control de
Iventarios
Módulo de 6%
Módulo de
Trámite
Producción y
Documentario
Fabricación
31%
6%
Figura 14. Resultados del módulo más empleado
Elaboración propia
48
Inserción
Másiva
Modificaciones 11%
15% Consultas
37%
Registros
37%
Como se puede observar en la Figura 15, los encuestados indicaron que las
operaciones de Consultas y Registros (37%) son las más frecuentes sobre
el módulo que eligieron, seguido de las operaciones de Modificaciones (15%)
e Inserción Masiva (11%).
49
Teniendo en cuenta que existen múltiples frameworks del lado del cliente y
del lado del servidor, el proceso de selección se realizó tomando como base
un ranking de los frameworks más utilizados.
Tabla 10.
Frameworks PHP más utilizados
50
En la Tabla 11 se muestra los frameworks JavaScript más utilizados.
Tabla 11.
Frameworks JavaScript más utilizados
51
Como se puede observar en la Figura 16, los frameworks PHP que más se
han buscado en el año 2016 son Laravel y Symfony.
Tabla 12.
Trabajos de investigación y criterios de evaluación
Lenguaje
Documentación
Curva de aprendizaje
(Guerrero & Recaman, Compatibilidad con base de datos
Validación de datos en el cliente
2009)
Soporte para AJAX
Módulos para presentación de datos
Utilidades gráficas
General: madurez del framework, soporte y
documentación del framework, tipo de
licenciamiento.
52
Funcionalidad: definición de metadatos, facilidad de
generación de consultas (Queries), control de
transacciones y concurrencias.
(Suarez Silva, 2011) Rendimiento: Tiempo de ejecución de operaciones
CRUD (Create, Read, Update y Delete).
Recursos: Requerimientos de hardware y software
para el desarrollo, costo de desarrollo.
Facilidades para el desarrollo: curva de aprendizaje,
herramientas de desarrollo.
(Callejas Cuervo, Tiempo empleado en la ejecución de determinadas
instrucciones.
Peñalosa Parra , &
Memoria RAM consumida en la ejecución de
Alarcón Aldana, 2011) algunas instrucciones
Uso de GarbageCollector
Ingeniería de carga: CPU%, Memoria%.
Línea base: ancho de banda de subida, ancho de
(Sánchez Osejo & Vera
banda de bajada.
Cárdenas, 2011) Carga transaccional: número de peticiones
ejecutadas, tiempo de respuesta.
Integridad: éxitos y fallos.
Elaboración propia.
Tabla 13.
Criterio de comparación y unidades seleccionadas para la evaluación.
Criterio Unidades
Tiempo empleado en la ejecución de determinadas Milisegundos
instrucciones
Elaboración propia
53
Tabla 14.
Resumen de Expedientes Internos y Externos registrados en el año 2016.
Tabla 15.
Meses que tienen la mayor cantidad de expedientes internos y externos
registrados – Año 2016.
EXPEDIENTES REGISTRADOS
TIPO DE MES CANTIDAD DIAS CANTIDAD DE
EXPEDIENTES LABORABLES EXPEDIENTES DIARIOS
54
Cabe señalar que para realizar la simulación en esta investigación, se
generaron datos para los 12 meses del año 2017 repartidos solo para las
bandejas (recibidos, enviados, recepcionados, finalizados) en las diferentes
unidades (Informática y Sistemas, Mesa de Partes, Rentas, Logística,
Catastro, Gerencia, Contabilidad, Administración, Almacén, Imagen
Institucional, Registro Civil, Obras, Recursos Humanos y Patrimonio), en la
Tabla 16 se muestra las cantidades de datos generados.
Tabla 16.
Cantidades de datos generados para la simulación.
55
Tabla 17.
Recursos para el desarrollo y simulación de operaciones de las aplicaciones
desarrolladas.
56
Capítulo 4. Caso de estudio: Sistema de Trámite Documentario
Para llevar a cabo esta investigación se realizó el desarrollo del módulo de
Trámite Documentario, el cual según la encuesta realizada es el más
empleado o desarrollado por las empresas de Piura, además solo se
implementaron las operaciones más frecuentes resultantes en la encuesta
aplicada.
57
Figura 18. Proceso de trámite documentario en una organización
Fuente: (Calmet Izquierdo, 2014)
58
4.2. Obtención de requerimientos.
4.2.1. Requerimientos funcionales
A continuación en la Tabla 18 se detallan los requerimientos
asociados al proceso de trámite documentario.
Tabla 18.
Requerimientos funcionales
ITEM REQUERIMIENTOS
RF01 El sistema permitirá a los usuarios consultar la bandeja de
expedientes enviados.
RF02 El sistema permitirá a los usuarios consultar la bandeja de
expedientes recibidos.
RF03 El sistema permitirá a los usuarios consultar la bandeja de
expedientes recepcionados.
RF04 El sistema permitirá a los usuarios consultar la bandeja de
expedientes finalizados.
RF05 El sistema permitirá a los usuarios ver los movimientos de un
expediente mediante el número de expediente y tipo de trámite.
RF06 El sistema permitirá al solicitante consultar el movimiento de sus
expedientes mediante el número de expediente.
RF07 El sistema permitirá generar un reporte diario de los expedientes
externos recepcionados por mesa de partes.
RF08 El sistema permitirá a los usuarios registrar un trámite ya sea de
tipo externo o interno.
Elaboración propia
59
Tabla 20.
Especificación del requerimiento RF02
Tabla 21.
Especificación del requerimiento RF04
Tabla 22.
Especificación del requerimiento RF04
60
Pre- Los usuarios deben haber ingresado a la opción bandeja
condiciones finalizados. El usuario debe haber finalizado expedientes.
Post- El sistema muestra una lista de los expedientes
condiciones finalizados.
Elaboración propia
Tabla 23.
Especificación de requerimiento RF05
Tabla 24.
Especificación de requerimiento RF06
61
Tabla 25.
Especificación de requerimiento RF07
Tabla 26.
Especificación de requerimiento RF08
Registrar tramite
Actor Mesa de parte, Jefe de Unidad
Descripción El sistema permitirá registrar un trámite ya se de tipo
externo o interno.
Flujo básico Los usuarios acceden a la opción registrar tramite,
se muestra una pantalla donde sebe indicar el tipo
de trámite, remitente o solicitante, folios, asunto,
acción, unidad y prioridad. El usuario llena todos los
datos y presiona el botón de registrar.
Flujos Solicitante o remitente no se encuentra
alternos registrado
El sistema muestra un mensaje indicando que no se
encuentra el solicitante buscado.
Pre- El usuario debe haber accedido a la opción registrar
condiciones expediente.
Post- El sistema debe mostrar de confirmación indicando
condiciones que el trámite se ha registrado correctamente.
Elaboración propia
4.3. Diagramas
4.3.1. Diagrama de Negocio.
Un modelo de negocio describe los procesos del negocio en términos
de casos de uso y actores que corresponden a procesos del negocio
62
y trabajadores. A continuación en la Figura 19 muestra el modelo de
negocio correspondiente al proceso de trámite documentario.
Tabla 27.
Actores de negocio
Nombre Descripción
Solicitante Persona natural o jurídica, que se acerca a la
entidad a realizar cualquier trámite. Del mismo
modo, las unidades pueden comportarse como
solicitante al emitir un pedido a otra unidad, a esto
se le considera trámite interno.
Mesa de Usuario encargado de la recepción, registro y
Partes derivación de expediente.
Jefe de Usuario de gestionar los expedientes que recibe en
Unidad su unidad.
Elaboración propia
Gestión de expedientes.
Control y monitoreo de expedientes.
63
Gestión de expedientes
64
4.3.3. Diagramas de Secuencia
Gestión de expedientes
1. Registrar tramite
65
2. Consultar bandeja expedientes recibidos
66
4. Consultar bandeja expedientes finalizados
67
6. Consultar movimientos de expedientes del solicitante
68
4.3.4. Diagramas de Colaboración
Los diagramas de colaboración son un tipo de diagrama de
interacción cuyo objetivo es describir el comportamiento dinámico del
sistema de información mostrando cómo interactúan los objetos entre
sí, es decir, con que otros objetivos tienen vínculos o intercambia
mensajes un determinado objeto.
Gestión de expedientes
1. Registrar trámite
69
2. Consultar bandeja expedientes recibidos
70
4. Consultar bandeja expedientes finalizados
71
6. Consultar movimientos de expedientes del solicitante
72
4.3.5. Diagrama de Clases
Los diagramas de clases son diagramas de estructura estática que
muestran las clases del sistema y sus interrelaciones (incluyendo
herencia, agregación, asociación, etc.). Los diagramas de clases son
el pilar básico del modelado UML, siendo utilizados tanto para mostrar
lo que el sistema puede hacer (análisis), como para mostrar cómo
puede ser construido (diseño). El diagrama de clases de más alto
nivel, será lógicamente un dibujo de los paquetes que componen el
sistema. Las clases se documentan con una descripción de lo que
hacen, sus métodos y sus atributos. Las relaciones entre clases se
documentan con una descripción de su propósito, sus objetivos que
intervienen en la relación y su opcionalidad.
73
Figura 38. Diagrama de Clases
Elaboración propia
74
4.3.6. Diagramas de Componentes
Los Diagramas de Componentes ilustran las piezas del software,
controladores embebidos, etc., que conformarán un sistema. Un
Diagrama de Componentes tiene un nivel más alto de abstracción que
un diagrama de clases, usualmente un componentes se implementa
por una o más clases (u objetos) en tiempo de ejecución. Estos son
bloques de construcción, como eventualmente un componente puede
comprender una gran porción de un sistema.
75
Figura 42. Diagrama de Componente - Symfony y AngularJS
Elaboración propia
76
Capítulo 5. Presentación, análisis y discusión de resultados
Cabe señalar que la cantidad de datos con que se realizó cada prueba, son aquellos
que se distribuyeron para cada unidad.
77
Tabla 28.
Tiempos promedios de ejecución obtenidos en cada prueba ejecutada.
AngularJs JQuery
2267 4250 5804 9376 1044 920 4828 1162 9011 18275 26392 42618 616 600 4546 561
2337 4288 5388 9207 946 776 4985 941 8530 18044 26145 41780 639 567 4283 492
(PHP)
2300 4290 5660 8674 967 838 4836 1222 8443 18516 26006 42466 687 560 4224 566
4978 7353 8793 20098 4471 4094 6106 4103 5182 7540 8787 21275 4102 3957 5054 3352
Symfony
5132 7338 8781 11640 3906 4086 5131 3846 5168 7014 8702 12105 3666 3711 4909 3198
5107 7009 8666 12164 3798 3684 5099 3698 5345 7692 8689 11827 3854 3766 4729 3056
5284 6911 8568 11569 4064 3663 4884 3696 5704 7490 8683 11739 3499 3743 5128 3135
Elaboración propia
78
La cantidad de usuarios para realizar las pruebas y simulación de operaciones del
sistema de trámite documentario fue de 14, que representan a los jefes de las 14
unidades empleadas para la simulación. Además el resultado en cada prueba o
combinación es el promedio de los tiempos de ejecución de los 14 usuarios, este
dato lo provee el software Apache JMeter cuando se realizaron las pruebas.
79
5.2. Análisis de resultados
El análisis estadístico de los resultados obtenidos se llevó a cabo empleando el
análisis de varianza de dos factores con varias muestras por grupo para cada
operación que se realizó en las pruebas de simulación del sistema desarrollado.
Datos para el análisis: La Tabla 28 muestra los datos que se utilizaron para llevar
a cabo el análisis estadístico de los resultados obtenidos de los promedios de los
tiempos de ejecución de cada operación que se simularon para el sistema
desarrollado.
Tabla 29.
Datos para el análisis estadístico de resultados.
Item Descripción
Factor A: Frameworks para el lado del servidor.
Factor B: Frameworks para el lado del cliente.
Variable respuesta o Variable dependiente Tiempo de ejecución de cada operación.
(Efecto):
N° de réplicas o repeticiones de la prueba: n=4
N° de niveles del factor A: a=2
N° de niveles del factor B: b=2
N° total de observaciones realizadas: N= 16
Diseño experimental utilizado para el análisis: Diseño Bifactorial 2x2
Nivel de Significancia (alfa): 5%
Elaboración propia
Tabla 30.
Prueba de Hipótesis respecto al efecto de los factores principales
80
H0: No existe diferencia significativa en el TIEMPO DE EJECUCION
DE LA OPERACIÓN ocasionada por el TIPO DE FRAMEWORK PARA
EL LADO DEL CLIENTE UTILIZADO, es decir, su efecto es igual a
Factor B: Frameworks para el
cero.
lado del cliente H1: Existe diferencia significativa en el TIEMPO DE EJECUCION DE
CADA OPERACIÓN ocasionada por el TIPO DE FRAMEWORK PARA
EL LADO DEL CLIENTE UTILIZADO, es decir, su efecto es diferente
a cero.
Elaboración propia
Tabla 31.
Prueba de Hipótesis respecto a la interacción de los factores principales.
Elaboración propia
81
A continuación se muestra el análisis varianza (ANOVA) por cada operación
simulada en la aplicación Web desarrollada:
Tabla 33.
Análisis de Varianza de los tiempos de ejecución para la Operación 1.
En dicha tabla se observa que el framework del lado del cliente produce una mayor
variabilidad en el tiempo de ejecución (2=44 943 616). Además se comprueba que
al 5% de nivel de significancia, tanto el framework del lado del servidor (Fc=6.631)
y el framework del lado del cliente (Fc=1027.724), actuando de manera
independiente, afectan significativamente al tiempo de ejecución de la operación 1,
y lo mismo sucede con la interacción de ambos factores (Fc=894.670), cuyo mayor
82
aporte en dicha variabilidad lo tienen los frameworks del lado del cliente; con lo que
se concluye que se rechazan las Hipótesis nulas formuladas en las tablas 30 y 31.
Tabla 35.
Análisis de Varianza de los tiempos de ejecución para la Operación 2.
Se observa que en dicha tabla los frameworks del lado del cliente ocasionan una
mayor variabilidad en el tiempo de ejecución (2=209171137.6). Además se
comprueba que al 5% de nivel de significancia, tantos los frameworks del lado del
servidor (Fc=1061.062) y frameworks del lado del cliente (Fc=3503.910), actuando
de manera independiente, afectan significativamente al tiempo de ejecución de la
operación 2, y lo mismo sucede en la interacción de ambos factores (Fc=3236.655)
83
cuyo mayor aporte en dicha variabilidad lo produce los frameworks del lado del
cliente; con lo que se concluye que se rechazan las Hipótesis nulas formuladas en
las tablas 30 y 31.
Tabla 37.
Análisis de Varianza de los tiempos de ejecución para la Operación 3
Se observa que en dicha tabla los frameworks del lado del cliente ocasionan una
mayor variabilidad en el tiempo de ejecución (2=415711321). Además se
comprueba que al 5% de nivel de significancia, tantos los frameworks del lado del
servidor (Fc=5860.512) y los frameworks del lado del cliente (Fc=11820.348),
84
actuando de manera independiente, afectan significativamente al tiempo de
ejecución de la operación 3, y lo mismo sucede en la interacción de ambos factores
(Fc=11789.642) cuyo mayor aporte en dicha variabilidad lo produce los frameworks
del lado del cliente; con lo que se concluye que se rechazan las Hipótesis nulas
formuladas en las tablas 30 y 31.
Tabla 39.
Análisis de Varianza de los tiempos de ejecución para la Operación 4
85
Se observa que en dicha tabla los frameworks del lado del cliente provocan una
mayor variabilidad en el tiempo de ejecución (2=1228187070). Además se
comprueba que al 5% de nivel de significancia, tantos los frameworks del lado del
servidor (Fc=50.448) y los frameworks del lado del cliente (Fc=100.388), actuando
de manera independiente, afectan significativamente al tiempo de ejecución de la
operación 4, y lo mismo sucede en la interacción de ambos factores (F c=96.207)
cuyo mayor aporte en dicha variabilidad lo produce los frameworks del lado del
cliente; con lo que se concluye que se rechazan las Hipótesis nulas formuladas en
las tablas 30 y 31.
Tabla 41.
Análisis de Varianza de los tiempos de ejecución para la Operación 5
86
del servidor afectan significativamente al tiempo de ejecución de la operación que
se está evaluando.
Se observa que en dicha tabla los frameworks del lado del servidor ocasionan una
mayor variabilidad en el tiempo de ejecución (2=387772415.56). Además se
comprueba que al 5% de nivel de significancia, tantos los frameworks del lado del
servidor (Fc=998.859) y los frameworks del lado del cliente (Fc=9.220), actuando de
manera independiente, afectan significativamente al tiempo de ejecución de la
operación 5, esto no sucede en la interacción de ambos factores (Fc=0.039); con lo
que se concluye que se rechaza la Hipótesis nula formulada en la tabla 30 pero se
acepta la Hipótesis nula formulada en la tabla 31.
Tabla 43.
Análisis de Varianza de los tiempos de ejecución para la Operación 6
87
En la Tabla 43 se muestra el análisis de varianza para la operación 6, donde se
busca demostrar que si los frameworks del lado del cliente y frameworks del lado
del servidor afectan significativamente al tiempo de ejecución de la operación que
se está evaluando.
Se observa que en dicha tabla los frameworks del lado del servidor ocasionan una
mayor variabilidad en el tiempo de ejecución (2=38109015.56). Además se
comprueba que al 5% de nivel de significancia, solo los frameworks del lado del
servidor (Fc=1505.515), actuando de manera independiente, afectan
significativamente al tiempo de ejecución de la operación 6, lo que no sucede con
los frameworks del lado del cliente (Fc=2.960) y en la interacción de ambos factores
(Fc=0.385); con lo que se concluye que para los frameworks del lado del servidor
se rechaza la Hipótesis nula formulada en la tabla 30, para los frameworks del lado
del cliente se acepta la Hipótesis nula formulada en la tabla 30 y para la interacción
de ambos factores se acepta la Hipótesis nula formulada en la tabla 31.
Tabla 45.
Análisis de Varianza de los tiempos de ejecución para la Operación 7
88
ERROR 1321677.75 12 110139.813
TOTAL 2857265.94 15
Elaboración propia
Fuente: Análisis de Varianza (ANOVA)
En dicha tabla se observa que los frameworks del lado del cliente ocasionan una
mayor variabilidad en el tiempo de ejecución (2=823102.563). Además se
comprueba que al 5% de nivel de significancia, tanto los frameworks del lado del
servidor (Fc=6.078) y los frameworks del lado del cliente (Fc=7.473), actuando de
manera independiente, afectan significativamente al tiempo de ejecución de la
operación 7, lo que no sucede con la interacción de ambos factores (Fc=0.389); con
lo que se concluye que se rechaza la Hipótesis nula formulada en la tabla 30 y se
acepta la Hipótesis nula formulada en la tabla 31.
Tabla 47.
Análisis de Varianza de los tiempos de ejecución para la Operación 8
89
ERROR 193845.25 12 16153.770
TOTAL 29310368.437 15
Elaboración propia
Fuente: Análisis de Varianza (ANOVA)
En dicha tabla se observa que los frameworks del lado del servidor ocasionan una
mayor variabilidad en el tiempo de ejecución (2=27219697.56). Además se
comprueba que al 5% de nivel de significancia, tanto los frameworks del lado del
servidor (Fc=1685.036) y los frameworks del lado del cliente (Fc=117.081),
actuando de manera independiente, afectan significativamente al tiempo de
ejecución de la operación 8, lo que no sucede con la interacción de ambos factores
(Fc=0.341); con lo que se concluye que se rechaza la Hipótesis nula formulada en
la tabla 30 y se acepta la Hipótesis nula formulada en la tabla 31.
90
Después de haber realizado el análisis estadístico de los tiempos promedio de
ejecución por cada operación, se realizó un resumen de las conclusiones que se
obtuvieron en cada operación por cada factor e interacción entre ellos, las cuales
se muestran a continuación en la Tabla 48.
Tabla 48.
Resumen del análisis estadístico de los tiempos promedio en cada operación.
OPERACIONES
1 2 3 4 5 6 7 8
Factor A: Frameworks Rechaza Rechaza Rechaza Rechaza Rechaza Rechaza Rechaz Rechaza Conclusió
del lado del servidor H0 H0 H0 H0 H0 H0 a H0 H0
n de
Factor B: Frameworks Rechaza Rechaza Rechaza Rechaza Rechaza Acepta Rechaz Rechaza
Hipótesis
del lado del cliente H0 H0 H0 H0 H0 H0 a H0 H0 H0
Rechaza Rechaza Rechaza Rechaza Acepta Acepta Acepta Acepta
Interacción A y B H0 H0 H0 H0 H0 H0 H0 H0
Elaboración propia
En la Tabla 48, se pudo determinar que para los frameworks del lado del servidor,
de las operaciones analizadas, en el 100% se concluyó que si existe diferencia
significativa en el tiempo de ejecución de la aplicación, ocasionada por el tipo de
framework para el lado del servidor. Además para los frameworks del lado del
cliente, de las operaciones analizadas, en el 90% se concluyó que también existe
diferencia significativa en el tiempo de ejecución de la aplicación, ocasionada por
el tipo de framework para el lado del cliente. Por último, en la interacción de ambos
factores se concluyó según el análisis de las operaciones, en el 50% indican que la
interacción de frameworks del lado del cliente y frameworks del lado del servidor
ocasionan una variación significativa en el tiempo de ejecución de la aplicación, y
el otro 50% indican que la interacción de frameworks del lado del cliente y
frameworks del lado del servidor no producen variaciones significativas en el tiempo
de ejecución de la aplicación; esto se debe por la cantidad de información que se
trabajó en cada operación.
91
Para determinar cuáles son los frameworks que ocasiona la diferencia significativa
en el tiempo de ejecución en las operaciones de la aplicación desarrollada tanto
para el lado del cliente y lado del servidor, se realizó el análisis de modelo lineal
general univariante.
Con el modelo lineal general se pueden contrastar hipótesis nulas sobre los efectos
de otras variables en las medias de varias agrupaciones de una única variable
dependiente. Se pueden investigar las interacciones entre los factores así como los
efectos de los factores individuales, algunos de los cuales pueden ser aleatorios
(MLG Análisis Univariante: IBM Knowledge Center, 2017).
Medias marginales
Tabla 49.
Tiempo promedio de ejecución para frameworks del lado del servidor
Tabla 50.
Tiempo promedio de ejecución para frameworks del lado del cliente
92
cliente actuando independientemente, JQuery ocasiona tiempos de
ejecución mayores.
Tabla 51.
Tiempo promedio de ejecución - frameworks lado del cliente y lado del
servidor
Tabla 52.
Tiempo promedio de tiempo de ejecución - framework lado del servidor
y operaciones
93
servidor Symfony, son menores con respecto a los tiempos de ejecución
de las mismas operaciones utilizando el framework Laravel.
Tabla 53.
Tiempos promedio de ejecución - framework lado del cliente y
operaciones
94
5.3. Discusión de resultados
Después de haber realizado el análisis estadístico de los tiempos de ejecución de
la aplicación desarrollada y el análisis de modelo lineal general univariante
obtuvieron los siguientes resultados:
El framework del lado del cliente que mejores tiempos de ejecución ofreció en la
aplicación web desarrollada fue AngularJs. Esto se debe que posee en su núcleo
un componente llamado $http del cual se menciona en el marco teórico. Este
componente permite hacer peticiones AJAX al servidor, es realmente como el
objeto XMLHttpRequest o el método ajax() de JQuery(). La diferencia con estos dos
últimos es que está integrado a AngularJs como un servicio y pero lo más
importante que actualiza la vista o interfaz gráfica de manera instantánea al
producirse algún cambio en el modelo de JavaScript (Curso de AngularJs y REST:
Servicio $Http, 2017). Además, este servicio trabaja con almacenamiento en caché
lo que le permite almacenar los datos de peticiones realizadas y usarse cuando se
vuelva a realizar la misma petición, lo que favorece al tiempo de ejecución de la
aplicación, puesto que la petición ya no se realiza directamente al servidor sino al
espacio donde está almacenada la información solicitada que es la caché
(Coderwall, 2017), en consecuencia la información solicitada por un usuario se le
mostrará de forma más rápida.
El framework del lado del servidor, que mejores tiempos de ejecución ofreció en la
aplicación Web desarrollada fue Symfony. El rendimiento y rapidez de Symfony se
debe al sistema de caché, lo que le permite a Symfony almacenar los archivos PHP
compilados para así evitar tener que volver a compilar ellos para cada solicitud o
petición. Además usa una caché interna para almacenar el resultado de la
asignación de rutas de archivos a sus rutas de archivos reales y absolutos, esto
aumenta el rendimiento de las aplicaciones donde se abren muchos archivos PHP,
especialmente en los sistemas Windows (Symfony, 2017). Una comparación
realizada por (Bowman, 2017), en la cual se pusieron a prueba 6 frameworks PHP
dentro de los cuales estaban Symfony y Laravel, el ambiente en que se llevó a cabo
esta comparativa fue en un servidor Digital Ocean Ubuntu 16.04 x64 2Gb, uno de
los parámetros de comparación fue el tiempo de ejecución, los resultados que
obtuvo para este parámetro fue que Symfony era mucho más rápido que Laravel al
momento de realizar las peticiones.
95
Además, en la interacción de los frameworks del lado del cliente y del servidor
resultó que los frameworks del lado del servidor trabajando junto con AngularJs en
la aplicación desarrollada, los tiempos de ejecución de está eran mejores a
comparación que trabajando con JQuery. No existen trabajos de investigación
donde se realice comparativas donde interactúen frameworks PHP y JavaScript, lo
más cercano a ello son solo comparaciones entre frameworks PHP o frameworks
JavaScript. Entonces se puede decir que estos resultados obtenidos es un aporte
en cuanto al desarrollo de aplicaciones Web.
96
Conclusiones
1. Se pudo determinar que en los frameworks del lado del servidor: Laravel y
Symfony, tienen una estructura compuesta por diez (10) y cinco (4) carpetas
principales, respectivamente. En cuanto a los componentes, Symfony posee
solo tres (3) componentes principales y Laravel tiene cinco (5). Para los
frameworks del lado del cliente, la estructura de AngularJs varía según el
proyecto y desarrollador pero existen patrones que se pueden seguir y
emplear, la cantidad de componentes principales para este es de nueve (9);
y para el caso de JQuery no existe una estructura definida y su cantidad de
componentes principales es de cinco (5).
2. El módulo más desarrollado o utilizado, según la encuesta aplicada, por las
empresas de la región Piura es el de trámite documentario, siendo las
operaciones que más se realizan para este módulo las de consulta y registro.
Además los requerimientos funcionales para la aplicación que se desarrolló,
los cuales fueron: Consultar bandeja de expedientes enviados, consultar
bandeja de expedientes recepcionados, consultar bandeja de expedientes
finalizados, consultar bandeja de expedientes recibidos, consulta de
movimientos de expediente interno y de expediente externo, reporte diario
de expedientes externos recepcionados por mesa de partes y registro de
trámite.
3. Se demostró que sí existe diferencia significativa en los tiempos de ejecución
de la aplicación Web desarrollada utilizando frameworks para el lado del
cliente, en donde en el 90% de las operaciones evaluadas, si existe
diferencia en el tiempo de ejecución cuando se utiliza el Framework
AngularJs y JQuery, siendo JQuery quien ocasiona tiempos de ejecución
mayores que AngularJs. De acuerdo al análisis estadístico también se
determinó que si existe diferencias significativas en los tiempos de ejecución
de la aplicación Web desarrollada utilizando frameworks del lado del
servidor, según el análisis el 100% de las operaciones indican que hay una
diferencia en los tiempos de ejecución entre Laravel y Symfony, donde
Laravel presenta tiempos de ejecución superiores a Symfony. Y en cuanto a
la combinación de frameworks del lado del cliente y lado del servidor, según
el análisis lineal univarante se concluyó que AngularJs utilizado en conjunto
97
con algún framework del lado del servidor provee tiempos de ejecución
favorables en una aplicación Web.
98
Recomendaciones
1. Para complementar el estudio realizado sería beneficioso extender el
análisis de estos frameworks en cuanto al nivel de seguridad y curva de
aprendizaje, pues también son factores importantes en el desarrollo de
software.
2. En cuanto a los frameworks del lado del servidor, se recomienda realizar un
análisis para determinar cuál de ellos presenta mayor compatibilidad al
momento de interactuar con la capa de acceso a datos de los Sistemas
Gestores de Base de Datos más utilizados.
3. Realizar un estudio similar aplicando la misma metodología, pero con
versiones posteriores de los frameworks involucrados en esta investigación,
para comparar y validar los resultados obtenidos en versiones superiores.
99
Bibliografía
Álvarez, C. (2015). Genbeta:dev. Obtenido de
https://www.genbetadev.com/desarrollo-web/angular-js-modulos-y-
arquitectura
Bravo Olmos, A., & Enriquez Solís, A. A. (2012). Portal del Laboratorio de
Geomática y Especialidades Cviles. Mexico.
Callejas Cuervo, M., Peñalosa Parra , D. I., & Alarcón Aldana, A. C. (2011).
Evaluación y análisis de rendimiento de los frameworks de persistencia
Hibernate y Eclipselink. Colombia.
100
Cobo, Á., Gómez, P., Pérez, D., & Rocha, R. (2005). PHP y MySQL
Tecnologías para el desarrollo de aplicaciones Web. Ediciones Díaz de
Santos.
101
Hohman Sandoval, C. (2014). Creación de Frameworks con patrones de
diseño para el desarrollo de aplicaciones empresariales. Ciudad
Universitaria, Mexico.
Laravel. (s.f.). Laravel - The PHP Framework For Web Artisans. Obtenido de
http://laravel.com/docs/5.1/eloquent
102
Orduz Navarrete, Y. (2016). Análisis, Diseño e Implementación de un
Sistema de Información para la Gestión de Alquiler y Mantenimiento de
Vehículos. 30-33. Bogotá, Colombia.
Sánchez Osejo, E. R., & Vera Cárdenas, I. E. (2011). Ánalisis del rendimiento
de framework PHP para desarrollar aplicaciones Web óptimas. Caso
práctico: portal academia Linux Espoch. (Tesis de Grado). Escuela Superior
Politécnica de Chimborazo. Riobamba, Ecuador.
103
SOURCEFORGE.NET. (2005). Obtenido de
http://oness.sourceforge.net/proyecto/html/ch03s02.html
104
ANEXOS
ANEXO 1. Matriz de Consistencia
Problema Objetivo Hipótesis Variables Indicadores Índices Método Técnica Instrumentos
105
ANEXO 2. Guía de observación (Diseño Trifactorial).
AngularJs JQuery
Operaciones Operaciones
MARCOS DE
TRABAJO Consultas Consultas
(FRAMEWOR Registro Registro
KS) Expedientes Reporte Expedientes Reporte
Bandeja (Trámites) Bandeja (Trámites)
(Movimientos) (Trámites) (Movimientos) (Trámites)
Symfony
Tabla 54. Guía de Observación (Diseño trifactorial de 2x2x8) - 4 réplicas (128 combinaciones).
Elaboración propia.
106
ANEXO 3. Encuesta para determinar el módulo o aplicación Web que se
desarrolla o utiliza con mayor frecuencia.
ENCUESTA
Cargo: ____________________________________________________________
INTRODUCCION
INSTRUCCIONES
La mayoría de preguntas han sido realizadas lo más breves posibles para una
respuesta rápida, también existen preguntas que pueden o no contestarse de
acuerdo a respuestas anteriores, se le aconseja leer detenidamente las preguntas
y responder lo más veraz posible.
PREGUNTAS
107
( ) Otros. Especificar: ( ) Módulo de Recursos
________________________ Humanos
________________________ ( ) Módulo de Control de
3. ¿Ha escuchado o utilizado Inventarios
tecnologías de desarrollo ( ) Módulo de Producción y
denominadas marcos de fabricación
trabajo (frameworks)? ( ) Otros. Especificar:
( ) Sí ________________________
( ) No. (Pasar a la pregunta N° 6) ________________________
4. ¿Qué marcos de trabajo 7. Según la respuesta anterior,
(frameworks) del lado del ¿Qué tan complejo es el
servidor ha utilizado para desarrollo del módulo o
desarrollar aplicaciones Web? aplicaciones Web en relación a
( ) Spring las funciones o interacciones
( ) Struts que realiza? Por ejemplo:
( ) Laravel requiere de gran cantidad de
( ) CodeIgniter componentes para su
( ) Symfony desarrollo, el rendimiento y
( ) Yii velocidad de las operaciones
( ) Zend son adecuados, requiere de
( ) Phalcon gran cantidad de recursos
( ) Otros. Especificar: software, brinda la información
________________________ necesaria, etc.
________________________ ( ) Muy complejo
5. ¿Qué marcos de trabajo ( ) Complejo
(frameworks) del lado del ( ) No precisa
cliente ha utilizado para ( ) Sencillo
desarrollar aplicaciones Web? ( ) Muy Sencillo
( ) AngularJS
( ) JQuery Breve explicación de su
( ) EmberJS respuesta:
( ) Sencha ExtJS ________________________
( ) Otros. Especificar: ________________________
________________________ ________________________
________________________ ________________________
6. En la empresa o centro de ________________________
trabajo, ¿Qué módulo o
aplicación Web con mayor 8. ¿Qué tipos o niveles de
frecuencia se usa o solicita usuario suelen tener los
para su desarrollo? módulos desarrollados?
( ) Módulo de Finanzas ( ) Usuario normal.
( ) Módulo de Compra/Venta ( ) Administrador
( ) Módulo de Logística ( ) Superadministrador.
( ) Tester
108
( ) Otros. Especificar: ________________________
________________________ ________________________
________________________ ________________________
109
ANEXO 4. Validación de encuesta para determinar el módulo o aplicación Web
que se desarrolla o utiliza con mayor frecuencia.
110
Figura 44. Validación de encuesta - Ingeniero Informático
111
Figura 45. Validación de encuesta - Ingeniero Informático
112
ANEXO 5. Instalación del Framework Laravel
113
Figura 50. Comando de Artisan para desplegar la aplicación
Fuente: (Laravel, 2016)
114
ANEXO 6. Instalación del Framework Symfony
115
Después de instalar Symfony, se puede desplegar en forma local pare cerciorarse
que se instaló correctamente
116
ANEXO 7. Instalación del Framework AngularJS
117
2. Incluir directamente AngularJs mediante su CDN (Content Delivery
Network), para esta forma de incluir AngularJs se debe tener acceso
a internet para que funcione correctamente.
118
ANEXO 8. Instalación del Framework JQuery
119
2. Incluir directamente JQuery mediante su CDN (Content Delivery
Network), cabe aclarar que el framework funcionará siempre y cuando
se tenga acceso a internet.
Figura 64.
120
ANEXO 9. Capturas de pantalla de la aplicación Web desarrollada (Sistema de
Trámite Documentario).
121
Figura 67. Bandeja de trámites enviados
Fuente: Aplicación desarrollada.
122
Figura 69. Bandeja de trámites finalizados
Fuente: Aplicación desarrollada.
123
Figura 71. Registrar trámite
Fuente: Aplicación desarrollada.
124
Figura 73. Consulta de un expediente o documento internamente
Fuente: Aplicación desarrollada.
125
ANEXO 10. ApacheJMeter
126
Figura 77. Pantallas de resultados de una prueba.
Fuente: Software Apache JMeter.
127
ANEXO 11. Gráficos de perfil obtenidos del análisis lineal general univariante
Figura 78. Medias marginales estimadas de tiempo de ejecución-frameworks del lado del cliente.
Fuente: IBM SPSS Statistics 21
Figura 79. Medias marginales estimadas de tiempo de ejecución-frameworks del lado del servidor
Fuente: IBM SPSS Statistics 21
128
Figura 80. Medias marginales de tiempo de ejecución-frameworks del lado del cliente y operaciones
Fuente: IBM SPSS Statistics 21
Figura 81. Medias marginales estimados de tiempo de ejecución-frameworks del lado del servidor
y operaciones
Fuente: IBM SPSS Statistics 21
129
Figura 82. Medias marginales estimadas de tiempo de ejecución-frameworks del lado del cliente y
lado del servidor
Fuente: IBM SPSS Statistics 21
130