INTRODUCCIÓN
Con la necesidad de mejorar el
servicio de atención al cliente prestado a los usuarios de
la Escuela Superior Politécnica de Chimborazo, se desea
automatizar la gestión y seguimiento de los incidentes
reportados por medio de una aplicación web que presente una
interfaz amigable. El desarrollo de este sistema implica la
utilización de nuevas tecnologías que permitan aumentar
la productividad del programador en la Dirección de
Tecnologías de la Información y Comunicación
(DTIC).
La DTIC es la encargada de
proporcionar servicios integrales de calidad en las áreas de
desarrollo organizacional y sistemas de información a la
ESPOCH y entidades externas, utilizando tecnología de punta,
con personal capacitado, estándares de calidad y una
participación activa y eficaz del usuario.
Esta dirección tiene como
objetivos brindar asistencia y mantenimiento a los sistemas
informáticos administrativos, académicos, y de la
organización, como también proporcionar servicios de
mantenimiento de Hardware, Software y redes computacionales. Esto
involucra el seguimiento de los incidentes ocurridos dentro de la
ESPOCH, los cuales son atendidos por llamadas telefónicas,
correo electrónico o a su vez atendidos en la misma dirección.
La información
recolectada se encuentra en bases de datos heterogenias, es decir que
es almacenada en documentos en la nube con GoogleDrive lo que causa
una descentralización, además de no tener un
seguimiento de los mismos. Por esta razón se desea crear un
sistema web que permita proveer soporte y asistencia a sus clientes
o empleados por medio de un seguimiento de incidentes con el fin de
mejorar su servicio de atención y regularizar el volumen de
trabajo del personal de soporte.
En la actualidad se ha creado un
gran debate sobre la utilización de frameworks, siendo estos
una ayuda para incrementar la productividad en el desarrollo de
aplicaciones web; o al contrario, posicionarlos como un impedimento
para llegar al objetivo de un proyecto de una forma más
rápida.
Al programar en lenguajes puros
como PHP se llega a tener más control y conocimiento de cómo
está estructurado un proyecto de software, pero a la final el
trabajo no se encuentra separado o clasificado de acuerdo a sus
funcionalidades.
Todo lo descrito anteriormente es
lo que lleva a requerir más tiempo en el proceso de
programación, pero a nivel de tiempo y productividad la
magnitud del proyecto va a variar dependiendo de las necesidades del
usuario y con qué rapidez desee hacer uso ya del producto.
La necesidad de incrementar la
productividad en el proceso de ingeniería del software y de
reducir drásticamente los tiempos de desarrollo y el esfuerzo
del programador al momento de proponer una solución al
problema en un entorno web, ha cambiado el modelo de construcción
tradicional, convirtiendo en una necesidad principal la adopción
de frameworks web en vez de la utilización de lenguajes de
programación puros.
Estas herramientas que ayudan en
el desarrollo de software, se encargan de simplificar las tareas de
programación, promoviendo la reutilización del código,
fomentado el uso de estándares o convenciones y reduciendo
los costes asociados al mantenimiento. Los frameworks son
“aplicaciones o conjunto de módulos que permiten, o
tienen por objetivo, el desarrollo ágil de aplicaciones
mediante la aportación de librerías y/o funcionalidades
ya creadas para que nosotros las usemos directamente”
(¿Deberías
usar un framework para tu proyecto en Internet?,2011).
Hoy en día se cuenta con
diversas tecnologías para crear soluciones y productos de alto
nivel, y la variedad de frameworks PHP es muy extensa por lo que en
la mayoría de problemas se requiere realizar análisis
previo que nos permita determinar cuál es el más
adecuado para la construcción de un producto de software
adaptándose a las necesidades del cliente.
Entre los más populares a:
Laravel, Codelgniter, CakePHP, Symphony entre otros, los cuales
tienen funciones distintas y como objetivo agilizar el trabajo en
términos de productividad, y a la vez ganar tiempo en el
desarrollo, dejando a las tareas más simples a cargo del
framework y las más complejas a cargo del desarrollador(Smith,
2014).
La decisión de escoger que
framework PHP satisfaga las necesidades del desarrollador depende del
momento de crear aplicaciones web de calidad, dando solución a
problemas comunes como el diseño de arquitectura,
codificación, reutilización, internacionalización,
plantillas, entre otros, debe estar sustentada por sólidos
argumentos como la productividad que presenta cada uno.
Por lo tanto se propone el
estudio comparativo de productividad de los frameworks, CakePHP y
Laravel, para el desarrollo del Sistema de Seguimiento de Incidentes
de la Infraestructura de Red en la ESPOCH para la Dirección de
Tecnologías de la Información y Comunicación.
Justificación
A continuación se
definirán las razones del porqué del tema propuesto,
tanto de una forma teórica, metodológica y práctica
señalando la importancia de nuestra investigación.
Justificación teórica.
El Decreto 1014 “Software
Libre en el Ecuador” señala la utilización de
software libre en entidades de administración pública
tales como la ESPOCH es obligatoria. PHP es un lenguaje de código
abierto con diversos frameworks que presentan diferentes
características, unos más fáciles de aprender
que otros, brindando un aporte para los desarrolladores que deseen
escoger con cual trabajar según sus necesidades.
Estos frameworks se crearon como
una colaboración directa en el desarrollo permitiendo
incrementar la productividad siendo “una capa intermedia entre
un lenguaje de programación crudo y el programador”(Usar
o no un Framework, 2012),
evitando que se invierta tiempo en programar soluciones ya escritas,
permitiendo escribir menos código lo que se traduce en menos
errores, más funcionalidad, uso de estándares o
convenciones, o mejorar la arquitectura del sistema(Alten,
2009, p.1).
De esta manera los frameworks
permiten al desarrollador
pasar más tiempo identificando requerimientos de software, que
tratando con los detalles de bajo nivel para obtener un sistema
funcional.
Cabe mencionar investigaciones
sobre la medición de productividad en el desarrollo que motivo
la presente investigación, tal como “Analyzing PHP
Frameworks for Use in a Project-Based Software Engineering
Course”(Lancor
y Samyukta, s.f. p.4),donde
se realiza un estudio comparativo sobre el mismo prototipo
desarrollado con diferentes frameworks PHP. Los resultados fueron
obtenidos por medio de las medidas de líneas de código
y el esfuerzo empleado, llegando a la conclusión que la
utilización de Codelgniter permite un desarrollo más
rápido en comparación con CakePHP.
Y el caso de estudio empírico
“Empirical Case Study of Measuring Productivity of Programming
Language Ruby and Ruby on Rails”(Noda
y Jia, 2011, p2),
que realiza un estudio comparativo entre un lenguaje puro como Ruby
y el framework basado en este lenguaje como es Ruby on Rails. Los
resultados indican que la productividad medida bajo las mismas
condiciones de desarrollo resulta difícil, y que se recomienda
realizar más estudios para realizar una comparación de
manera científica y empírica.
El estudio Fuente Clever Age
sobre los frameworks más usados en PHP, titulado “Libro
blanco sobre frameworks PHP para empresas”, se realiza un
exhaustivo estudio de todas funcionalidades de dichos frameworks,
clasificando a CakePHP entre uno de los frameworks más
populares(Comparación
y Rendimiento de Frameworks PHP,2008).
La misma investigación
menciona a Laravel como “el framework más popular a
inicios del presente año, con un porcentaje de 25,85%”(Top
PHP Frameworks 2014,2014).
Y por último el sitio de Google Trends, clasifica a CakePHP
entre los primeros puestos con un promedio de 55% de búsquedas
a nivel mundial, y a Laravel en un ascenso en un 56% en el
2014(Google
Trends - Web Search interest: Laravel, CodeIgniter, CakePHP, Symfony
- Worldwide, Jun 2011 - Feb 2014,2014).Presentándose
estos dos frameworks como objetivos principales para este estudio
comparativo de productividad.
Este estudio comparativo de los
frameworks CakePHP y Laravel, la norma ISO/IEC 9126 define tres
vistas diferenciadas en el estudio de la calidad de un producto,
clasificando a la productividad como una vista interna de un sistema,
la cual se ocupa de medir o estimar las propiedades del software
producido como: el tamaño, la complejidad o la conformidad con
las normas de orientación a objetos. (International
Standard ISO/IEC FDIS 9126-1, 2000, p.3)
Cabe recalcar la existencia del
estudio previo, “ANÁLISIS DEL RENDIMIENTO DE FRAMEWORKS
PHP PARA DESARROLLAR APLICACIONES WEB ÓPTIMAS. CASO PRÁCTICO:
PORTAL ACADEMIA LINUX ESPOCH”, el cual, según la norma
ISO/IEC 9126, realiza una vista externa de un sistema, analizando el
comportamiento del software en producción (el rendimiento de
un software en una máquina determinada, el uso de memoria de
un programa o el tiempo de funcionamiento entre fallos.).
Justificación
metodológica.
Existen 3 comunes formas basadas
en el tamaño para definir y medir la productividad, los cuales
son: productividad física, funcional y económica.
Donde la física trata sobre la relación de la cantidad
del producto o líneas de código, a los recursos
consumidos o esfuerzo. La funcional es la relación entre
cantidad de funcionalidad, es decir puntos de función reales
con el esfuerzo. Y por último la económica que
relaciona el valor del producto producido con los recursos usados
para producirlo. (Card,
2006, p.7)
El estándar IEEE
1045-1992, define un marco para la medición de productividad
de software con el objetivo de mejorar la precisión en la
recolección y reporte de información relacionada con la
productividad del proceso de desarrollo de software, a través
un cálculo en términos de esfuerzo combinado con la
cantidad de líneas de código (medida de tamaño
física, salidas) o puntos de función (medida de tamaño
funcional, entradas)(IEEE
Standard for Software Productivity Metrics, s.f., pp.6-11).
Por medio del método
científico, la investigación se llevará a cabo
con el estudio individual de los frameworks CakePHP y Laravel. De
esta forma se procederá a crear 2 aplicaciones web con
equivalente funcionalidad, con cada una se recolectará datos,
los cuales se evaluarán siguiendo las métricas
mencionadas anteriormente. Para de esta manera probar la hipótesis
de investigación planteada. El framework que presente mayor
productividad, será utilizado para el desarrollo del Sistema
de Seguimiento de Incidentes de la Infraestructura de Red en la
ESPOCH.
La metodología utilizada
para el desarrollo del sistema será Scrum debido a que permite
“asegurar la calidad del producto de manera sistemática
y objetiva, a nivel de satisfacción del cliente, requisitos
listos para ser utilizados y calidad interna del producto”(Beneficios
de Scrum, s.f.).
Justificación práctica.
Hoy en día los sistemas
web informáticos son cada vez más complejos y cada vez
las empresas o instituciones dependen más de servicios
tecnológicos, por lo que un mal funcionamiento o la
interrupción de servicios de éstos pueden llegar a
tener importantes consecuencias en la consecución de los
objetivos de esas entidades.
El porqué de construir una
aplicación web para la Dirección de Tecnologías
de la Información y Comunicación, viene de la necesidad
de mejorar la atención al cliente y así dar un
seguimiento a la información sobre los incidentes que son
reportados, sin los requerimientos de instalar, descargar, tan solo
poseer una conexión a internet y un navegador web y de esta
manera empezar a trabajar.
La calidad que brinden a la hora
de solucionar incidencias puede ser un hecho determinante para captar
o mantener a sus clientes en este caso a los funcionarios de ESPOCH.
De ahí también la importancia de que conozcan la
valoración de sus clientes en cuánto a la rapidez y
eficacia en la solución de los incidentes.
El Sistema de Seguimiento de
Incidentes de la Infraestructura de Red en la ESPOCH será
desarrollado para DTIC, con el objetivo de proveer soporte y
asistencia a los diferentes departamentos o empleados por medio de
reportes de incidentes y la administración de los mismos a
través de una aplicación web, y valorar la carga de
trabajo de cada técnico o funcionario que use el sistema web,
reduciendo el tiempo de dedicado a la gestión y planificación
de las incidencias según recursos.
El Sistema de Seguimiento de
Incidentes contendrá: el módulo de autentificación
y administración de usuarios, el módulo de
administración de roles, módulo de administración
de las áreas de trabajo, el módulo de administración
de información de tickets, módulo de seguimiento de
incidentes (tickets), y el módulo de reportes.
Objetivos
A continuación
se detalla el objetivo general y los objetivos específicos de
esta investigación.
Objetivo
general.
Comparar la
productividad de los Frameworks orientados a objetos, CakePHP y
Laravel para el desarrollo del Sistema de Seguimiento de Incidentes
de la Infraestructura de Red en la ESPOCH.
Objetivos
específicos.
|