“diseño de una herramienta de apoyo a la toma de decisiones
Post on 09-Jul-2022
3 Views
Preview:
TRANSCRIPT
Seminario de Trabajo de Investigación
TESINA
“Diseño de una herramienta de apoyo a la toma de decisiones
basada en análisis de datos históricos para las PYMES del sector
comercio del municipio de San Salvador”
Presentado por:
Ayala Hernández Ricardo Ernesto
Gómez Choussy Javier Antonio
Portillo Salmerón Andrés José
Para optar al grado de:
Licenciatura En Gerencia Informática
Asesor de contenido:
Ing. Iván Alvarado Niño
Asesora de forma:
Licda. Ana Patricia Linares
ANTIGUO CUSCATLÁN, LA LIBERTAD, 2 DE FEBRERO DE 2016
I
AUTORIDADES
DR. David Escobar Galindo
RECTOR
DR. José Enrique Sorto Campbell
VICERRECTOR
VICERRECTOR ACADÉMICO
Ing. Roberto Alejandro Sorto Fletes
DECANO DE LA FACULTAD DE ECONOMÍA, EMPRESA Y NEGOCIOS
Licda. Ana Patricia Linares
SECRETARIA GENERAL DE LA FACULTAD DE ECONOMÍA, EMPRESA Y NEGOCIOS
COMITÉ O JURADO EVALUADOR
Licda. Ana Lissette Girón
PRESIDENTE COMITÉ EVALUADOR
Lic. Carlos López Sandoval
COMITÉ EVALUADOR
Lic. Luis Alberto Molina
COMITÉ EVALUADOR
Asesor de contenido
Ing. Iván Alvarado Niño
Asesora de forma
Licda. Ana Patricia Linares
ANTIGUO CUSCATLÁN, LA LIBERTAD, 2 DE FEBRERO DE 2016
II
ÍNDICE
Resumen de la investigación .............................................................................................. VIII
Introducción ............................................................................................................................ 9
Siglas y Abreviaturas ............................................................................................................ 10
CAPÍTULO 1 ......................................................................................................................... 11
Marco referencial .................................................................................................................. 12
1.1 Antecedentes .............................................................................................................. 12
1.2 Situación actual ........................................................................................................... 14
CAPÍTULO 2 ......................................................................................................................... 17
Marco teórico ........................................................................................................................ 18
2.1 Modelo de acceso a bases de datos (una, dos y tres capas)....................................... 18
2.2 Controladores de acceso a bases de datos ................................................................. 20
2.3 Sistemas OLAP ........................................................................................................... 22
2.4 Herramientas de análisis de datos............................................................................... 23
CAPÍTULO 3 ......................................................................................................................... 25
Metodología de la investigación ............................................................................................ 26
3.1 Definición, planteamiento y delimitación del problema. ................................................ 26
3.2 El alcance, justificación y limitaciones de la investigación ........................................... 28
3.3 Objetivo general. ......................................................................................................... 29
3.4 Objetivos específicos. .................................................................................................. 29
3.5 Definición de unidad de análisis, variables e indicadores. ........................................... 29
3.6 Técnicas y procedimientos a emplearse en la recopilación de información. ................ 32
3.7 Instrumentos de medición ........................................................................................... 32
3.8 Universo y muestra ..................................................................................................... 33
CAPÍTULO 4 ......................................................................................................................... 34
Investigación y Diagnóstico................................................................................................... 35
4.1 Resultados de la investigación .................................................................................... 35
4.2 Descripción y análisis evaluativo de la situación investigada ....................................... 55
CAPÍTULO 5 ......................................................................................................................... 59
Conclusiones y recomendaciones. ........................................................................................ 60
Conclusiones ..................................................................................................................... 60
Recomendaciones............................................................................................................. 61
CAPÍTULO 6 ......................................................................................................................... 62
III
Propuesta ............................................................................................................................. 63
6.1 Fase de inicio .............................................................................................................. 63
6.1.1 Planteamiento ....................................................................................................... 63
6.1.2 Visión del producto ............................................................................................... 63
6.1.3 Historias de usuarios ............................................................................................ 64
6.1.4 Product Backlog .................................................................................................... 70
6.1.5 Prioridades del product backlog ............................................................................ 70
6.1.6 Establecimiento del equipo de trabajo. .................................................................. 71
6.1.7 Definición de fechas de entrega por cada requerimiento del product .................... 72
Backlog .......................................................................................................................... 72
6.2 Fase de desarrollo ....................................................................................................... 73
6.2.1 Definición del sprint. .............................................................................................. 73
6.2.2 Construcción de la pila del sprint a partir de los requerimientos del product backlog
...................................................................................................................................... 76
6.2.3 Desarrollo de cada sprint .......................................................................................... 79
6.2.3.1 Planeamiento del sprint ...................................................................................... 79
6.2.3.2 Desarrollo ............................................................................................................ 86
6.2.3.2.1 Modelado de clases ..................................................................................... 86
6.2.3.2.2 Diagrama de secuencia................................................................................ 87
6.2.3.3 Pruebas del Entregable ................................................................................... 91
6.2.4 Actualización del sprint backlog ....................................................................... 96
6.3 Fase de cierre ......................................................................................................... 96
6.3.1 Requerimientos completados ............................................................................ 96
6.3.2 Testing .................................................................................................................. 97
6.4 Implementación de la herramienta............................................................................... 99
6.4.1 Implementación en base de datos MySQL. ........................................................... 99
6.4.2 Implementación en una base de datos distinta a MySQL. ................................... 100
Bibliografía .......................................................................................................................... 102
Publicaciones. ................................................................................................................. 102
Publicaciones Electrónicas .............................................................................................. 103
Constituciones, leyes, reglamentos y compilaciones legales ........................................... 105
GLOSARIO ......................................................................................................................... 106
ANEXOS ............................................................................................................................. 112
IV
Índice de Tablas
Tabla 1 Cambios en los entornos de negocios 13
Tabla 2 Definición de variables 30
Tabla 3 Indicadores y su medición 31
Tabla 4 Instrumento de medición #1 36
Tabla 5 Instrumento de medición #2 39
Tabla 6 Instrumento de medición #3 41
Tabla 7 Instrumento de medición #3 43
Tabla 8 Instrumento de medición #3 44
Tabla 9 Instrumento de medición #3 45
Tabla 10 Instrumento de medición #3 47
Tabla 11 MINEC-DIGESTYC 48
Tabla 12 Tipos de encriptación de datos 49
Tabla 13 Ventajas y desventajas de responsive 54
Tabla 14 Historia de usuario. Mantenimiento del software 65
Tabla 15 Historia de usuario. Seguridad del software 65
Tabla 16 Historia de usuario. Diseño Responsive 66
Tabla 17 Actualizaciones para la herramienta del software 66
Tabla 18 Historia de usuario. Plataforma 67
Tabla 19 Historia de usuario. Manejo de tiempos 67
Tabla 20 Historia de usuario. Captura de Variables 68
Tabla 21 Historia de usuario. Tabla Dinámica 68
V
Tabla 22 Historia de usuario. Gráficos Dinámicos 69
Tabla 23 Historia de usuario. Pruebas para el software 69
Tabla 24 Product Backlog 70
Tabla 25 Prioridades product backlog 71
Tabla 26 Scrum team 72
Tabla 27 Fechas de entrega 72
Tabla 28 Requerimientos del product backlog 76
Tabla 29 Preparación del entorno de trabajo LAMP 80
Tabla 30 Instalación y configuración de codeigniter boostrap 81
Tabla 31 Mantenimientos de la aplicación 82
Tabla 32 Seguridad de la aplicación 82
Tabla 33 Página de bienvenida 83
Tabla 34 Carga de variables 83
Tabla 35 Tabla dinámica 84
Tabla 36 Gráficos dinámicos 85
Tabla 37 Pruebas de funcionalidad plataforma 91
Tabla 38 Pruebas de funcionalidad mantenimiento de software 93
Tabla 39 Pruebas de funcionalidad seguridad de software 95
VI
Índice de Diagramas
Diagrama 1 Modelado de clases de la herramienta del software 86
Diagrama 2 Diagrama de secuencia proceso login 87
Diagrama 3 Diagrama de secuencia proceso captura de variables 88
Diagrama 4 Diagrama de secuencia tabla dinámica 89
Diagrama 5 Diagrama de secuencia del modal charts 90
VII
Índice de Figuras
Figura 1 Captura de página de bienvenida al sistema 117
Figura 2 Captura de página de logueo 118
Figura 3 Captura de carga de variables 119
Figura 4 Captura barra de progreso 119
VIII
Resumen de la investigación
La toma de decisiones se ha convertido en uno de los pilares principales de las
empresas, por ello la implementación de sistemas de información integrados ha venido
a dar una seria de ventajas a los usuarios como: poder de procesamiento, rapidez en
el acceso de la información, facilidad en la toma de decisiones, aumento en la
productividad.
Los sistemas de información pueden variar de acuerdo a las necesidad de las
empresas, desde bases de datos como SQL server integrado con Data Mining,
controladores de bases de datos o sistemas OLAP, todos con el mismo objetivo de
apoyar a las empresas en la toma de decisiones.
Debido a que el objetivo de estudio son las PYMES del sector comercio del municipio
de San Salvador, se elaboró una herramienta la cual pueda ser accesible para cada
una de las empresas, por ello se seleccionaron programas y lenguajes de
programación que puedan ser accesible, en cuanto a base de datos la elección fue
MySql ya que es un software de bajo costo, en lo que respecta a lenguaje de
programación la elección fue PHP integrado con CodeIgniter, dentro de ello se ha
utilizado un form validation, esto hace que el sistema sea ágil y simple de manejar y
principalmente que las empresas puedan implementarlo.
9
Introducción
Una de las principales necesidades de las empresas, es poder tomar decisiones de
forma ágil y rápida, por ello la fuente de información más fiables que poseen para poder
realizar esta acción, son los datos con los que cuentan, de las transacciones realizadas
en periodos anteriores, por esta razón el actual trabajo de investigación pretende
desarrollar una herramienta que contribuya a llevar a cabo esta tarea.
El alcance de la investigación se centra en el desarrollo de un sistema que sirva de
apoyo en la toma de decisiones al sector de las PYMES y de esta forma minimizar los
riesgos latentes.
Con el fin de lograr este objetivo, este documento presenta un detalle de cuál ha sido
la evolución y los antecedentes de las herramientas utilizadas para la toma de
decisiones, los cambios sufridos en el entorno de negocios y cuál es la situación actual
de las empresas en la toma de sus decisiones.
Posteriormente se hace un listado de las alternativas presentes en el mercado, en
concepto de software y herramientas de apoyo a la toma de decisiones utilizando un
modelo de procesamiento de datos a través del uso de datos históricos de
transacciones echas en las organizaciones.
A continuación se dará paso al análisis de la problemática es decir mostrar la
importancia y viabilidad del estudio, definir que es inteligencia de negocios, delimitar
el estudio, presentar las interrogantes que surgen del contenido presentado y plantear
los objetivos que se pretenden alcanzar con la presente investigación.
10
Siglas y Abreviaturas
API Application Programming Interface.
BI Business Intelligence.
CGI Common Gateway Interface.
DIGESTYC Dirección General de Estadísticas y Censos.
IEEE Institute of Electrical and Electronics Engineers.
ISAPI Internet Server Application Programming Interface.
IT Information technology.
JDBC Java Database Connectivity.
MINEC Ministerio de Economía de El Salvador
ODBC Open Database Connectivity.
OLAP On-Line Analytical Processing.
RAE Real Academia Española.
SQL Structured Query Language.
SSAS Analysis Services.
SO Sistema Operativo.
MVC Modelo Vista Controlador.
SP Procedimiento Almacenado.
11
CAPÍTULO 1
12
Marco referencial
1.1 Antecedentes
“La toma de decisiones es una antigua y amplia búsqueda humana, que se
remonta a una época en que las personas buscaban consejos de las estrellas.
Desde entonces, los seres humanos se han esforzado por inventar mejores
herramientas con ese propósito, desde los sistemas numéricos hindú-arábigo y
el álgebra hasta la aplicación de Descartes del método científico.” 1
Es evidente que la toma de decisiones se remonta a la época de nuestros
antepasados, estos se veían en la constante obligación de decidir entre las variadas
opciones que la vida les presentaba y ello ha llevado a la humanidad a desarrollar
formas más convenientes para tomar mejores decisiones.
“En la Era de la Información que abarca desde el año 1980 en adelante, la
información era un recurso escaso y su captura y distribución generaba ventajas
competitivas”. [Calzada, Leticia y José Luis Abreu, 2009, 19].
En el siglo XIX no todas las empresas contaban con tecnología avanzada para la toma
de decisiones estratégicas, por lo que las que si tenían los recursos para poder adquirí,
en ese momento, lo más avanzado en sistemas informáticos, podían sacar ventajas
de sus competidores.
En el siglo XX la tecnología dio un paso grande para la toma de decisiones de las
empresas y esto hizo que a los gerentes se les simplificara su tarea, pero existía un
problema y era que “los sistemas de información presentaban múltiples problemas
debido a la falta de integración de los datos”. [Calzada, Leticia y José Luis Abreu, 2009,
19], teniendo así mucho tiempo de respuesta el cual tenía que ser destinado al análisis
de la misma.
1 http://unesrmatfince2.blogspot.com/2009/11/teorias-de-las-decisiones.html
13
Por ello se puede mencionar el Data Mining como sistema de información integrado
para la toma de decisiones. “La idea de data mining no es nueva. Ya desde los años
sesenta los estadísticos manejaban términos como data fishing, data mining o data
archaeology con la idea de encontrar correlaciones sin una hipótesis previa en bases
de datos con ruido. A principios de los años ochenta, Rakesh Agrawal, Gio Wiederhold,
Robert Blum y Gregory Piatetsky-Shapiro, entre otros, empezaron a consolidar los
términos de data mining y KDD.”2
Tabla 1: Cambios en los entornos de negocios
Cambios Principales características
Surgimiento y fortaleza de
economía global.
Caracterizado por la administración y control
del mercado global, competencia de
mercados mundiales, grupos de trabajo
globales y sistemas de entregas de igual
tipo.
Transformación de
economías y sociedades
industriales en
Economías de servicios
basadas en conocimiento e
información.
Caracterizado por el aplanamiento y la
descentralización, la flexibilidad, la
independencia de ubicación, los bajos
costos de las transacciones y la
coordinación, el trabajo cooperativo y en
equipos, entre otros.
Transformación de las
empresas comerciales.
Economía basada en la información y el
conocimiento, con productos y servicios
nuevos, donde el conocimiento se valora
como activo productivo y estratégico, donde
la competencia se basa en el tiempo, y
predomina un entorno turbulento, entre
otros.
2 http://www.uoc.edu/web/esp/art/uoc/molina1102/molina1102.html
14
Cambios Principales características
Surgimiento de la empresa
digital.
Caracterizado por las relaciones con los
clientes, proveedores y empleadores
mediante de redes digitales. Los procesos
fundamentales se ejecutan por medio de las
redes. Se produce una percepción y
respuesta rápida a los cambios del entorno.
Fuente: Laudon K, Laudon J. Sistemas de información gerencial (8va. ed.). México DF:
Pearson Education; 2004.
1.2 Situación actual
“Las últimas décadas de este siglo se han caracterizado por el incremento
vertiginoso de la magnitud y complejidad de las empresas que actúan en
condiciones de extrema competitividad en los mercados internos e
internacionales.” 3
Esta evolución tiene una tendencia a convertir la toma de decisiones en acciones
racionales, para así poder controlar el camino de la empresa de acuerdo a sus
objetivos establecidos, teniendo en cuenta que la competencia también está buscando
tomar las mejores decisiones.
“Actualmente se le da un peso muy importante a la información como el principal
conocimiento que sostiene a la organización, pero no basta con tener información;
algo peor que no tener información disponible es tener mucha información y no
saber qué hacer con ella.” [Calzada, Leticia y José Luis Abreu, 2009, 21].
3 http://manuelgross.bligoo.com/content/view/700680/Breve-historia-de-las-formas-de-tomar-
decisiones.htm
15
Es aquí donde el BI tiene un papel importante porque surge para que los gerentes de
la mano de las tecnologías y de la información disponible puedan generar escenarios,
reportes y pronósticos puedan tomar las mejores decisiones y estas se vean
convertidas en ventajas competitivas.
En la actualidad se están implementando los Sistemas de Apoyo a la Toma de
Decisiones (DSS4), “estos sistemas se caracterizan por ser flexibles, adaptables
y de rápida respuesta. Generalmente operan con muy poca (o ninguna) asistencia
de programadores profesionales, suelen utilizar herramientas de modelación y
análisis, algunas de ellas muy sofisticadas y otras tan sencillas como hojas de cálculo
creadas por el propio decisor”5, esto le permite a los directivos agilizar el tiempo en la
toma de decisiones, realizar múltiples análisis, evaluar todos los escenarios, etc.
“Típicamente los DSS constan de un software de consulta, un software de
generación de modelos y simulación y una base de datos que se nutre de los
sistemas transaccionales, otros SI y de información externa”6
Las bases de datos que dan soporte a los DSS y los EIS constituyen su núcleo
y son conocidos con el término de Almacenes o Bodegas de datos (DW7) y estos
proporcionan una serie de ventajas a los usuarios: poder de procesamiento, rapidez
en el acceso de la información, facilita la toma de decisiones, aumento en la
productividad, etc.
Es aquí adonde de caben mencionar sistemas de información como SQL server u
Oracle integrados con Data Mining (Minería de datos), que permiten que la toma de
decisiones en la actualidad sea más flexible y ágil.
4 Del ingles Decision Support System. 5 http://www.gestiopolis.com/sistema-de-informacion-para-la-toma-de-decisiones-comerciales/ 6 http://www.gestiopolis.com/sistema-de-informacion-para-la-toma-de-decisiones-comerciales/ 7 Del inglés Data Warehouse.
16
“El Data Mining es un proceso que, a través del descubrimiento y cuantificación
de relaciones predictivas en los datos, permite transformar la información
disponible en conocimiento útil de negocio.”8
SQL Server Data Mining permite el acceso a la información para la toma de decisiones
inteligentes ante los problemas cotidianos de las empresas. Data Mining es la
tecnología de BI que ayuda a construir modelos analíticos complejos e integrar esos
modelos con sus operaciones comerciales. Por su parte el Data Mining integrado con
Oracle 11g permite al gerente diseñar aplicaciones de BI que más tarde realizan
funciones de minería en las bases de datos corporativas para descubrir nueva
información e integrarla con las aplicaciones de negocio.
8 http://www.dataprix.com/blogs/respinosamilla/datamining-o-mineria-datos
17
CAPÍTULO 2
18
Marco teórico
2.1 Modelo de acceso a bases de datos (una, dos y tres capas)
Capa de acceso a datos
“La capa de acceso a datos contiene la lógica principal de acceso y persistencia
de datos dentro de nuestra aplicación Web. Dado a que las aplicaciones
empresariales están centradas en los datos (data centric), la capa de acceso a
datos tiene una importancia crucial dentro de la arquitectura de la
correspondiente aplicación Web. La capa de acceso a datos tiene que soportar
no solo el almacenamiento de datos, sino la recuperación de información de
formas complejas.”9
Partiendo de esta introducción se logra entender que la capa de acceso tiene una parte
lógica para el acceso y persistencia de datos ya que este contenido estará
fundamentado e implementado en la aplicación web a desarrollar, esta capa deberá
contener todo el almacenamiento de datos y a la vez hacer la respectiva recuperación
de información de las formas más complejas, al mismo tiempo contemplar la
interacción que tendrán los usuarios finales accediendo a dicha data.
“En esta capa es donde se escribe el código que habla con la base de datos.
Aquí es donde esta capa se define las consultas a la base de datos (el SQL).
No realiza validaciones entre entidades, sólo las validaciones que van hacia la
base de datos. La intención de esta capa es que el resto de la aplicación no se
preocupe de los detalles (en cierta medida) de la estructura de la base de datos
y trabaje a un nivel de objetos.”10
Es decir que justo en esta capa de acceso se transcribe el código con el cual se
comunicara la base de datos que se tenga, además por lo anteriormente mencionado
es la responsable de la entrada como de la salida de la data hacia y desde la base de
datos.
9 http://jmaw.blogspot.com/2013/01/arquitectura-de-aplicaciones-web-capa_6972.html 10 http://www.developeando.com/2013/07/sobre-arquitectura-en-capas-parte-1.html
19
Capa de presentación
“Es donde residen los programas que se ejecutan, se reciben peticiones del
usuario y se envían las respuestas tras el proceso, es aquí donde se establecen
todas las reglas que deben cumplirse, se comunica con la capa de datos, para
solicitar al gestor de base de datos almacenar o recuperar datos.”11
Partiendo de este concepto y haciendo uso de la arquitectura de tres capas, la capa
de presentación es donde están alojados los diversos programas que se ponen en
marcha al momento de su respectiva ejecución, cabe destacar que dicha capa también
recibe diversas solicitudes con el fin de presentar los resultados teniendo una relación
con la capa de datos para permitir hacer los respaldos de la data.
“Es la que ve el usuario (también se la denomina "capa de usuario"), presenta
el sistema al usuario, le comunica la información y captura la información del
usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que
no hay errores de formato). Esta capa se comunica únicamente con la capa de
negocio.”12
La capa de presentación puede ser definida también como la capa de usuario, en ella
existe un proceso de comunicación donde están incluidos tanto la información como al
usuario final, destacando que la importancia que tiene es que mediante este proceso
realiza un filtrado para detectar o comprobar que no existan errores.
Capa de negocio
“Esta es la capa que recibe las peticiones del usuario y se envía las respuestas
tras el proceso. Se denomina capa de negocio e incluso lógica de negocio
porque es aquí donde se establecen todas las reglas que deben cumplirse.”13
11 https://laurmolina7821.wordpress.com/1-1-3-aplicaciones-de-2-3-y-n-capas/ 12 http://bio.es/bioges/caracteristicas/item/6-arquitectura-3-capas 13 https://ingruizlargaespada.files.wordpress.com/2014/01/tema5.pdf
20
Es decir que en esta capa de negocio todos los lineamientos, políticas, normas o reglas
deben cumplirse ya que es la que recibe las múltiples solicitudes del usuario final y se
envían las respuestas en un proceso determinado.
Responsable del procesamiento.
Validar entradas y salidas.
Capa intermedia con capacidad de mantenimiento y reutilización.
“La capa de negocio ocupa un lugar preeminente en la construcción de una
infraestructura de software, al permitir el crecimiento y la extensión de servicios
para todas las aplicaciones existentes y futuras.” 14
Se puede comprender que la capa de negocio es de mucha importancia para los
desarrolladores de las aplicaciones web ya que es vital a la hora de la construcción o
estructuración de dicha aplicación.
Listado de componentes de la capa de negocio:
“Componentes de negocio: Encapsulan las reglas de negocio.
Entidades de negocio: Se utilizan para intercambiar dato entre componentes de
negocio.
Flujo de trabajo: Requieren intervención del usuario.
Fachada de aplicación: Combina múltiples operaciones de negocio dentro de
un único mensaje.” 15
Dicha capa de negocio está estructurada por cuatro componentes, donde cada uno de
ellos posee diversos factores a desarrollar dentro de los procesos que se hagan.
2.2 Controladores de acceso a bases de datos
“Los controladores de bases de datos se utilizan durante el tiempo de creación
y de procesamiento. Durante el tiempo de creación, el controlador de la base de
datos se utiliza para identificar el esquema de los datos. Durante el tiempo de
14 http://www.juntadeandalucia.es/servicios/madeja/contenido/subsistemas/arquitectura/capa-negocio 15 http://jmaw.blogspot.com/2013/01/arquitectura-de-aplicaciones-web-capa_5.html
21
procesamiento, el informe utilizará el mismo controlador de base de datos
utilizado para crear el informe. No obstante, si los datos se insertan en el
informe, el informe seleccionará el controlador adecuado para controlar el
conjunto de registros o el conjunto de datos.”16
De lo anterior, en si los controladores de acceso a las bases de datos son utilizados
justo al momento de la creación y de un procesamiento, para el momento de la
creación este se utiliza para lograr reconocer o identificar todo el esquema de la data.
Para el tiempo de procesamiento el mismo controlador de acceso a la base de datos
será utilizado para el informe con una limitante si los datos son ingresados en dicho
reporte este mismo reporte será el encargado de escoger al controlador de acceso
para poder llegar a tener un control de los registros o del conjunto de los datos.
“Por su parte, la Interfaz de Programación de Aplicaciones (Application
Programming Interface, API), se encarga de mantener el diálogo con la base de
datos, para poder llevar a cabo el acceso y manipulación de los datos. Algunos
de los componentes que forman parte de esta interfaz son los siguientes:
OLEDB, ODBC, JDBC, ISAPI y CGI.” 17
Las API tienen un papel fundamental al momento de usar los controladores de acceso
a bases de datos, ya que se encargan de mantener un dialogo con la base, para tener
acceso y al mismo tiempo hacer usos de los datos, dentro de algunos controladores
que se utilizan más son: OLEDB, ODBC y JDBC.
“Para poder accesar y manipular la información de una base de datos, es
necesario llevar a cabo la instalación de ciertos API's o controladores, que son
indispensables para efectuar la conectividad de los datos externos, y vincularlos
a la aplicación para su correcta y adecuada utilización.” 18
16 https://msdn.microsoft.com/es-es/library/aa287926(v=vs.71).aspx 17 http://www.hipertexto.info/documentos/b_datos.htm 18 http://www.hipertexto.info/documentos/b_datos.htm
22
Queda claro que para poder ingresar y poder manipular la data de una base de datos
es preciso la utilización e instalación de los controladores de acceso ya que estos son
muy importantes para realizar dicho procedimiento.
2.3 Sistemas OLAP
Dentro del mundo de las soluciones para business intelligence, existe una herramienta
muy interesante y a la vez muy utilizada para las organizaciones son los llamados
sistemas OLAP, ya que estos tienen relación con las bases de datos
multidimensionales, que logran hacer o procesar grandes cantidades de información,
estos sistemas tienen un valor agregado para las organizaciones porque generan
confianza al momento de llevar los procedimientos de los datos.
“Básicamente, el Cubo OLAP, que acuña su nombre por su característica
multidimensional, es una base de datos que posee diversas dimensiones,
ampliando las posibilidades que hasta el momento ofrecían las conocidas hojas
de cálculo. Gracias a la incorporación de las bases de datos de tipo
multidimensional, y el nacimiento del nuevo concepto Cubo OLAP.”19
Los sistemas OLAP son una base datos que tiene muchas dimensiones gracias a esta
implementación de estos sistemas las soluciones para negocios inteligentes, su
desarrollo ha sido muy notable por brindar a la organización confiablidad y tener una
información muy precisa en el momento justo.
“La tecnología OLAP permite un uso más eficaz de los almacenes de datos para
el análisis en línea, lo que proporciona respuestas rápidas a consultas analíticas
complejas e iterativas. Los modelos de datos multidimensionales de OLAP y las
técnicas de agregados de datos organizan y resumen grandes cantidades de
datos para que puedan ser evaluados con rapidez mediante el análisis en línea
y las herramientas gráficas.” 20
19 http://www.informatica-hoy.com.ar/telefonos-celulares/Cubo-OLAP-una-base-de-datos-multidimensional.php 20 http://www.fing.edu.uy/~ruggia/T5s/Migrador-OLAP.pdf
23
Los sistemas OLAP permiten hacer un uso más eficaz a la hora de aplicarlos a los
almacenes de los datos para su respectivo análisis en línea, lo que genera algunas
respuestas de una forma muy rápida. Estos modelos llegan a ordenar grandes
cantidades de información con el objetivo de ser procesados o evaluados de una forma
rápida atreves de herramientas gráficas, una ventaja de los sistemas OLAP es que
estos generan la velocidad y la flexibilidad necesaria para dar apoyo a la persona
analista en un tiempo real.
2.4 Herramientas de análisis de datos SQL Server Analysis Services
“Microsoft SQL Server 2005 Analysis Services (SSAS) ofrece funciones de
procesamiento analítico en línea (OLAP) y minería de datos para aplicaciones
de Business Intelligence. Analysis Services admite OLAP y permite diseñar,
crear y administrar estructuras multidimensionales que contienen datos
agregados desde otros orígenes de datos, como bases de datos relacionales.”21
Dentro de las herramientas de análisis de datos se presenta la primera que es SQL
server Analysis Services, es una de las más eficientes ya que posee funciones para
los sistemas OLAP y para cualquier aplicación que contenga algún negocio inteligente,
se aplican tanto para bases de datos multidimensional y también como bases de datos
relaciones, dentro de las organizaciones es una de las más utilizadas.
Oracle Advanced Analytics
“Opción de Oracle Database 11g Enterprise Edition ofrece a la base de datos a
una completa plataforma de análisis avanzada mediante dos componentes
principales: Oracle R Enterprise y Oracle Data Mining, Oracle Advanced
Analytics ofrece a los clientes una completa plataforma para las aplicaciones
analíticas en tiempo real que proporciona información completa.”22
Otra de las herramientas de análisis de datos más eficientes y utilizados en las
empresas es Oracle Advanced Analytics, posee dos componentes importantes
21 https://technet.microsoft.com/es-es/library/ms175609(v=sql.90).aspx 22 http://www.oracle.com/es/products/database/options/advanced-analytics/index.html
24
mencionados en el párrafo anterior, a diferencia de la primera herramienta presentada,
esta ofrece a los clientes una plataforma más completa para las diversas aplicaciones
que se tengan, estos resultados son presentados en tiempo real y tiene las siguientes
ventajas: escalabilidad, rendimiento, seguridad y por ultimo ahorro de tiempo y dinero.
Rapidminer
“RapidMiner, # 1 plataforma de análisis predictivo de código abierto de la
industria, esta herramienta está alterando el mercado mediante la potenciación
de las empresas para incluir el análisis predictivo en cualquier proceso de cierre
de negocios y el lazo entre el conocimiento y la acción. RapidMiner hace análisis
predictivo a una velocidad muy rápida para los analistas modernos de hoy en
día, lo que reduce radicalmente el tiempo para descubrir las oportunidades y
riesgos.”23
Como una tercera herramienta de análisis de datos esta RapidMiner que es de tipo
código abierto, esta técnica está penetrando poco a poco en el mercado debido a su
análisis predictivo para los procesos de cierres de negocio. Su análisis predictivo lo
hace a una velocidad muy rápida esto es muy significativa para los analistas modernos
de hoy en día, reduciendo así en un gran numero los riesgos que puedan presentarse.
Excel
“Microsoft Excel ofrece un conjunto de herramientas para el análisis de los datos
(denominado Herramientas para análisis) con el que se podrá ahorrar pasos en
el desarrollo de análisis estadístico o de ingeniería.”24
Por último se presenta la herramienta de análisis de datos Excel, es las más básica de
todas ya que viene incluida en el paquete de Microsoft office, el análisis se hace en
base a los parámetros o variables ingresadas y la información o resultados finales
llegan a presentarse de una forma gráfica, en tablas u otro tipo de gráficos.
23 https://rapidminer.com/us/ 24 http://www.uv.es/ceaces/pdf/aexcel.pdf
25
CAPÍTULO 3
26
Metodología de la investigación
3.1 Definición, planteamiento y delimitación del problema.
“¿Qué sostiene el desarrollo económico en un mundo físico caracterizado por la
disminución de los recursos y la escasez? La respuesta: la manera en que las
sociedades tratan los avances en tecnología”.25 Partiendo de esta premisa se puede
visualizar el papel tan importante que juegan los avances tecnológicos en el ámbito
empresarial y en el desarrollo sostenible de las sociedades y sus economías.
La innovación tecnológica ha contribuido en gran medida a la mejora constante de los
procesos empresariales y es definida como:
“Todo cambio significativo de una tecnología que logra imponerse en el
mercado, o en términos más amplios, llega a emplearse en forma permanente
por la sociedad, con el objetivo de contribuir a mejorar el desarrollo del sector
productivo de bienes y servicios” [Perozo, Villalobos, 2014, 38]
Avances tecnológicos tales como internet, telefonía celular, redes sociales, suites
ofimáticas, bases de datos, entre muchos otros son tan solo unos pocos ejemplos de
cómo la innovación tecnológica ha contribuido a mejorar la productividad, de muchos
sectores económicos que hacen uso de ella y están más capacitados para participar
en el mercado globalizado.
Las herramientas tecnológicas no son de utilidad, si no son utilizadas con eficiencia y
precisión, es decir de una manera inteligente, que según la (RAE) se entiende por
inteligencia a la “capacidad de entender, comprender y resolver problemas,”26
enfocada dicha definición al ámbito empresarial podemos decir que la inteligencia de
negocios es la capacidad que tienen los altos mandos de entender, comprender y
resolver problemas haciendo un correcto uso de las tecnologías disponibles.
¿Pero que es inteligencia de negocios (BI)?
25 Paul M. Romer: http://www.stern.nyu.edu/faculty/bio/paul-romer 26 http://lema.rae.es/drae/?val=inteligencia
27
Para entender mejor el término de inteligencia de negocios, la IEEE define este término
como la “obtención de información correcta, de las personas adecuadas, en el
momento adecuado”27 es decir, la capacidad de obtener la información en el momento
oportuno, para la correcta toma de decisiones.
En otra definición de BI se hace mención más puntualmente al ámbito empresarial, en
este entorno se describe como BI a las “herramientas de apoyo a las decisiones, que
permiten en tiempo real acceso interactivo, análisis y manipulación de la información
empresarial” [Cherry Tree & Co, 2000, 2]. Como se expresa en la definición anterior,
la inteligencia de negocios se define como la utilización de herramientas para la
manipulación de la información, con la única finalidad de agilizar y optimizar la toma
de decisiones de las altas gerencias. Visto desde una perspectiva más amplia BI es
definido como:
“conceptos, métodos, procesos y aplicaciones de software diseñadas para
mejorar las decisiones de negocio mediante el análisis de datos en bruto” [Caia,
Nastase, 2014, 2]
Unificando todas las definiciones puede decir que. La inteligencia de negocios es vista
como, la forma de obtener información correcta y oportuna a través del uso de las
herramientas (Software) de apoyo empresariales para la correcta toma de decisiones.
Actualmente existen muchas soluciones de BI en el mercado, este tipo de plataformas,
son software con diferentes aplicaciones “diseñadas para brindar apoyo en el
procesamiento de la información, análisis y presentación de datos” [Rodríguez, Cortes,
2012, 240], los principales insumos de estas herramientas son los datos que se obtiene
como resultado de las operaciones históricas de las organizaciones.
Para poder tener una idea más clara del potencial de este tipo de herramientas, es
necesario visualizar su alcance dentro del marco económico y empresarial, “Las
organizaciones de hoy en día son entidades incansables, dinámicas y en
funcionamiento” [Shyandilya, Gupta, Goud, 2014, 103] que constantemente
27http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=4588724&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D4588724
28
evolucionan para adaptarse a los mercados globalizados y a las necesidades de los
consumidores, por ello se precisa de herramientas que ayuden a gestionar de forma
más rápida y precisa la toma de decisiones, predecir comportamientos dentro del
mercado, reducir márgenes de riesgos en nuevas inversiones, etc.
3.2 El alcance, justificación y limitaciones de la investigación
El presente trabajo de investigación posee un enfoque cuantitativo, de tipo descriptivo
tal y como lo establece Sampieri y Collado (2010), pues pretende demostrar por medio
de la observación, la investigación documental y los procesos sistemáticos como
contribuyen las herramientas de BI en la toma de decisión de las altas gerencias.
Dado que la presente investigación tiene un campo de estudio muy amplio es
necesario establecer las delimitaciones para aterrizar en el sujeto y área de estudio,
en tal sentido se cuenta con datos arrojados por la DIGESTYC 28 de un estudio
realizado en el año 2012 en conjunto con el MINEC, dicha investigación muestra que
la distribución económica por departamento, se centra principalmente en los
departamentos de Sonsonate (7%), San Miguel (7%), Santa Ana (10%), La Libertad
(12%) y San Salvador (38%), dejando en evidencia que el departamento con mayor
representatividad económica es el departamento de San Salvador.
Según los datos de la DIGESTYC la distribución económica de El Salvador por sector
se comprendía de la siguiente manera: el sector comercio representaba el 59.36% de
la distribución, el sector industria y servicios representaban 11.54% y 27.62%
respectivamente, mientras que el sector transporte y otros tan solo representaban el
1.18% y 0.30%, la información proyectada por la DIGESTYC muestra que el sector
más representativo de la economía salvadoreña es el sector comercial.
Basándose en los datos obtenidos por la DIGESTYC y comprendiendo el concepto y
finalidad de las tecnologías BI, se define como sujeto de estudio las pequeñas y
medianas empresas del sector comercial, adicionalmente se delimita como área de
estudio el municipio de san salvador.
28 http://www.digestyc.gob.sv/index.php/novedades/publicaciones/category/31-encuestas-economicas.html
29
Con la información ostentada en el presente capítulo, tanto como en los capítulos que
le anteceden se plantean las siguientes preguntas de investigación:
¿Cuáles son los requerimientos, que las PYMES tienen en relación al análisis
de datos históricos?
¿Qué tecnologías de software se usan actualmente para el análisis,
procesamiento y presentación de datos históricos?
¿Qué tipos algoritmos o mecanismos utilizan las herramientas de BI?
3.3 Objetivo general.
Diseñar una herramienta de software que ayude a mejorar la toma de
decisiones basada en análisis de datos históricos para las PYMES del sector
comercio del municipio de San Salvador.
3.4 Objetivos específicos.
Analizar los beneficios que ofrece la herramienta del software para la toma de
decisiones en las PYMES del sector comercio del municipio de San Salvador.
Determinar como la herramienta de software forma parte de la estrategia de
crecimiento y desarrollo para las pymes.
Facilitar a través de la herramienta del software las diversas actividades del día
a día en las pymes del sector comercio del municipio de San Salvador.
3.5 Definición de unidad de análisis, variables e indicadores.
A continuación se plantean las siguientes unidades de análisis:
Tecnología de desarrollo de software. Analizar los diferentes lenguajes de
programación para escoger el que se usara en nuestra investigación, debido a
que hay algunos que suelen destacar más que otros y suelen ser mejores para
llevar acabo el software.
Herramienta para el análisis de datos. Analizar las diversas herramientas
para el análisis de datos y determinar que herramienta se pondrá en uso para
llevar a cabo la investigación.
Estructura del software. Verificar e identificar los requerimientos tanto
funcionales como no funcionales del software, con el propósito de ver que
30
funciones podrá realizar el software a desarrollar y también ver qué
características puedan limitar al sistema.
Documentación proporcionada por la DIGESTYC. Obtener la mayor
cantidad de información posible, de una fuente confiable y que pueda arrojarnos
datos útiles de las PYMES del sector comercio del municipio de San Salvador
ya que los argumentos deben de estar apoyados de una base sólida para poder
llevar acabo la respectiva investigación.
Tabla 2: Definición de variables
Variable Definición Conceptual Definición Operacional
1. Lenguaje de programación
Lenguaje formal diseñado para
llevar acabo proceso lleva un
comportamiento físico y lógico.
Características y
funcionalidad de los
diferentes lenguajes de
programación C, C++, Java,
PHP
2. Bases de datos
Es una entidad en la cual se
pueden almacenar datos de
manera estructurada, con la
menor redundancia posible.
Características y
funcionalidad de las diversas
base de datos, Oracle, SQL
server, Excel.
3. Requerimientos funcionales
Son las funciones o servicios
que debe cumplir el software
Propiedades que describen
los procesos que debe de
realizar el software.
4. Requerimiento no funcionales
Limitantes que puede
presentar el software a la hora
de implementarse
Características que describen
las funciones o proceso que
presentaran limitantes.
Fuente: Elaboración propia
31
Tabla 3: Indicadores y su medición
Unidad de Análisis
Variable Indicadores Ítem Técnicas Instrumento
s
Tecnología de desarrollo de
Software
Lenguaje de programación
Procesamiento
Rendimiento
Flexibilidad
Adaptabilidad
Tiempo de respuesta
Tiempo de ejecución
Tiempo de compilación
Observación Cuadro
comparativo de lenguajes
Herramientas para el análisis de
datos Bases de datos
Integración
Rendimiento
Consistencia
Eficacia
Accesibilidad
Costo
Portabilidad
Actualizaciones
Compatibilidad
Observación
Cuadro Comparativo de bases de
datos
Estructura del software
Requerimientos funcionales
Lista de requerimientos
funcionales
Actividades dependientes
Compatibilidad
Tiempos
Presupuesto
Modo de ejecución
Observación
Lista de Chequeo de requerimient
os funcionales
Requerimientos no funcionales
Lista de requerimientos no
funcionales
Soporte para varios idiomas
Actualizaciones constantes
Observación
Lista de Chequeo de requerimient
os no funcionales
Documentación proporcionada por
la DIGESTYC
Requerimientos funcionales
Lista de requerimientos
funcionales
Análisis de contenido
Cuadro Resumen
Requerimientos no funcionales
Lista de requerimientos no
funcionales
Análisis de contenido
Cuadro Resumen
Fuente: Elaboración propia
32
3.6 Técnicas y procedimientos a emplearse en la recopilación de
información.
Observación: La observación es una técnica de investigación que se utiliza
para explorar, describir, comprender y tener en cuenta aspectos que son
fundamentales, de los cuales se obtendrá información que será utilizada para
crear las mediciones de los estudios.
Análisis de contenido: Es una técnica de investigación destinada a facilitar la
descripción e interpretación sistemática de los elementos semánticos y a la vez
formales de todo tipo de mensaje, y la formulación de inferencias validas acerca
de los datos reunidos.
3.7 Instrumentos de medición
Para la recopilación de información y medición de variables se plantean los siguientes
instrumentos:
A) Cuadro comparativo de lenguajes: En este cuadro se clasificaran los diversos
lenguajes de programación con sus principales características, ventajas y
desventajas, para seleccionar el que mejor se apegue a la investigación. (Ver
anexo)
B) Cuadro comparativo de bases de datos: Aquí se reflejan las diferentes
características, ventajas y desventajas que tienen las bases de datos para
incluirse en la elaboración del software. (Ver anexo)
C) Lista de chequeo de rendimientos funcionales y no funcionales: Listado de
chequeo para asegurar los rendimientos que si son funcionales del software y
33
también separar por medio de la lista de chequeo los rendimientos que o son
funcionales para el software. (Ver anexo)
D) Cuadro resumen: Se establece en este cuadro resumen toda la información más
importante recopilada de la DIGESTYC. (Ver anexo)
3.8 Universo y muestra
El universo de la investigación como ya se definió en el apartado 3.2 consta de las
pequeñas y medianas empresas del municipio de san salvador.
Dado que el enfoque de la investigación es cuantitativo, de tipo descriptivo y que la
principal técnica que se utilizara será la observación, y la recolección de información
por medio de documentos e investigaciones hechas por parte de la DIGESTYC.
Con esta información serán utilizados para indagar y dar respuestas a las preguntas
de investigación, plasmadas dentro del planteamiento del problema, se establece que
la investigación no incurrirá en una muestra pues no se hará una investigación de
campo.
34
CAPÍTULO 4
35
Investigación y Diagnóstico
4.1 Resultados de la investigación
Una vez administrados los instrumentos y definidos en el capítulo número tres acerca
de la metodología de la investigación, a continuación se presentan los resultados en
función de las variables que se describen.
Variable 1. Lenguaje de programación
Variable 2. Bases de datos
Variable 3. Requerimientos funcionales/no funcionales, en función de la
estructura del software
Variable 4. Requerimientos funcionales/no funcionales, en función de la
documentación proporcionada por la institución DIGESTYC
Variable 1: Lenguaje de programación
Para la medición de la variable se elaboró un instrumento que permite recopilar
información y resumir los principales lenguajes de programación en un cuadro
comparativo.
Dentro de los elementos investigados se tienen:
- Tiempo de respuesta
- Tiempo de ejecución
- Tiempo de compilación
- Ventajas
- Desventajas
El mecanismo de funcionamiento de cada uno de estos elementos se detalla en la
siguiente tabla:
36
Tabla 4: Instrumento de medición #1 cuadro comparativo de lenguajes de
programación
Lenguaje de
programación
Tiempo
de
respuesta
Tiempo
de
ejecución
Tiempo de
compilación Ventajas Desventajas Interpretación
PHP
Precisión
microsegun
dos
198
microsegun
dos
1,267
microsegundo
s
- Es un lenguaje
multiplataforma.
-Dinámico
- Costo.
- Sencillez y
versatilidad.
- Seguridad
- Soporte
- Rapidez
- Código abierto
-Dificulta la
modularización
PHP ofrece al
desarrollador
mayores
facilidades a la
hora de crear el
código fuente, la
portabilidad de
php es extensa
por ende el
soporte es muy
amplio y de muy
bajo costo,
considerando los
diversos tiempos
de respuesta,
ejecución y
compilación que
son más rápidos
a comparación de
los demás
lenguajes de
programación lo
cual es una
notable ventaja.
JAVA
Precisión
microsegun
dos
228 microsegun
dos
5,000 microsegundo
s
-El JDK es una
herramienta
libre de
licencia(sin
costo)
- Con el JDBC
se puede
acceder a la
base de manera
muy rápida.
- Elimina la
complejidad de
los lenguajes
como "C"
- La velocidad,
los programas
en java no
tienden a ser
rápidos
-
Requerimientos
mínimos para
poder trabajar
adecuadamente
.
JAVA para
algunos
desarrolladores
puede ser un
lenguaje complejo
que requerirá
tiempo para
entender su
lógica.
37
Lenguaje de
programación
Tiempo
de
respuesta
Tiempo
de
ejecución
Tiempo de
compilación Ventajas Desventajas Interpretación
-Dinámico
Visual Basic.Net
Precisión
microsegun
dos
1,107 microsegun
dos
1,500 microsegundo
s
- Integra el
diseño e
implementación
de formularios
de Windows.
- Posee una
curva de
aprendizaje
rápida.
- Es migrable a
otros lenguajes.
- No es
multiplataforma.
- No maneja
muy bien los
apuntadores de
memoria.
- No permite el
manejo de
memoria
dinámica,
punteros.
- Sin soporte de
Microsoft desde
el año 2008.
El lenguaje de
programación
visual basic, para
muchos les
permite
programar de una
manera eficiente,
pero deberán
tener algunos
requerimientos
para su correcto
funcionamiento.
C++
Precisión
microsegun
dos
172
microsegun
dos
4000 microsegundo
s
- Lenguaje de
programación
orientado a
objetos.
- Lenguaje muy
didáctico.
- Es difícil
programa bases
de datos.
- Es mucho más
difícil de usar
que otros
lenguajes.
Es un lenguaje
muy robusto a la
hora de estar
programando
código.
Fuente: Elaboración propia
Según lo detallado anteriormente relacionado a los lenguajes de programación por
medio de una tabla comparativa, se seleccionó PHP debido a que sobresale muy
notablemente a los demás lenguajes, debido a sus tiempos de respuesta, tiempos de
ejecución, tiempos y de compilación, que a la hora de programar el código influyen
38
notablemente, sin dejar atrás el costo que siempre es importante a la hora de plasmar
un sistema.
El objetivo de este estudio es realizar una comparación de la eficiencia de diferentes
lenguajes para ejecutar algoritmos. La tarea se ejecutará en la misma plataforma
(equipo, sistema operativo) variándose los lenguajes previamente propuestos. El
equipo utilizado es una PC con placa madre AMD Athlon™ II X2 240 con procesador
2.81 GHz, 4 GB de RAM. El sistema operativo es Microsoft Windows 7, Profesional.
Para la medición de los tiempos de ejecución, tiempos de compilación y tiempos de
respuesta se utilizó una serie de programas previamente elaborados en clases de
programación codificados en los diferentes lenguajes de programación (php, Visual
Basic.Net, JAVA, C++) estos fueron ejecutados en plataformas como: Eclipse,
CodeBlocks, Visual Studio, para poder sacar dichas conclusiones.
Los programas utilizados para realizar las evaluaciones tienen una carga de datos de
entre 150-300 Mb, estos programas han tenido un promedio de tiempo de elaboración
(3 meses) asemejándose a lo que se quiere lograr.
Variable 2: Bases de datos
Para la medición de la variable se elaboró un instrumento que permite recopilar
información y resumir las principales bases de datos en un cuadro comparativo.
Dentro de los elementos investigados se tienen:
- Costo
- Portabilidad
- Actualizaciones
- Compatibilidad
El mecanismo de funcionamiento de cada uno de estos elementos se detalla en la
siguiente tabla:
39
Tabla 5: Instrumento de medición #2 cuadro comparativo de bases de datos
Base de Datos
Costo Portabilidad Actualizaciones Compatibilidad Interpretación
MySQL
- Se puede
trabajar con la
versión gratuita
- Para
pequeñas y
medianas
empresas el
precio es de
$500 a $5000.
- Para grandes
compañías el
precio es de
$25,000 y
$40,000
La potabilidad
se puede llevar
acabo de forma
manual o de
forma
automática,
dependiendo de
las conexiones
remotas.
- Última actualización
6 de abril de 2015.
- La herramienta
Mysql posee
diversas
actualizaciones, que
permiten una mejor
compatibilidad.
Multiplataforma
Mysql, es una
herramienta de
base de datos
utilizada por la
gran mayoría de
empresas y
personas para
sus negocios, por
sus bajos costos,
ya que se puede
utilizar la versión
Community
Editions, para las
empresas
medianas se
acomoda la
versión estándar,
y para la
implementación
para grandes
empresas se
cuenta con la
versión
Professional
Cluster.
ORACLE
- Se puede
trabajar con la
versión
gratuita.
- Edición
estándar
$15,000
- Empresarial
$40,000
La arquitectura
de Oracle
permite que los
datos y
aplicaciones
residan en
diferentes Pc,
OS, plataformas
y ambientes de
red
- Las actualizaciones
están
constantemente en
todas las versiones
de ORACLE, para su
mejor rendimiento en
las diversas
empresas
Multiplataforma
ORACLE, al igual
que Mysql lidera
en concepto de
usuarios a nivel
mundial, aunque
el costo de esta
es más elevado
en algunas
versiones.
PostgreSL
- Se puede
trabajar con la
versión
gratuita.
Portabilidad con
Microsoft
Windows, Linux
En general cualquier
plataforma moderna
con Unix, Linux,
MAC os, se hacen
las actualizaciones
de forma automática
Multiplataforma
PostgreSQL es
libre y el código
fuente completo
está disponible.
40
Base de Datos
Costo Portabilidad Actualizaciones Compatibilidad Interpretación
SQL Server
- Enterprise
$27,496
- Standard
$7,172, varían
según las
versiones.
Portabilidad con
Microsoft
Windows,
depende las
conexiones
remotas.
Las actualizaciones
se puede realizar por
medio de un asesor
que trae integrado
SQL server
Multiplataforma
Proporciona una
plataforma de
inteligencia de
negocios
escalable y
optimizada para
integración de
datos.
Fuente: Elaboración propia
Al momento de hablar de base de datos o gestores de bases de datos siempre es
importante seleccionar la que mejor sea factible para desarrollar un sistema, en este
caso se tomara en cuenta y se hará uso de MySQL, debido a lo mencionado y detallado
en la tabla anterior, cuenta con una versión community editions de código abierto, el
costo es relativamente bajo a comparación de los demás gestores de bases de datos,
las actualizaciones son constante lo que permite una mejor portabilidad y a la vez un
mejor desarrollo de la misma.
Variable 3. Requerimientos funcionales/no funcionales, en función de la estructura del
software.
Dentro de los elementos investigados se tienen, Requerimientos funcionales
- Compatibilidad
- Mantenimiento
- Tiempo
- Presupuesto
- Modo de ejecución
41
Tabla 6: Instrumento de medición #3 lista de chequeo de requerimientos
funcionales en función de la estructura del software SQL Server Analysis
Services
Criterio Si / No / N/A
Compatibilidad
¿Se ha especificado la fiabilidad del sistema/software, incluyendo las consecuencias en el caso de que se presente una falla, la información vital a proteger en caso de caída, la detección de los errores o el proceso de recuperación?
¿Se han especificado los requerimientos para la comunicación entre los componentes del sistema/software?
¿Se ha definido la funcionalidad y el comportamiento global de todo el sistema/software?
Mantenimiento
¿Se ha especificado la mantenibilidad del sistema/software, incluyendo la habilidad de respuesta a los cambios en el entorno operativo, las interfaces, la precisión, el rendimiento, y otras capacidades adicionales predecibles?
¿Se han especificado todas las tareas de mantenimiento que se le debe realizar al sistema/software?
Tiempos
Desde el punto de vista del usuario, ¿se ha especificado el tiempo de respuesta esperado de todas las operaciones necesarias?
¿Se han especificado otras consideraciones temporales tales como el tiempo de procesamiento, el de transferencia de datos o la tasa de transferencia?
Presupuesto
¿Dada la línea base de costes que incluye desde instalación, capacitación y actualización del software a utilizar, esta permite estimar, presupuestar y controlar los costes de la utilización del software?
¿Se ha determinado si el coste del software es de forma anual?
Modo de ejecución
42
Para cada tarea especificada, ¿se ha detallado el contenido de datos/información utilizado por la tarea y el contenido de datos/información que se obtendrá como resultado de la misma?
¿Se ha definido en que sistema/as operativos tiene el mejor desempeño el software a ser utilizado?
Fuente: Elaboración propia
43
Tabla 7: Instrumento de medición #3 lista de chequeo de requerimientos
funcionales en función de la estructura del software Oracle Advanced Analytics
Criterio Si / No / N/A
Compatibilidad
¿Se ha especificado la fiabilidad del sistema/software, incluyendo las consecuencias en el caso de que se presente una falla, la información vital a proteger en caso de caída, la detección de los errores o el proceso de recuperación?
¿Se han especificado los requerimientos para la comunicación entre los componentes del sistema/software?
¿Se ha definido la funcionalidad y el comportamiento global de todo el sistema/software?
Mantenimiento
¿Se ha especificado la mantenibilidad del sistema/software, incluyendo la habilidad de respuesta a los cambios en el entorno operativo, las interfaces, la precisión, el rendimiento, y otras capacidades adicionales predecibles?
¿Se han especificado todas las tareas de mantenimiento que se le debe realizar al sistema/software?
Tiempos
Desde el punto de vista del usuario, ¿se ha especificado el tiempo de respuesta esperado de todas las operaciones necesarias?
¿Se han especificado otras consideraciones temporales tales como el tiempo de procesamiento, el de transferencia de datos o la tasa de transferencia?
Presupuesto
¿Dada la línea base de costes que incluye desde instalación, capacitación y actualización del software a utilizar, esta permite estimar, presupuestar y controlar los costes de la utilización del software?
¿Se ha determinado si el coste del software es de forma anual?
44
Modo de ejecución
Para cada tarea especificada, ¿se ha detallado el contenido de datos/información utilizado por la tarea y el contenido de datos/información que se obtendrá como resultado de la misma?
¿Se ha definido en que sistema/as operativos tiene el mejor desempeño el software a ser utilizado?
Fuente: Elaboración propia
Tabla 8: Instrumento de medición #3 lista de chequeo de requerimientos
funcionales en función de la estructura del software Rapidminer
Criterio Si / No / N/A
Compatibilidad
¿Se ha especificado la fiabilidad del sistema/software, incluyendo las consecuencias en el caso de que se presente una falla, la información vital a proteger en caso de caída, la detección de los errores o el proceso de recuperación?
¿Se han especificado los requerimientos para la comunicación entre los componentes del sistema/software?
¿Se ha definido la funcionalidad y el comportamiento global de todo el sistema/software?
Mantenimiento
¿Se ha especificado la mantenibilidad del sistema/software, incluyendo la habilidad de respuesta a los cambios en el entorno operativo, las interfaces, la precisión, el rendimiento, y otras capacidades adicionales predecibles?
¿Se han especificado todas las tareas de mantenimiento que se le debe realizar al sistema/software?
Tiempos
Desde el punto de vista del usuario, ¿se ha especificado el tiempo de respuesta esperado de todas las operaciones necesarias?
¿Se han especificado otras consideraciones temporales tales como el tiempo de procesamiento, el de transferencia de datos o la tasa de transferencia?
45
Presupuesto
¿Dada la línea base de costes que incluye desde instalación, capacitación y actualización del software a utilizar, esta permite estimar, presupuestar y controlar los costes de la utilización del software?
¿Se ha determinado si el coste del software es de forma anual?
Modo de ejecución
Para cada tarea especificada, ¿se ha detallado el contenido de datos/información utilizado por la tarea y el contenido de datos/información que se obtendrá como resultado de la misma?
¿Se ha definido en que sistema/as operativos tiene el mejor desempeño el software a ser utilizado?
Fuente: Elaboración propia
Tabla 9: Instrumento de medición #3 lista de chequeo de requerimientos
funcionales en función de la estructura del software Excel
Criterio Si / No / N/A
Compatibilidad
¿Se ha especificado la fiabilidad del sistema/software, incluyendo las consecuencias en el caso de que se presente una falla, la información vital a proteger en caso de caída, la detección de los errores o el proceso de recuperación?
¿Se han especificado los requerimientos para la comunicación entre los componentes del sistema/software?
¿Se ha definido la funcionalidad y el comportamiento global de todo el sistema/software?
Mantenimiento
¿Se ha especificado la mantenibilidad del sistema/software, incluyendo la habilidad de respuesta a los cambios en el entorno operativo, las interfaces, la precisión, el rendimiento, y otras capacidades adicionales predecibles?
¿Se han especificado todas las tareas de mantenimiento que se le debe realizar al sistema/software?
46
Tiempos
Desde el punto de vista del usuario, ¿se ha especificado el tiempo de respuesta esperado de todas las operaciones necesarias?
¿Se han especificado otras consideraciones temporales tales como el tiempo de procesamiento, el de transferencia de datos o la tasa de transferencia?
Presupuesto
¿Dada la línea base de costes que incluye desde instalación, capacitación y actualización del software a utilizar, esta permite estimar, presupuestar y controlar los costes de la utilización del software?
¿Se ha determinado si el coste del software es de forma anual?
Modo de ejecución
Para cada tarea especificada, ¿se ha detallado el contenido de datos/información utilizado por la tarea y el contenido de datos/información que se obtendrá como resultado de la misma?
¿Se ha definido en que sistema/as operativos tiene el mejor desempeño el software a ser utilizado?
Fuente: Elaboración propia
Dentro de los elementos investigados se tienen, Requerimientos no funcionales
- Soporte para varios idiomas
- Actualizaciones constantes
47
Tabla 10: Instrumento de medición #3 lista de chequeo de requerimientos no
funcionales en función de la estructura del software
Criterio Si / No / N/A
Soporte para varios idiomas
¿Se ha especificado la cantidad de idiomas que soporta el software
a utilizar?
¿Se ha definido de no tener soporte para varios idiomas, estos van
a ser incluidos posteriormente?
Actualizaciones constantes
¿Se ha definido cada cuanto tiempo se van a realizar
actualizaciones para que el funcionamiento del software sea siempre
el adecuado?
¿Se ha definido si cada actualización va a tener un costo específico?
Fuente: Elaboración propia
Variable 4. Cuadro resumen de requerimientos funcionales/no funcionales, en función
de la documentación proporcionada por la DIGESTYC.
Requerimientos funcionales
De acuerdo al documento elaborado por la DIGESTYC se concluye que los
requerimientos funcionales para el desarrollo del software son los siguientes:
- El software tendrá un enfoque en las PYMES de San Salvador, debido a que en este
departamento están ubicadas la mayor cantidad de empresas.
- El software tendrá al sector comercio del municipio de San Salvador como principal
fuente de información, ya que con un 59.36% es el municipio con mayor representación
de este sector.
Comparación de número de micro, pequeña, mediana y grande empresa en el
sector de San Salvador.
48
Tabla 11 Tabla extraída del documento “Directorio de Unidades Económicas
2011-2012 MINEC-DIGESTYC”
Fuente: Elaboración propia
Analizando el cuadro extraído y estudiando los datos que brinda, se concluye que la
plataforma desarrollada está destinada a comercializarse en el sector de San Salvador
ya que es donde se concentra la mayor cantidad de empresas dedicadas al sector
comercio y esto hace que se pueda llegar a más empresas.
Debido a que se cuentan con 2,733 pequeñas empresas, 351 medianas empresas,
haciendo un total de 3,084 PYMES del sector comercio en el municipio de San
Salvador, la plataforma será de bajo costo, esto tomando en cuenta que el nivel de
adopción de tecnología de las PYMES en San Salvador es muy bajo por ende se
cuenta con un presupuesto muy bajo para poder incluir este tipo de tecnologías.
Contribuyendo a realizar una plataforma de bajo coste, se decidió utilizar MySql debido
a la relación: capacidad-costo. MySql es utilizada por gran cantidad de PYMES a nivel
mundial, y esto se debe a su gran capacidad de procesamiento de datos y a su bajo
costo en el mercado, haciendo de esta una herramienta confiable y a precio accesible
para empresas que apenas están incluyendo tecnología a sus procesos.
Con referencia al lenguaje de programación utilizado, que se ajuste a los procesos que
se ejecutan en las PYMES de San Salvador y teniendo en cuenta que se ha optado
por una plataforma web de tipo dinámica, se utilizó el lenguaje de programación PHP.
PHP se considera uno de los lenguajes más flexibles, potentes y de alto rendimiento
conocidos hasta el día de hoy, lo que ha atraído el interés de una gran cantidad de
sitios que tienen una demanda de tráfico elevada, como Facebook.
Municipio/Sector Micro
Empresa Pequeña Empresa
Mediana Empresa
Grande Empresa
Total
San Salvador/Comercio
59,049 2,733 351 286 62,419
49
Este lenguaje puede ser utilizado en la mayoría de servidores web y en casi todos los
sistemas operativos del mercado, sin importar si son gratuitos o de paga.
Debido a las características mencionadas PHP se seleccionó como la mejor opción
para ser implementada en la herramienta desarrollada.
Seguridad del sistema.
Encriptación de datos.
Corresponde a una tecnología que permite la transmisión segura de datos e
información, al codificar los datos transmitidos usando una fórmula matemática que
"desmenuza" los datos.
Es la tecnología la que hace posible que se puedan implementar las medidas de
seguridad necesarias para crear la confianza en el manejo de los datos e información
de cada usuario que utilice el software. Asegurar que la Información viaje segura,
manteniendo su autenticidad, integridad, confidencialidad dentro del sistema en uso.
La encriptación de datos e información se ha convertido en una parte fundamental para
cualquier proceso informático en el que involucre contraseñas, contraseñas, números
de identificación legal, números de tarjetas de crédito, reportes administrativo-
contables y conversaciones privadas, entre otros. De esta forma se les garantiza a los
usuarios que sus datos pueden estar asegurados en cualquier momento evitando así
que sean víctimas de cualquier ataque.
Tabla 12. Tipos de encriptación de datos.
Método de encriptación
Como funciona
Ventajas Desventajas Aplicación
Claves simétricas
Utilizan una
clave con la cual
se encripta y
desencripta el
documento.
- Rápidos y fáciles
de implementar.
- Clave de cifrado y
descifrado son la
misma.
- La clave
debería viajar
con los datos.
- Imposible de
utilizar en
ambientes
- Entre los algoritmos
de cifrado simétricos
podemos mencionar
DES, 3DES, AES y
RC4.
50
Método de encriptación
Como funciona
Ventajas Desventajas Aplicación
Todo documento
encriptado con
una clave,
deberá
desencriptarse,
en el proceso
inverso, con la
misma clave
donde
interactúan
varios
interlocutores.
- Los algoritmos 3DES
y AES son utilizados
comúnmente por el
protocolo IPSEC para
establecer conexiones
de VPN.
- El algoritmo RC4 es
utilizado en
tecnologías de redes
inalámbricas para el
cifrado de información
en los protocolos de
seguridad WEP y WPA
versión 1.
Claves asimétricas
Cada usuario
dispone de dos
claves, una
pública, que
debe revelar o
publicar para
que los demás
puedan
comunicarse con
él, y una privada
que debe
mantener en
secreto.
- Estos sistemas
responden a la
necesidad de
comunicación en
redes muy grandes.
- Una
comunicación en
la que
intervengan
múltiples
usuarios
requiere muchas
claves secretas
distintas.
- Los tipos de cifrado
RSA o El Gamal, son
muy utilizados para el
envío y recepción de
correos electrónicos.
Algoritmo HASH
Función
matemática que
no tiene inversa
y produce un
- Es utilizada en
seguridad para
garantizar la
- No garantiza la
confidencialidad
de la información
(no es necesario
- MD5 y SHA-1 son los
principalmente
algoritmos de hashing
empleados
51
Método de encriptación
Como funciona
Ventajas Desventajas Aplicación
resultado de
longitud fija.
integridad de la
información.
- Los mensajes
enviados no son
alterados en el
momento que están
en tránsito.
ya que es un
código
encriptado).
Fuente: Elaboración propia
RIJNDAEL.
Para garantizar la seguridad del sistema es necesario encriptar datos sensibles para
el mismo tal es el caso de contraseñas, números de tarjetas de crédito, cuentas
bancarias, etc. Por ello es necesario utilizar métodos de encriptación para dar garantía
al usuario que su información es procesada de forma segura.
Para dicha tarea se propone un método de encriptación el cual es respaldado por uno
de los organismos más destacados en el ámbito de seguridad. Está clasificado por la
Agencia de Seguridad Nacional de los Estados Unidos (NSA). El algoritmo RIJNDAEL
es un sistema simétrico de cifrado por bloques, por lo tanto utiliza la misma clave de
cifrado como para el proceso de descifrado.
“Se basa en varias permutaciones y transformaciones lineales, ejecutadas en
bloques de datos de 16 bytes, estas operaciones se repiten varias veces,
llamadas "rondas". En cada ronda, un único “roundkey” se calcula de la clave
de encriptación, y es incorporado en los cálculos."29
Este algoritmo puede ser utilizada por varios lenguajes de programación entre los más
conocidos tenemos PHP, Java, VB.NET, C# entre otros, dicho algoritmo está
construido bajo un modelo matemático que garantiza que la información puede ser
29 https://www.boxcryptor.com/es/cifrado
52
recuperada con la misma clave con la que se comenzó el proceso de cifrado y la cual
se incorpora al modelo.
Codeigniter.
“CodeIgniter, es un programa o aplicación web desarrollada en PHP para la
creación de cualquier tipo de aplicación web bajo PHP, es un producto de código
libre. Como cualquier otro framework, Codeigniter contiene una serie de librerías
que sirven para el desarrollo de aplicaciones web”30
Como se menciona en el párrafo anterior CodeIgniter es una app web muy utilizable
ya que está desarrollado en un lenguaje de programación PHP, y además es un
producto código libre, esto permite una disminución considerable en los costos, la
reducción en los costos es muy importante al momento que se haga una planificación
de los diversos programas o proyectos a desarrollar.
Características de Codeigniter.
Uno de los mejores frameworks hay para ser utilizado junto a php sin duda es
codeigniter, se considera como una herramienta versátil en cuanto al uso de MVC,
debido a diversos factores a su favor entre ellos se pueden mencionar los siguientes:
Cuenta con una estructura bien definida establecida mediante ficheros las
cuales ayudan a que un programador nuevo se adapta fácilmente a su modelo
de programación.
Existe suficiente documentación en la página oficial de codeigniter y también en
internet lo que contribuye al desarrollo de aplicaciones bajo este framework.
Consta de librerías, clases y helper pre-diseñados que facilitan y mejoran los
tiempos de programación.
Es versátil y permite la integración de clases adicionales creadas por los
usuarios (programadores) que facilita la expansión y adaptación de cualquier
sistema escrito y desarrollado en PHP.
30 http://www.desarrolloweb.com/articulos/codeigniter.html
53
Permite la integración con otros frameworks para incorporar elementos que
visuales tal es el caso de Boostrap, angular, etc. También permite la integración
de código nativo de HTML5, CSS3, JavaScript entre otros.
Permite conectividad con diversas bases de datos, nativamente trabaja con
MySQL pero permite las conexiones con SQL Server, Oracle, PostgreSQL, etc.
Además de ser un framework versátil codeigniter ofrece desarrollos que responden a
las necesidades de los usuarios finales de forma rápida y ágil también hay que tomar
en cuenta que el costo de utilizar servidores como apache ofrece una ventaja en la
implementación de los desarrollos o aplicaciones que se ejecuten en él, puesto que es
un software libre no requiere o demanda licencias para su uso, lo que se traduce en
reducción de costo de implementación.
Form validation en codeIgniter
Una de las librerías con las que CodeIgniter cuenta es la de Form Validation y su
característica principal es que tiene varias funciones que permiten la validación de los
campos de los formularios de manera muy sencilla. Se incluye la validación por tipo de
dato, rangos, por caracteres en cadenas e incluso correos electrónicos, que son
bastante comunes en la tarea cotidiana del programador web.
Estos son los pasos que se deben seguir para un escenario ideal al momento de utilizar
form validations en CodeIgniter:
1. Se muestra un formulario.
2. El usuario completa los datos y los envía.
3. Si el envío tiene algo inválido, o falta algo que sea obligatorio, el formulario se
muestra nuevamente con los datos que el usuario completó junto con un
mensaje de error que describe el problema.
4. Este proceso continua hasta que se envíe un formulario válido.
En el receptor, el script debe:
1. Verificar los datos obligatorios.
54
2. Verificar que los datos son del tipo correcto y coinciden con el criterio correcto.
3. Por seguridad, descontaminar los datos.
4. Pre formatear los datos si es necesario (¿Se necesita recortar espacios al inicio
o final? ¿Codificación HTML? Etc.)
5. Preparar los datos para insertarlos en la base de datos.
6. Aunque el proceso anterior no es terriblemente complejo, normalmente requiere
de una cantidad significativa de código, mostrar mensajes de error.
Normalmente varias estructuras de control se colocan dentro del formulario
HTML. La validación de formularios, aunque es simple de crear, generalmente
es muy tediosa y enmarañada de implementar
Tabla 13. Ventajas y desventajas de responsive
VENTAJAS DESVENTAJAS
Mantenimiento y actualizaciones: Al
tener un único diseño, aparte de ahorrar
en costes y tiempo de mantenimiento y
actualización, los usuarios dispondrán del
mismo contenido al visitar la página.
Contenido no optimatizado: No
permite discriminar los contenidos
que se muestran, aparte de esto los
clientes no tienen por qué querer
experimentar la misma experiencia
en todos los dispositivos.
Mejora en usabilidad: La mejoría
respecto a las webs no adaptable es
notable ya que los botones se adaptan y
redimensionan para el uso táctil
disponiéndose de una lectura más
cómoda y adecuada.
Carga lenta: Todas las imágenes y
textos deben de cargarse de una sola
vez, la web soporta más peso y
puede combatirlo.
Alternativa más económica: Tiene un
coste mucho menor que el que tienen que
soportar a los otros formatos. Por lo tanto
Tiempo de desarrollo: La dificultad
técnica y la no estandarización en
términos de programación hace que
la adaptación sea lenta y laboriosa,
55
VENTAJAS DESVENTAJAS
es recomendable para nuevos proyectos y
presupuesto limitados.
para muchos proyectos, se
recomienda el uso de plantillas web
responsive design, ya que evitan este
tipo de labores y reduce costes.
Mejora el posicionamiento Web (SEO):
Mejora clara en SEO al poseer una única
URL para todo el dominio, Ayudando
también a una más sencilla recopilación
de datos estadísticos sobre la evolución
del sitio web.
Dificultades Técnicas: Como
barrera de entrada aún no hay
muchos expertos que dominen este
desarrollo completamente.
Fácil de mantener: esto se da cuando
solo tenemos una sola versión del diseño
en lugar de varias versiones diferentes
según el tipo de dispositivo.
Navegadores: En los navegadores
antiguos no funciona, como siempre
el principal problema el internet
explorer.
Fuente: Elaboración propia
4.2 Descripción y análisis evaluativo de la situación investigada
El presente apartado permite conocer los resultados que se obtienen de la recopilación
de la información a través de los instrumentos de recolección de datos, los cuales son:
Cuadro comparativo de lenguajes de programación, cuadro comparativo de bases de
datos, lista de chequeo de requerimientos funcionales, lista de chequeo de
requerimientos no funcionales y cuadro resumen.
Una vez administrados los instrumentos y definidos en el capítulo de la metodología
de la investigación, se exponen los resultados en función de las variables que se
describen a continuación:
Variable 1. Lenguaje de programación
Variable 2. Bases de datos
56
Variable 3. Requerimientos funcionales/no funcionales, en función de la
estructura del software
Variable 4. Requerimientos funcionales/no funcionales, en función de la
documentación proporcionada por la institución DIGESTYC.
Variable Nº 1. Lenguaje de programación
Para la medición de la variable se elaboró un instrumento que permitiera resumir los
principales características y el mecanismo de funcionamiento de cada uno de los
lenguajes de programación para poder determinar con que lenguaje se trabajara para
la respectiva construcción del software, en este caso se usara PHP.
Analizado el instrumento del cuadro comparativo de lenguajes de programación PHP
resalta de los demás debido a sus tiempos de respuesta que son en precisión de
microsegundos, su tiempo de ejecución de 198 microsegundos, y su tiempo de
compilación de 1,267 microsegundo a diferencia de los demás los demás lenguajes
analizados que sus tiempos son más elevados a la hora del funcionamiento del código.
Entre algunas ventajas que sobresalen de los demás se tienen su bajo costo que es
un elemento importante a la hora de decidir con que se trabajara para reducir gastos,
la parte de la rapidez y es un lenguaje multiplataforma.
PHP también conllevan una gran ventaja a la hora de su implementación en un
ambiente de trabajo puesto que el servidor (Apache) que por excelencia que soporta
este lenguaje también es de bajo costo.
Variable Nº 2. Base de datos.
Para la medición de la variable de base de datos se elaboró un instrumento que
permitiera resumir las principales características y el mecanismo de funcionamiento de
cada uno de los gestores de base de datos para poder determinar con que gestor se
trabajara para la respectiva construcción del software, en este caso se usara MYSQL.
Analizado el cuadro comparativo de las bases de datos MYSQL, debido principalmente
su costo que para pequeñas y medianas empresas. El precio para adquirir MySQL
ronda de $500 a $5,000, a diferencia de ORACLE que su edición estándar ronda los
57
$15,000 y la versión empresarial ronda los $40,000, entre los otros gestores de base
de datos que se tomaron en cuenta PostgreSL y SQLServer que sus costos varían a
comparación de ORACLE y MYSQL.
Mysql es una herramienta de base de datos utilizada por la gran mayoría de empresas
y personas para sus negocios, por su bajo costo, entre otros factores que se
consideraron fueron la portabilidad, las respectivas actualizaciones que permiten una
mejor compatibilidad con el lenguaje de programación a utilizar y sus costos.
Variable Nº 3. Requerimientos funcionales/no funcionales, en función de la
estructura del software
Para la medición de dicha variable se elaboraron diversas listas de chequeo para cada
una de las herramientas de análisis de información o datos entre los cuales se
evaluaron SQL Server Analysis Services, Oracle Advanced Analytics, Rapidminer y
Excel. Esta lista de chequeo permitirá resumir los requerimientos funcionales y no
funcionales para todas las herramientas antes mencionadas y el mecanismo de
funcionamiento de cada una de ellas y aplicar a nuestro software la que mayor rinda
en este caso se usara SQL Server Analysis Services
Una vez corroborado y analizadas las listas de chequeo, la herramienta que mayor nos
rendirá para aplicarla al sistema de información es SQL Server Analysis Services
debido a que ofrece funciones de procesamiento analítico en línea (OLAP) y minería
de datos para aplicaciones de Business Intelligence. Además Analysis Services admite
OLAP y permite diseñar, crear y administrar estructuras multidimensionales que
contengan datos agregados desde otros orígenes de datos, como bases de datos
relacionales. En las listas de chequeo se evaluaron factores como los siguientes:
compatibilidad, Mantenimiento, tiempos, presupuesto y modos de ejecución, estos
elementos corresponden a los requerimientos funcionales.
Dentro de los requerimientos no funcionales para cada una de las herramientas se
evaluaron los siguientes: Soporte de varios idiomas y actualizaciones constantes.
58
De manera que SQL Server Analysis Services encaja muy bien al sistema de
información que se elaborara debido a la compatibilidad y a sus tiempos que son
rápidos a la hora de obtener los resultados por parte de los usuarios finales, a
diferencia de las otras herramientas que se evaluaron.
Variable Nº 4. Requerimientos funcionales/no funcionales, en función de la
Documentación proporcionada por la DIGESTYC.
Para finalizar con la parte de las interpretaciones de los instrumentos, se tiene un
último el cual hace referencia a la unidad de análisis “documentación proporcionada
por la DIGESTYC, donde se evaluaron e identificaron también algunos requerimientos
funcionales. El software va orientado hacia las pymes del municipio de san salvador
debido a que tiene mayor participación económica y están ubicadas la mayor cantidad
de empresas a diferencia de los otros departamentos y municipios, El software tendrá
al sector comercio del municipio de San Salvador como principal fuente de información,
ya que con un 59.36% es el municipio con mayor representación de este sector.
59
CAPÍTULO 5
60
Conclusiones y recomendaciones.
Conclusiones
Actualmente una de las mayores preocupaciones de las empresas es la constante
toma de decisiones que les permitan poder optimizar sus resultados y de esta forma
obtener un mayor beneficio.
Al terminar la investigación para el “DISEÑO DE UNA HERRAMIENTA DE APOYO A
LA TOMA DE DECISIONES BASADA EN ANÁLISIS DE DATOS HISTÓRICOS PARA
LAS PYMES DEL SECTOR COMERCIO DEL MUNICIPIO DE SAN SALVADOR” se
concluye lo siguiente:
Con la implementación de esta herramienta de software las pequeñas y
medianas empresas del sector comercio del municipio de San Salvador podrán
realizar diversas tareas del día a día dentro de las organizaciones entre las
cuales se tienen: Proyecciones de ventas, pronósticos de ventas, realizar
comparaciones anuales de ventas, compras, facturaciones.
El desarrollo de esta herramienta de software hará que la toma de decisiones
para las pequeñas y medianas empresas del sector comercio del municipio de
San Salvador sea un proceso más eficiente y de buenos resultados para
obtener un mejor rendimiento para las organización.
Las pequeñas y medianas empresas que usen dicha herramienta de software
tendrán beneficios como la seguridad de la información de la empresa, ya que
hoy en día es muy importante porque se considera un activo muy valioso en
todas las organizaciones.
La herramienta del software diseñada, forma parte de las estrategias de
crecimiento y desarrollo que tienen las pymes, ya que ayuda a optimizar
recursos y facilita las labores diarias, esto hace más eficiente el rendimiento de
las organizaciones y por ende se tengan mejores resultados.
61
Recomendaciones
Al finalizar la investigación sobre “DISEÑO DE UNA HERRAMIENTA DE APOYO A LA
TOMA DE DECISIONES BASADA EN ANÁLISIS DE DATOS HISTÓRICOS PARA
LAS PYMES DEL SECTOR COMERCIO DEL MUNICIPIO DE SAN SALVADOR”, se
recomienda lo siguiente:
Al momento de desarrollar una herramienta de software que ayude a mejorar la
toma de decisiones es importante tener un conocimiento con respecto a las
diversas tecnologías de negocio, esto con el fin de tener un mayor criterio a la
hora del desarrollo del proyecto, para poder adecuar y abarcar todas esas
necesidades que tienen las organizaciones en el día a día.
Es importante que las pequeñas y medianas empresas utilicen una herramienta
de software porque esto les permitirá tener un plus y sobresalir en comparación
con otras organizaciones que no tengan implementada ninguna tecnología, ya
que hoy en día el poder contar con una herramienta de ese tipo es fundamental,
porque forman parte de las estrategias de crecimiento y desarrollo de las
PYMES.
Debe de tomarse en cuenta el implementar la herramienta del software ya que
uno de los beneficios que se obtiene es una mejor seguridad para la data de la
empresa, que viene siendo la propia información que hoy en día es un
importante activo que debe de ser prioridad en todas las organizaciones.
Se recomienda la utilización de la herramienta de software para las pequeñas y
medianas empresas del sector comercio del municipio de San Salvador para
hacer más eficiente y así poder optar por una mejor toma de decisiones y a la
vez mejorar el rendimiento de dichas organizaciones.
62
CAPÍTULO 6
63
Propuesta
Antes de comenzar con la propuesta vale aclarar que esta será desarrollada haciendo
uso de la metodología SCRUM puesto que se han analizado las siguientes variables:
Equipo de trabajo. El equipo de trabajo no superar los 8 miembros es decir es
ideal para mantener una comunicación fluida y bidireccional del desarrollo del
sistema o software.
Riesgos de cambios durante el proceso. Dado que las entregas de avances se
programan en periodos cortos de tiempos estos dan la flexibilidad de estar
abiertos a cambios durante el proceso afectando en muy poca medida el avance
de las siguientes tareas.
Necesidad de entregas rápidas. Dada la naturaleza del proyecto es necesario e
indispensable las entregas en cortos lapsos de tiempo para poder mayor control
sobre el proyecto.
6.1 Fase de inicio
6.1.1 Planteamiento
6.1.2 Visión del producto
El producto que se desarrolla, se hará en base a los criterios presentados en los
capítulos anteriores, la herramienta que se pretende diseñar tiene como finalidad ser
de bajo costo, responder de forma rápida y oportuna a las necesidades de los
gerentes, analistas, administradores, técnicos y demás usuarios que hagan uso de
ella, además de funcionar en múltiples plataformas (es decir en diferentes sistemas
operativos), debe de ser amigable, de fácil uso para el usuario, disponer de una interfaz
que se pueda acoplar a los diferentes dispositivos en los que se ejecute (PC´S, Tablet,
Laptops, Smart Phone) y tener un alto grado de disponibilidad.
64
6.1.3 Historias de usuarios
Las historias de usuarios son una ventaja sobre los requisitos funcionales del Lenguaje
Unificado de Modelado (UML – Unified Modeling Language), se describen en gran
medida las diferentes situaciones que se pueden presentar en el entorno de los
usuarios finales, todo esto para dar un buen funcionamiento, por dicha razón se utiliza
este lenguaje de modelado (UML), ya que esto es indispensable para la construcción
de la herramienta del software.
En el desarrollo de las historias de usuario se aclara que el equipo desarrollador tomo
en cuenta y se hizo un respectivo análisis del capítulo IV que corresponde a todo el
análisis de los resultados e interpretación de los instrumentos de medición y en razón
de ello conoce los requerimientos que son establecidos por dichos resultados finales
y es por esto que el equipo de desarrollo del software establece cada historia de
usuario.
Para dicha presentación de las historias de usuarios es de mucha importancia aclarar
lo siguiente: riesgo de desarrollo es aquel evento cuya probabilidad de ocurrencia es
incierta, si en algún dado caso se llega aparecer tiene un efecto positivo o negativo del
desarrollo de la herramienta del software. Es decir un riesgo bajo existe cuando la
probabilidad de ocurrencia tiene un menor impacto en el desarrollo del software,
mientras que el riesgo alto ya tiende a tener unas consecuencias más graves a la hora
de estar desarrollando la herramienta del software.
65
Tabla 14. Historia de usuario. Mantenimiento del software
Historia de Usuario
Número: 1 Usuario: Equipo desarrollador
Nombre historia: Mantenimiento del software
Prioridad en negocio:
Alta
Riesgo en desarrollo:
Bajo
Iteración asignada:
2
Programador responsable: Andrés Portillo
Descripción:
El mantenimiento del software se hace al momento de la explotación de dicha
herramienta para localizar fallos y así ejecutar las respectivas medidas para dar solución
a esos errores. La fase de mantenimiento de software involucra cambios al software en
orden de corregir defectos y dependencias encontradas durante su uso tanto como la
adición de nueva funcionalidad para mejorar la usabilidad y aplicabilidad del software.
Validación:
El usuario podrá agregar, modificar y eliminarlo si así lo desea cualquier actividad o tarea
asignada.
Fuente: Elaboración propia
Tabla 15. Historia de usuario. Seguridad del software
Historia de Usuario
Número: 2 Usuario: Equipo desarrollador
Nombre historia: Seguridad del software
Prioridad en negocio:
Alta
Riesgo en desarrollo:
Alta
Iteración asignada:
2
Programador responsable: Andrés Portillo; Ricardo Ayala
Descripción: La seguridad de los software es de alta prioridad para los usuarios, y es
mayor si contempla información delicada de la empresa, tal como historial de ventas,
historial de compras, historial de clientes, etc.
Validación: El usuario podrá únicamente ingresar al software si se autentica con
credenciales válidas.
Fuente: Elaboración propia
66
Tabla 16. Historia de usuario. Diseño Responsive
Historia de Usuario
Número: 3 Usuario: Equipo desarrollador
Nombre historia: Diseño Responsive
Prioridad en negocio:
Alta
Riesgo en desarrollo:
Bajo
Iteración asignada:
2
Programador responsable: Andrés Portillo
Descripción: El diseño responisve o diseño adaptivo es utilizado en los sistema que
funcionaran en multi-dispositivos es decir que mantendrá su diseño independiente mente
de la resolución a la que se deba de ajustar ya sea que se ejecute en un portátil, una
Tablet o un teléfono inteligente.
Validación: El usuario podrá escoger, accederá y trabajara la herramienta en una PC,
Tablet, smat pone, etc.
Fuente: Elaboración propia
Tabla 17. Historia de usuario. Actualizaciones para la herramienta del software
Historia de Usuario
Número: 4 Usuario: Equipo desarrollador
Nombre historia: Actualizaciones para la herramienta del software.
Prioridad en negocio:
Alta
Riesgo en desarrollo:
Bajo
Iteración asignada:
6
Programador responsable: Andrés Portillo
Descripción: La parte de las actualizaciones es de mucha importancia al momento de
poner en marcha la herramienta todo eso con el fin de obtener un buen funcionamiento
del software y evitar cualquier error al momento de ejecutarse.
Validación: Para este software el código estará abierto para que posteriormente si las
empresas desean modificar o agregar cualquier elemento lo hagan si así se desea en su
momento, las actualizaciones podrán realizase de forma manual o automática.
Fuente: Elaboración propia
67
Tabla 18. Historia de usuario. Plataforma
Historia de Usuario
Número: 5 Usuario: Equipo desarrollador
Nombre historia: Plataforma.
Prioridad en negocio:
Alta
Riesgo en desarrollo:
Bajo
Iteración asignada:
6
Programador responsable: Ricardo Ayala
Descripción: Analizado los requerimientos en el capítulo número 3 de la metodología de
la investigación se ha definido que la herramienta del software estará disponible en un
servidor web (apache), del cual se podrá acceder desde cualquier navegador,
convirtiendo al software en una herramienta multi - plataforma .
Validación: El usuario podrá trabajar con la herramienta desde cualquier sistema
operativo.
Fuente: Elaboración propia
Tabla 19. Historia de usuario. Manejo de tiempos
Historia de Usuario
Número: 6 Usuario: Equipo desarrollador
Nombre historia: Manejo de tiempos
Prioridad en negocio:
Alta
Riesgo en desarrollo:
Alto
Iteración asignada:
6
Programador responsable: Ricardo Ayala
Descripción: Con respecto a esta historia de usuario manejo de tiempos estos consisten
en el tiempo de respuesta de las operaciones necesarios en el día a día, transferencia
de datos, procesamiento de información.
Validación: El usuario podrá realizar todas las tareas o funciones en el sistema, los
tiempos de respuesta que se pueda tener por cada una de las tareas asignadas, tendrán
un lapso breve de espera.
Fuente: Elaboración propia
68
Tabla 20. Historia de usuario. Captura de Variables
Historia de Usuario
Número: 7 Usuario: Equipo desarrollador
Nombre historia: Captura de Variables
Prioridad en negocio:
Alta
Riesgo en desarrollo:
Alto
Iteración asignada:
2
Programador responsable: Ricardo Ayala
Descripción: En la captura de variables se pretende que el usuario pueda capturar las
tablas y campos con los que desea general la tabla dinámica, en esta interfaz se
presentaran los datos de las tablas y campos con los que el usuario podrá posteriormente
generar una tabla dinámica.
Validación: El usuario podrá seleccionar cualquier campo que exista dentro de la base
de datos para colocarlo según su conveniencia dentro de una de los ejes (x, y) o bien
como valor resultante.
Fuente: Elaboración propia
Tabla 21. Historia de usuario. Tabla Dinámica
Historia de Usuario
Número: 8 Usuario: Equipo desarrollador
Nombre historia: Tabla Dinámica
Prioridad en negocio:
Alta
Riesgo en desarrollo:
Bajo
Iteración asignada:
2
Programador responsable: Ricardo Ayala
Descripción: Posterior a la captura de variables el usuario podrá generar una tabla
dinámica, la cual mostrara la información que el usuario solicite en base a la información
guardada en la base de datos a través del tiempo.
Validación: Se presentara la información solicitada en un treegrid en el cual el usuario
podrá hacer uso de la información que necesite de forma rápida y oportuna.
Fuente: Elaboración propia
69
Tabla 22. Historia de usuario. Gráficos Dinámicos
Historia de Usuario
Número: 9 Usuario: Equipo desarrollador
Nombre historia: Gráficos Dinámicos
Prioridad en negocio:
Alta
Riesgo en desarrollo:
Bajo
Iteración asignada:
2
Programador responsable: Javier Gómez
Descripción: Generada la tabla dinámica el usuario dispondrá de visualizar la
información en gráficos para su mejor comprensión.
Validación: El usuario dispondrá de gráficos de barra, pastel y dispersión para la mejor
compresión de la información proporcionada por la tabla dinámica.
Fuente: Elaboración propia
Tabla 23. Historia de usuario. Pruebas para el software
Historia de Usuario
Número: 10 Usuario: Equipo desarrollador
Nombre historia: Pruebas para el software
Prioridad en negocio:
Alta
Riesgo en desarrollo:
Bajo
Iteración asignada:
2
Programador responsable: Javier Gómez
Descripción: Las pruebas de software son una serie de actividades que se realizan con
el propósito de encontrar los posibles fallos de implementación, calidad o usabilidad de
un programa, probando el comportamiento del mismo.
Validación: N/A
Fuente: Elaboración propia
70
6.1.4 Product Backlog
Con base a las historias de usuarios antes descritas, el product backlog es el conjunto
de requerimientos funcionales y no funcionales, que debe cumplir el producto una vez
entregado. No se requiere que esté completo al momento de su creación, basta con
definir aquellos requisitos que se conozcan en su momento y alentar a su crecimiento
continuo o su modificación. A continuación se establecen los requerimientos:
Tabla 24. Product Backlog
Nro Descripción Responsable
1 Mantenimiento del software Andrés Portillo
2 Seguridad del software Andrés Portillo; Ricardo Ayala
3 Diseño Responsive Andrés Portillo
4 Actualizaciones para la herramienta del software Andrés Portillo
5 Plataforma. Ricardo Ayala
6 Manejo de tiempos Ricardo Ayala
7 Captura de Variables Ricardo Ayala
8 Tabla Dinámica Ricardo Ayala
9 Gráficos Dinámicos Ricardo Ayala
10 Pruebas para el software Javier Gómez
Fuente: Elaboración propia
6.1.5 Prioridades del product backlog
La estimación de prioridades de los requerimientos especificados en las historias de
usuarios se realizó utilizando la técnica de Planning Poker (para disponer de la
estimación de tiempo requerido). Y en consenso con el equipo de trabajo para
establecer la importancia de cada requerimiento. A continuación se muestra en la
siguiente tabla las prioridades enumeradas del 1 al 5, donde 1 no es muy importante,
2 poco importante, 3 importante, 4 muy Importante, 5 de extrema importancia.
71
Tabla 25. Prioridades product backlog
Nro Descripción Prioridad
1 Mantenimiento del software 3
2 Seguridad del software 5
3 Diseño Responsive 4
4 Actualizaciones para la herramienta del software 3
5 Plataforma. 4
6 Manejo de tiempos 3
7 Captura de Variables 4
8 Tabla Dinámica 5
9 Gráficos Dinámicos 4
10 Pruebas para el software 3
Fuente: Elaboración propia
6.1.6 Establecimiento del equipo de trabajo.
En SCRUM, el equipo se focaliza en construir software de calidad. La gestión de un
proyecto SCRUM se centra en definir cuáles son las características que debe tener el
producto a construir (qué construir, qué no y en qué orden) y en vencer cualquier
obstáculo que pudiera entorpecer la tarea del equipo de desarrollo. Los equipos
SCRUM entregan productos de forma iterativa e incremental, maximizando las
oportunidades de obtener retroalimentación. Las entregas incrementales de producto
“Terminado” aseguran que siempre estará disponible una versión potencialmente útil
y funcional del producto.
72
Tabla 26. Scrum team
SCRUM TEAM (Equipo SCRUM)
Rol Responsable
Product Owner (Propietario del Producto)
Universidad Dr. José Matías Delgado
SCRUM Master Ing. Iván Alvarado
Development Team (Equipo de desarrollo)
Andrés Portillo
Ricardo Ayala
Javier Gómez
Fuente: Elaboración propia
6.1.7 Definición de fechas de entrega por cada requerimiento del product
Backlog
Al haber establecido el equipo de trabajo y las prioridades del product backlog, se
procede a la definición de entregas por cada requerimiento, en el entendido que es
conveniente que las entregas totales o parciales de cada requerimiento, se realicen
durante el periodo requerido, para cumplir con los objetivos/requisitos del proyecto.
Tabla 27. Fechas de entrega
Nro. Requerimiento Duración Fecha de
inicio Fecha de
finalización
1 Mantenimiento del software 2 20/08/2015 21/08/2015
2 Seguridad del software 5 24/08/2015 29/08/2015
3 Diseño Responsive 2 17/08/2015 18/08/2015
4 Actualizaciones para la herramienta del software
2 17/08/2015 18/08/2015
5 Plataforma. 2 17/08/2015 18/08/2015
6 Manejo de tiempos
7 Captura de Variables 22 01/09/2015 23/09/2015
73
8 Tabla Dinámica 36 24/09/2015 31/10/2015
9 Gráficos Dinámicos 40 02/11/2015 10/12/2015
10 Pruebas para el software
Fuente: Elaboración propia
6.2 Fase de desarrollo
6.2.1 Definición del sprint.
El sprint en un proyecto de tipo ágil, es llanamente hablando un listado de las tareas
que se elabora como plan para completar los objetivos plasmados en el “Product
Backlog”, a continuación se detalla el sprint de la iteración para la herramienta de
apoyo a la toma de decisiones basada en análisis de datos históricos.
Mantenimiento del software:
En la administración del proyecto se crean los elementos que facilitaran la
utilización de la herramienta software tales como;
o Navegación (menú).
o Manejo de usuarios.
o Estandarización de pantallas y formularios
Seguridad del software:
El aspecto de seguridad en cualquier sistema informático es de alta prioridad
pero se vuelve crítico cuando se manejan datos sensibles de la empresa, datos
que tienen relación a los estados financieros de las empresas tales como
historiales de compras, ventas, catálogo de clientes, etc. Si bien el aspecto de
seguridad no es visible para el usuario es indispensable que exista para dar
certeza de la confidencialidad de la información.
o Encriptación de claves utilizando metodología MD5
o Integración de “Clase Form Validation” de codeigniter para validación de
formularios del sistema.
Diseño Responsive:
El diseño responisve o diseño adaptivo es utilizado en los sistema que
74
funcionaran en multi-dispositivos es decir que mantendrá su diseño
independiente mente de la resolución a la que se deba de ajustar ya sea que se
ejecute en un portátil, una Tablet o un teléfono inteligente.
o Se incorpora el uso del Framework Bootstrap para las pantallas o vistas
de la aplicación.
Formularios.
Controles.
Navegación.
Grid o tablas.
Actualizaciones para la herramienta del software:
Con el fin de entregar una herramienta que sea de utilidad para los usuarios al
pasar el tiempo se toma la decisión de trabajar bajo un esquema de código
abierto es decir; que la aplicación podrá ser modificada por los usuarios
expertos que hagan uso de ella garantizando así la reducción de errores en su
ejecución y la depuración de bugs.
o Se distribuye el software bajo libre licencia.
o Se distribuye el software con su código fuente.
o Se entrega el fuente con todos los elementos que se utilizaron para su
elaboración (Codeginiter y Boostrap)
Plataforma: Uno de los aspectos más importantes es el manejo del software
bajo cualquier plataforma o sistema operativo, es decir, que el software pueda
ejecutarse tanto en una SO Windows como en una Linux o bien Mac, por tal
motivo es que se hará uso de tecnología web para garantizar la disponibilidad
de la aplicación en cualquier plataforma.
o Servidor web Apache Toncat
o Lenguaje de programación php 5
o Frameworks Codeigniter, Boostrap
Manejo de tiempos:
Consiste en el tiempo de respuesta de las operaciones necesarias en el día a
día, transferencia de datos, procesamiento de información, para cumplir con
75
esta tarea se emplea el uso de MVC, para reportar tiempos óptimos en la
aplicación.
Captura de Variables:
Proceso en el cual los usuarios ingresaran los criterios para el procesamiento y
construcción de la tabla dinámica, en este apartado los usuarios deberán
ingresar las variables con las cuales deberá trabajar la tabla dinámica para
mostrar la información requerida.
o Construcción de listado de tablas (cargara todas las tablas de la base
de datos)
o Construcción de listado de campos (cargara todos los campos de la tabla
seleccionada)
o Selección de operación, el usuario deberá seleccionar la operación que
desea realizar es decir si desea sacar promedios, o sumatorias de las
variables seleccionadas.
o Construcción del área de filas, el usuario deberá colocar el campo que
hará la función de fila para la tabla dinámica.
o Construcción del área de columnas, el usuario deberá colocar el campo
que hará la función de columna para la tabla dinámica.
o Construcción del área de valores, el usuario deberá colocar el campo que
procesara como valor dentro de la tabla dinámica.
Tabla Dinámica:
En este apartado se contempla el procesamiento de las variables, para crear la
tabla dinámica a partir de un procedimiento almacenado, el cual procesara los
datos que sean requeridos por el usuario.
o Generar el llamado a el formulario de la tabla dinámica
o Generar la barra de progreso que indicara al usuario que se está
procesando la información.
o Construir el procedimiento almacenado que procesara las variables de
selección.
o Pasar las variables de selección al procedimiento almacenado
76
o Construir el grid o tabla dinámica que presentara la información
procesada por el SP
Gráficos Dinámicos: En esta sección el usuario tendrá la posibilidad de
generar gráficos a partir del resultado en la tabla dinámica, podrá elegir entre
un gráfico de barra, pastel y dispersión.
o Creación de la opción del gráfico de barra.
o Creación de la opción del gráfico de pastel.
o Creación de la opción del gráfico de dispersión.
6.2.2 Construcción de la pila del sprint a partir de los requerimientos del
product backlog
En el cuadro siguiente se registran los requisitos detallados en el desarrollo de la
herramienta que va a construir el equipo desarrollador para cada sprint, en el cual se
indican las fechas de inicio y finalización de las tareas por cada elemento del product
backlog. Vale aclarar que las tareas detalladas del sprint, se presentan de acuerdo a
la metodología de trabajo MVC, con la cual se pretende desarrollar el sistema teniendo
en cuenta como parte de la pila, las tareas de configuración e instalación del entorno
de trabajo.
Tabla 28. Requerimientos del product backlog
Elemento del Product
Backlog Tarea del sprint
Fecha
Inicial Fecha Final
Preparación de entorno
de trabajo LAMP
Instalación de servidor web Apache 17/08/2015 17/08/2015
Instalación de Base de datos MySQL 17/08/2015 17/08/2015
Instalación de PHP 5 17/08/2015 17/08/2015
Configuración de base de datos MySQL 17/08/2015 17/08/2015
Instalación y
configuración de
Codeigniter y Boostrap
Instalación de codeigniter en la raiz del
fichero var/www/html 18/08/2015 18/08/2015
Configuración del archivo autoload.php 18/08/2015 18/08/2015
Configuración del archivo config.php 18/08/2015 18/08/2015
77
Elemento del Product
Backlog Tarea del sprint
Fecha
Inicial Fecha Final
Configuración del archivo database.php 18/08/2015 18/08/2015
Configuración del archivo routes.php 18/08/2015 18/08/2015
Instalación de archivos CSS boostrap 18/08/2015 18/08/2015
Instalación de archivos CSS boostrap.min 18/08/2015 18/08/2015
Mantenimientos de la
aplicación
Vista (header_view.php) 20/08/2015 21/08/2015
Vista (footer_view.php) 20/08/2015 21/08/2015
Creación del elemento la barra de
navegación (navegacion_class.php) 20/08/2015 21/08/2015
Seguridad del software
Modelo (Login_model.php) 24/08/2015 24/08/2015
Creación y configuración del controlador
(Login.php) 24/08/2015 24/08/2015
Vista (Login_view.php) 24/08/2015 24/08/2015
Configuración de sesiones y validaciones
de usuarios utilizando MD5 25/08/2015 27/08/2015
Configuración de la clase (Form
Validation) 28/08/2015 29/08/2015
Página de bienvenida Controlador (Home.php) 31/08/2015 31/08/2015
Vista (Home_view.php) 31/08/2015 31/08/2015
Captura de variables
Modelo (Esquema_model.php),
encargado de obtener el listado de tablas
y columnas de la base de datos.
01/09/2015 01/09/2015
Controlador (Esquema.php) encargado de
procesar los objetos que regresa el
modelo (Esquema_model.php),
posteriormente retornara los objetos con
los que trabajara la vista
02/09/2015 07/09/2015
Vista (Esquema_view) Mostrar el listado
de tablas en un control de selección
múltiple
08/09/2015 11/09/2015
78
Elemento del Product
Backlog Tarea del sprint
Fecha
Inicial Fecha Final
Vista (Esquema_view) Mostrar el listado
de campos filtrados por el control de
selección del "listado de tablas" utilizando
JavaScript
14/09/2015 16/09/2015
Vista (Esquema_view) Mostrar el listado
de operaciones a realizar en la tabla
dinámica.
16/09/2015 17/09/2015
Vista (Esquema_view) construcción de
área de filas utilizando drag and drop. 18/09/2015 21/09/2015
Vista (Esquema_view) construcción de
área de columnas utilizando drag and
drop.
22/09/2015 22/09/2015
Vista (Esquema_view) construcción de
área de valores utilizando drag and drop. 23/09/2015 23/09/2015
Tabla Dinámica
Generar llamado de controlador
(Cubo.php) 24/09/2015 30/09/2015
Construcción del elemento barra de
progreso (progres_bar_class.php) 01/10/2015 03/10/2015
Modelo (Cubo_model.php) contendrá
procedimiento almacenado de la tabla
dinámica y obtendrá las variables del
controlador (Cubo.php)
05/10/2015 08/10/2015
Controlador (Cubo) contendrá los objetos
que genere el modelo (Cubo_meodel) y
prepara los valores que se mostraran en
la vista.
09/10/2015 16/10/2015
Vista (Cubo_view) contendrá el tree-grid o
tabla dinámica que mostrara los datos
procesado por el procedimiento
almacenado
19/10/2015 31/10/2015
79
Elemento del Product
Backlog Tarea del sprint
Fecha
Inicial Fecha Final
Gráficos Dinámicos
Construcción de la clase Modal (pop up) 02/11/2015 07/11/2015
Construcción de la clase bar charts 09/11/2015 12/11/2015
Construcción de la clase circle charts 13/11/2015 18/11/2015
Construcción de la clase dispert charts 19/11/2015 23/11/2015
Construcción del control gráfico de Barra 24/11/2015 27/11/2015
Construcción del control gráfico de pastel 30/11/2015 03/12/2015
Construcción del control gráfico de
dispersión 04/12/2015 10/12/2015
Fuente: Elaboración propia
6.2.3 Desarrollo de cada sprint
6.2.3.1 Planeamiento del sprint
Según la metodología SCRUM un sprint dura aproximadamente entre una semana y
treinta días, por lo que observando el apartado 6.2.2, puede notarse que muchas de
las tareas descritas no cumplen con dicho requisito; razón por la cual el equipo propone
agrupar los elementos del Product Backlog y explicar la importancia de las tareas
establecidas.
80
Tabla 29. Preparación del entorno de trabajo LAMP
PRODUCTO 1 PREPARACION DEL ENTORNO DE TRABAJO LAMP
N° ELEMENTO DEL PRODUCT BACKLOG/TAREA DEL SPRINT
1
Instalación de servidor web Apache: En base a los requerimientos no funcionales en
donde se establece que el software podrá ser utilizado en múltiples plataformas se
presenta como solución a este requerimiento utilizar tecnología web para que el
usuario pueda desde un navegador acceder al sistema, no importando la plataforma
de trabajo de este, sea Microsoft, Linux o Mac
2
Instalación de Base de datos MySQL: Es la base de datos que se aplicara al software
a desarrollar debido principalmente su costo que para pequeñas y medianas
empresas, este criterio se obtiene de los resultados arrojados por la investigación y
diagnostico (Capitulo 4)
3
Instalación de PHP 5: Dados los resultados en el cuadro comparativo de la variable
de medición (Lenguaje de programación del capítulo 4) se establece que debido a su
costo, tiempos de ejecución, tiempo de compilación y tiempo de respuesta el lenguaje
a utilizar en el presente desarrollo será php utilizando la versión más reciente de este
lenguaje de programación.
4
Configuración de base de datos MySQL: En la configuración de la base de datos se
establecen los elementos necesarios para lograr establecer las conexiones
necesarias con el software a construir, tal es el caso de la contraseña del usuario
(sa).
Fuente: Elaboración propia
81
Tabla 30. Instalación y configuración de codeigniter boostrap
PRODUCTO 2 INSTALACION Y CONFIGURACION DE CODEIGNITER BOOSTRAP
N° ELEMENTO DEL PRODUCT BACKLOG/TAREA DEL SPRINT
1
Instalación de codeigniter: Después de descargar el framework es necesario instalar
los ficheros en la raíz del servidor web apache cuya locación por default es
"var/www/html".
2
Configuración del archivo autoload.php: Posterior a la instalación del framework
Codeigniter es necesario configurar los helper o clases que se cargaran por default
en la aplicación, tal es el caso del conector de MySQL, el herlper de formularios, etc.
3 Configuración del archivo config.php: En este fichero se establece configuraciones
tales como el uso de estandarización de caracteres (utf_8), entre otros.
4
Configuración del archivo database.php: Este fichero es el encargado de asignar las
variables de conexión a la base de datos tales como usuario, contraseña, servidor,
entre otros
5
Configuración del archivo routes.php: El fichero routes permite establecer servidores
y dominios virtuales, en caso de que el archivo raíz cambie únicamente es necesario
editar este archivo para arreglar las direcciones a las que apunta la interfaz.
6 Instalación de archivos CSS boostrap: Con los archivos css de boostrap se logra
cumplir con el requerimiento Responsive de la aplicación.
7
Instalación de archivos CSS boostrap.min: Este archivo es necesario para
estandarizar el uso de la boostra en cualquier navegador independientemente de que
este sea móvil o no.
Fuente: Elaboración propia
82
Tabla 31. Mantenimientos de la aplicación
PRODUCTO 3 MANTENIMIENTOS DE LA APLICACIÓN
N° ELEMENTO DEL PRODUCT BACKLOG/TAREA DEL SPRINT
1 Vista (Header_view.php): En este archivo de tipo vista contiene el encabezado que
todos los formularios del software utilizaran.
2 Vista (footer_view.php) En este archivo de tipo vista contiene el pie que todos los
formularios del software utilizaran.
3
Creación del elemento la barra de navegación (navegacion_class.php): Clase que
permitirá al usuario navegar entre cada uno de los formularios del software, el archivo
(Header_vier.php) realiza el llamado de esta clase
Fuente: Elaboración propia
Tabla 32. Seguridad de la aplicación
PRODUCTO 4 SEGURIDAD DE LA APLICACIÓN
N° ELEMENTO DEL PRODUCT BACKLOG/TAREA DEL SPRINT
1 Modelo (Login_model.php): realiza el llamado a la tabla de usuarios para obtener el
usuario y contraseña que obtendrá del controlador
2
Creación y configuración del controlador (Login.php): Obtentora las variables
"Usuario" y "Contraseña" de la vista login, realizara las validaciones necesarias para
comprobar que los campos no tengan valores nulos, enviara las variables "Usuario" y
"Contraseña" al modelo.
3
Vista (Login_view.php): Contendrá los controles necesarios para la autenticación del
usuario, las variables ingresadas serán enviadas al controlador para su posterior
validación. De retornar una bandera en "True" permitirá el acceso del usuario en el
sistema, caso contrario refrescara el formulario de inicio de sesión.
4
Configuración de sesiones y validaciones de usuarios utilizando MD5: La clase de
Sesión guarda información de sesión para cada usuario como datos serializados (y
opcionalmente encriptados) en una cookie, utilizando el cryptosistema MD5 se brinda
al usuario la seguridad al ingresar su contraseña.
83
PRODUCTO 4 SEGURIDAD DE LA APLICACIÓN
5 Configuración de la clase (Form Validation): La clase "Form_validation" es la
encargada de realizar las validaciones y permitir el paso del usuario al sistema
Fuente: Elaboración propia
Tabla 33. Página de bienvenida
PRODUCTO 5 PÁGINA DE BIENVENIDA
N° ELEMENTO DEL PRODUCT BACKLOG/TAREA DEL SPRINT
1 Controlador (Home.php): Carga la sesión enviada por el controlador (Login.php)
2 Vista (Home_view.php): Primer formulario con el que tiene contacto el usuario
muestra un mensaje de bienvenida y brinda apoyo a usuarios nuevos del sistema.
Fuente: Elaboración propia
Tabla 34. Carga de variables
PRODUCTO 6 CARGA DE VARIABLES
N° ELEMENTO DEL PRODUCT BACKLOG/TAREA DEL SPRINT
1
Modelo (Esquema_model.php), encargado de obtener el listado de tablas y columnas
de la base de datos. "FuncionObtieneTablas" cargara un procedimiento almacenado
del listado de tablas de la base de datos, preparar los elementos devueltos para ser
consumidos por el controlador. "FuncionObtinenColumnas" retorna mediante un
procedimiento almacenado el listado de columnas de la tabla seleccionada por el
usuario, preparar los elementos devueltos en forma de arreglo para ser consumidos
por el controlador.
2
Controlador (Esquema.php) encargado de procesar los objetos que regresa el modelo
(Esquema_model.php), posteriormente retornara los objetos con los que trabajara la
vista, codificara las variables en formato JSON, para ser procesadas con JavaScript.
3 Vista (Esquema_view) Mostrar el listado de tablas en un control de selección múltiple
4 Vista (Esquema_view) Mostrar el listado de campos filtrados por el control de
selección del "listado de tablas" utilizando JavaScript
84
PRODUCTO 6 CARGA DE VARIABLES
5 Vista (Esquema_view) Mostrar el listado de operaciones (sumas, promedios) a
realizar en la tabla dinámica.
6
Vista (Esquema_view) construcción de área de filas utilizando drag and drop, el
usuario podrá seleccionar uno o más elementos del listado de campos del control de
selección múltiple y mediante el control arrastras y soltar asignar el valor en el área
designada de filas (eje X).
7
Vista (Esquema_view) construcción de área de columnas utilizando drag and drop, el
usuario podrá seleccionar uno o más elementos del listado de campos del control de
selección múltiple y mediante el control arrastras y soltar asignar el valor en el área
designada de columnas (eje Y).
8
Vista (Esquema_view) construcción de área de valores utilizando drag and drop, el
usuario podrá seleccionar uno o más elementos del listado de campos del control de
selección múltiple y mediante el control arrastras y soltar asignar el valor en el área
designada para valores.
Fuente: Elaboración propia
Tabla 35. Tabla Dinámica
PRODUCTO 7 TABLA DINÁMICA
N° ELEMENTO DEL PRODUCT BACKLOG/TAREA DEL SPRINT
1
Generar llamado de controlador (Cubo.php): haciendo uso de un archivo Json se
guardaran las variables seleccionadas por el usuario del formulario esquema y se
depositaran en el controlador (Cubo.php), para su posterior procesamiento en el
modelo (Cubo_model.php).
2
Construcción del elemento barra de progreso (progres_bar_class.php): Elemento
visual que indicara al usuario el progreso del procesamiento de la información, previo
a generar la tabla dinámica.
85
PRODUCTO 7 TABLA DINÁMICA
3 Modelo (Cubo_model.php): contendrá procedimiento almacenado de la tabla
dinámica y obtendrá las variables del controlador (Cubo.php)
4 Controlador (Cubo): contendrá los objetos que genere el modelo (Cubo_meodel) y
prepara los valores que se mostraran en la vista.
5
Vista (Cubo_view): contendrá el tree-grid o tabla dinámica que mostrara los datos
procesado por el procedimiento almacenado, los cuales serán presentados al usuario
para su análisis e interpretación.
Fuente: Elaboración propia
Tabla 36. Gráficos dinámicos
PRODUCTO 8 GRÁFICOS DINÁMICOS
N° ELEMENTO DEL PRODUCT BACKLOG/TAREA DEL SPRINT
1
Construcción de la clase Modal (pop up): Clase que permitirá mostrar información y
formularios mediante el uso de ventanas emergentes técnicamente conocidas como
modal pop up
2
Construcción de la clase bar charts: haciendo uso de JavaScript se construye la
clase encargada de generar el grafico de barra haciendo uso de la información
presentada en la tabla dinámica como insumo.
3
Construcción de la clase circle charts: haciendo uso de JavaScript se construye la
clase encargada de generar el grafico de pastel haciendo uso de la información
presentada en la tabla dinámica como insumo.
4
Construcción de la clase dispert charts: haciendo uso de JavaScript se construye la
clase encargada de generar el grafico de dispersión haciendo uso de la información
presentada en la tabla dinámica como insumo.
5
Construcción del control grafico de Barra: Control encargado de utilizar la clase
Modal y la clase Bar Charts para mostrarle al usuario de forma gráfica la información
de la tabla dinámica en un gráfico de barra.
6
Construcción del control grafico de pastel: Control encargado de utilizar la clase
Modal y la clase Circle Charts para mostrarle al usuario de forma gráfica la
información de la tabla dinámica en un gráfico de pastel.
86
7
Construcción del control gráfico de dispersión: Control encargado de utilizar la clase
Modal y la clase Bar Dispert para mostrarle al usuario de forma gráfica la información
de la tabla dinámica en un gráfico de dispersión.
Fuente: Elaboración propia
6.2.3.2 Desarrollo
6.2.3.2.1 Modelado de clases
Diagrama 1. Modelado de clases de la herramienta del software
Fuente: Elaboración propia
87
6.2.3.2.2 Diagrama de secuencia
Diagrama 2. Diagrama secuencia proceso de login
Fuente: Elaboración propia
88
Diagrama 3. Diagrama de secuencia del proceso de captura de variables
Fuente: Elaboración propia
89
Diagrama 4. Diagrama de secuencia de tabla dinámica
Fuente: Elaboración propia
90
Diagrama 5. Diagrama de secuencia del modal y charts
Fuente: Elaboración propia
91
6.2.3.3 Pruebas del Entregable
En este apartado se realizan las diversas pruebas de funcionalidad debido a que el
software en este caso la herramienta tiene como objetivo satisfacer las necesidades
que tienen las pymes con relación a la toma de decisiones, debido a que esta prueba
se enfocan directamente con la ejecución, revisión y una retroalimentación de los
procesos o funciones que fueron diseñadas para el programa.
Prueba de funcionalidad del proceso 1: Plataforma
Objetivo: Garantizar que la ejecución de todos los procesos sean los correctos y se
desarrollen con normalidad en la plataforma de desarrollo.
Tabla 37. Pruebas de funcionalidad plataforma
Acción Resultado
Esperado
Resultado
Obtenido
Ejecución de la
prueba
Revisión de la
prueba
1. Devuelve información
localhost al consultarlo
desde el navegador.
2. Inicio de sesión por
usuario final.
3. Inicio de sesión usuario
final con datos erróneos.
Mostrar al usuario
la interfaz de
bienvenida al
usuario.
Que el usuario
final haya echo
satisfactoriamente
el proceso de
inicio de sesión.
El usuario no
pueda hacer un
inicio de sesión
con datos
erróneos.
Pantalla cargada
de bienvenida, sin
ningún problema,
no hubo errores.
Pantalla cargada
de inicio de sesión
sin ningún
Problema,
proceso de login
completado.
En este caso con
los datos erróneos
no se realizó el
inicio de sesión,
pantalla no
cargada para
continuar proceso.
Ejecutado por:
Fecha:
Firma:
Revisado por:
Fecha:
Firma:
Comentarios:
92
Acción Resultado
Esperado
Resultado
Obtenido
Ejecución de la
prueba
Revisión de la
prueba
4 . Insertar nuevo elemento
5 . Cierre de sesión de
usuarios.
Agregar
satisfactoriamente
elementos en la
base de datos
(pago, factura,
#cheques etc.)
Iniciar sesión en
primera instancia
y posterior hacer
su cierre.
La pantalla
correspondiente a
este proceso
cargo sin ningún
problema y los
elementos fueron
añadidos.
Pantalla de cierre
de sesión cargada
sin ningún
problema.
Herramientas Requeridas
Se requiere hacer uso de:
Un sistema de infraestructura LAMP( Linux, Apache, MySQL y PHP)
Criterios de finalización
de prueba de
funcionalidad
Los diversos requerimientos plasmados se cumplen en relación a las
acciones de las diferentes pruebas y resultados obtenidos de las mismas.
Inmediata corrección de elementos con errores.
Consideraciones
Especiales
N/A
Fuente: Elaboración propia
Prueba de funcionalidad del proceso 2: Mantenimiento de software
Objetivo: Verificar que el software este funcionado sin ningún error grave, y que todos
los procesos se estén llevando a cabo con toda normalidad.
93
Tabla 38. Pruebas de funcionalidad mantenimiento de software
Acción Resultado
Esperado
Resultado
Obtenido
Ejecución de la
prueba
Revisión de la
prueba
1. Interfaz de usuario
2. Comprobación de
errores en el sistema
3. Interfaz de Hardware
4 . Encriptación de
caracteres en el login.
Que las pantallas
del sistema estén
funcionando sin
ninguna falla
Ejecutar diversos
procesos en el
sistema en busca
de errores.
Al momento de
monitorear el
hardware verificar
que no se tenga
problema con
ningún elemento
físico.
Verificar que ante
algunas
modificaciones, la
encriptación de
caracteres
continúe.
Todas las
pantallas de
interfaz de usuario
cargan sin
ninguna falla.
En algunos
procesos se
encontraron unos
errores y se aplicó
un mantenimiento
correctivo en el
momento.
Efectivamente no
se encontraron
fallos con el
Hardware al
momento de llevar
acabo el
monitoreo
respectivo.
Como resultado
esperado, la
encriptación de
los caracteres en
las contraseñas,
funcionan en su
totalidad.
Ejecutado por:
Fecha:
Firma:
Revisado por:
Fecha:
Firma:
Comentarios:
94
Acción Resultado
Esperado
Resultado
Obtenido
Ejecución de la
prueba
Revisión de la
prueba
5. Interfaz Grafica
Toda la forma
gráfica este sin
ningún fallo, y que
se logre visualizar
en su totalidad
Como resultado
Obtenido después
de esta prueba, la
interfaz gráfica no
presenta ningún
tipo de error.
Herramientas Requeridas
Se requiere hacer uso de:
Instalación sistema de infraestructura LAMP( Linux, Apache, MySQL y
PHP)
Criterios de finalización
de prueba de
funcionalidad
Después del debido mantenimiento los procesos y funciones del sistema
se encuentran trabajando con normalidad.
Consideraciones
Especiales
N/A
Fuente: Elaboración propia
Prueba de funcionalidad del proceso 3: Seguridad de software
Objetivo: Analizar todos los casos o escenarios para comprobar la seguridad del
sistema.
95
Tabla 39. Pruebas de funcionalidad seguridad de software
Acción Resultado
Esperado
Resultado
Obtenido
Ejecución de la
prueba
Revisión de la
prueba
1. Configuración correcta
de servidores.
2. Control de acceso
3. Puertos seguros.
Que la
configuración del
servidor apache
este
correctamente
realizada.
Que el usuario
final logre acceder
al sistema
haciendo uso de
sus credenciales
Que el sistema
esté conectado al
puerto 8081 como
regla.
El servidor
Apache se
encuentra
debidamente
configurado.
Pantalla cargada
en su totalidad al
momento de
iniciar sesión con
las credenciales.
Después de la
inspección de
acuerdo con la
regla el sistema
esta con el puerto
8081
Ejecutado por:
Fecha:
Firma:
Revisado por:
Fecha:
Firma:
Comentarios:
Herramientas Requeridas
Se requiere hacer uso de:
Un sistema de infraestructura LAMP( Linux, Apache, MySQL y PHP)
Criterios de finalización
de prueba de
funcionabilidad
Se cumplen con todos los requerimientos solicitados.
Consideraciones
especiales
N/A
Fuente: Elaboración propia
96
6.2.4 Actualización del sprint backlog
Como se sabe SCRUM es una metodología que se aplica para el desarrollo, es ágil
y está basado en diversos procesos iterativos e incrementales, y es justamente por
este motivo que muchas veces los sprint backlog sufren muchos cambios o bien
actualizaciones.
Para el presente desarrollo de la herramienta de software, y a la vez la construcción
del sprint se verifico y se dejó en claro que la propuesta inicial del sprint backlog,
no sufrió cambios relevantes o de mucha importancia.
6.3 Fase de cierre
6.3.1 Requerimientos completados
Los requerimientos o requisitos completados (Sprint Review), en SCRUM se realiza
cuando el equipo presenta al cliente los requisitos completados en las iteración
base del producto preparado para ser entregado con el mínimo esfuerzo, haciendo
un recorrido por ellos lo más real y cercano posible al objetivo que se pretender
cubrir dentro de la metodología.
En función de lo antes expuesto y habiendo realizado pruebas a los elementos del
product backlog, así como sus tareas del sprint, debidamente agrupadas en cuatro
procesos:
a) Proceso 1: Inicio de sesión (login) Nota: este proceso contempla el aparatado de
seguridad y manejo de sesiones.
b) Proceso 2: Carga de variables (Selección de valores a ser procesados dentro de
la tabla dinámica).
c) Proceso 3: Generación de la tabla dinámica (Presentación de los datos
procesados por el sistema).
d) Proceso 4: Generación del elemento modal y gráficos del sistema (Ayuda a tener
una mejor comprensión de los datos presentados en el sistema).
Se ha efectuado de manera objetiva el desempeño del desarrollo de los requisitos
planteados, cumpliendo con las expectativas del diseño de la herramienta de
software.
97
6.3.2 Testing
El Testing o mejor conocido como las pruebas en la fase de cierre, es un resumen de
todos y cada uno de los elementos del product backlog que están debidamente
mencionados en la pila del producto. A continuación se presentan de una forma breve
y resumida los resultados que arrojaron dichas pruebas de funcionabilidad.
Mantenimiento del software: Para este sprint mantenimiento de software se
hicieron las pruebas para la interfaz del usuario, la encriptación del login,
interfaz de hardware y la comprobación de errores en el sistema, en el momento
que se aplicaron los procesos para las pruebas se notó una total integración de
todos los elementos debidamente enlazados, lo que dejo evidentemente sin
errores en esta parte, la funcionalidad fue muy buena.
Seguridad de software: Dentro de las pruebas de funcionabilidad que se
ejecutaron para este sprint fueron: configuración correcta de servidores, el
control de acceso y los puertos seguros, al momento de configurar el servidor
se no se detectó ninguna anomalía que interfiriera el funcionamiento del
sistema, puesto que se debe de tener mucho cuidado al momento de aplicar
configuraciones en los servidores para no dañar el funcionamiento, con la parte
de la seguridad de acceso se aplicó correctamente las autenticaciones de los
usuarios finales del sistema y su conectividad con los puertos 8081.
Diseño Responsive: Las pruebas que se ejecutaron para el diseño responsive
fueron la adaptación del sistema a multi-dispositivos como tabletas, móviles y
computadoras, ya que los usuarios finales podrán usar dicha herramienta en los
diversos dispositivos sin afectar su debido funcionamiento.
Actualizaciones para la herramienta del software: Para este software el
código estará abierto para que posteriormente si las empresas desean modificar
o agregar cualquier elemento lo hagan si así se desea en su momento, las
actualizaciones podrán realizase de forma manual o automática.
98
Plataforma: En este sprint correspondiente a la plataforma se ejecutaron de
pruebas de localhost, el cual carga con éxito la pantalla de bienvenida para el
usuario, junto con el login, se inició sesión con datos no erróneos para el debido
funcionamiento del proceso y al momento cargo la pantalla establecida. No se
encontraron fallas en este apartado.
Manejo de tiempos: Con respecto al sprint de manejos de tiempos estos fueron
ejecutados en las operaciones necesarias en el día a día, transferencia de datos
y procesamiento de la información.
Captura de variables: El usuario selecciono cualquier campo que existía
dentro de la base de datos para colocarlo según su conveniencia dentro de una
de los ejes (x, y) o bien como valor resultante. Al momento de la ejecución no
se presentaron procesos incompletos, ni dificultades relevantes.
Tabla dinámica: Como una continuación a la captura de variables, las pruebas
para el sprint de la tabla dinámica la información se solicitó en un treegrid en el
cual el usuario final pudo hacer uso de la información pertinente de una forma
rápida y oportuna.
Gráficos dinámicos: Para el sprint de los gráficos dinámicos las pruebas de
funcionalidad tuvieron relación a la inserción de gráficos ya que el usuario
dispuso de gráficos de barra, pastel y dispersión para la mejor compresión de
la información proporcionada por la tabla dinámica.
99
6.4 Implementación de la herramienta
Antes de implementar la herramienta hay que tomar unos puntos en consideración
para su correcto funcionamiento en las empresas que lo deseen utilizar.
La empresa, organización, ONG o institución debe de contar con una base de datos
de la cual desee extraer la información.
Se debe de contar con un servidor web preferiblemente que soporte php, se
recomienda el uso de Apache.
Espacio en HDD 50 mb.
Ancho de banda 1 Mb/s.
En caso de implementar sobre un sistema operativo Windows contar con un servidor
xampp o wamp
Los elementos anterior mente mencionados son los mínimos requeridos para poder
implementar la herramienta construida para las PYMES del sector comercio del
municipio de san salvador.
6.4.1 Implementación en base de datos MySQL.
De contar con una base de datos MySQL el proceso de implementación de la
herramienta de análisis de datos históricos se simplifica pues basta con configurar el
archivo Database que se localiza en la carpeta aplication/config/databse.php y colocar
las credenciales de un usuario que goce de privilegios limitados sobre la base de datos,
bajo ninguna circunstancia se colocara a usuario “root” puesto que esto representa un
alto grado de vulnerabilidad hacia el sistema, posterior a su creación es necesario
correr dos script uno con el que se creara el procedimiento almacenado encargado de
generar las tablas dinámicas y otro script encargado de crear la tabla donde se
almacenan los usuarios del sistema de análisis de datos.
100
Si la empresa cuenta con un sistema, ERP o CRM programado en php, es posible
integrar de forma natural dichas herramientas con el software desarrollado ya sea
utilizando re direccionamiento a la aplicación de análisis de datos históricos o
integrándolo como un módulo más de las aplicaciones con las que la organización
cuente.
En caso de contar con sistemas, ERP o CRM escritos en ASP.NET, Java, Rubí, o
cualquier otro lenguaje de programación se recomienda utilizar el sistema como un
módulo externo de consultas.
6.4.2 Implementación en una base de datos distinta a MySQL.
En dado caso la empresa cuente con un sistema, ERP o CRM que se ejecuta bajo una
base de datos distinta a MySQL, se plantean dos posibles alternativas de solución para
poder utilizar la herramienta de análisis de datos históricos los cuales se detallan a
continuación.
Compatibilidad del procedimiento Cubo.sql a la base de datos anfitrión.
Aunque el lenguaje sql es hasta cierto punto estandarizado, tiene ciertas
particularidades de un motor de base de datos a otro, es decir desde la forma en cómo
se ejecuta un procedimiento almacenado hasta su creación varían dependiendo de la
base de datos que se utiliza, es por eso que si la empresa que implementara la
herramienta de análisis de datos históricas propuesta en este trabajo de investigación,
desea se ejecute en la base de datos que utiliza se deberá de migrar el procedimiento,
de forma tal que sea compatible con la base de datos anfitrión dicho proceso de
migración puede tardar varias horas dependiendo de la base de datos a la cual se
migrara el procedimiento almacenado.
Integración de la base principal a MySQL.
En este caso se conservara la base de datos principal y se creara un job (tarea
rutinaria que se establece en la base de datos) la cual en cierto lapso de tiempo
descargar la información de la base principal a una base MySQL en la cual se
101
tendrá un registro de las transacciones echas por la base principal. Las tareas
que conllevan la integración de las bases se detallan a continuación.
Tabla 40 Implementación base de datos
Tarea a realizar Descripción Tiempo estimado de
realización
Duplicación de la base de datos principal a la base MySQL
Creación de tablas y campos de la base de datos principal a la base de datos de MySQL, al realizar esta tarea el administrador debe de tener cuidado puesto que la definición de campos entre las diferentes base de datos con MySQL puede variar por ello es necesario crear un diagrama previo antes de la creación de la base de datos en MySQL.
Debido a la delicada tarea de analizar, crear y administrar las tablas y campos dentro de la base MySQL es necesario considerar un tiempo prudencial para comprobar la compatibilidad de tipos de datos entre ambas bases por lo cual esta tarea puede extenderse de 1 a 7 días
Creación de un tarea (job) para la integración de la base principal a la base MySQL
Esta tarea que se establece dentro de la base de datos principal tiene como función descargar los datos en lapsos de tiempo que establezca el administrador del sistema o el jefe de IT
Dependiendo de la conversión de datos entre las bases y las tablas a crear esta tarea podrá tener un tiempo estimado de creación de 1 a 2 días.
Ejecutar script del procedimiento almacenado Cubo.sql
Básicamente solo se debe de correr la Procedimiento cubo dentro de la base de datos que contendrá la información
Esta tare tendrá un máximo de duración de 10 a 15 minutos.
Configuración de los archivos de Codeigniter
En esta fase es necesario colocar los datos de configuración necesario de la base de datos al archivo database.php, para que los modelos del código puedan acceder a los datos de la base
Esta tarea demorar un máximo de 20 minutos, deberá ser realizada por el administrador del sistema.
Elaboración propia
102
Bibliografía
Publicaciones.
Calzada, Leticia y José Luis Abreu, (2009). “El impacto de las herramientas de
inteligencia de negocios en la toma de decisiones de los ejecutivos”. Daena:
International Journal of Good Conscience.
Cortes Aldana F., Rodríguez R. (2012). “Selección de una plataforma de
inteligencia de negocios: un análisis multicriterio innovador”. Revista Ciencias
Estratégicas. Vol. 20 - No. 28. Medellín Colombia.
Cherry Tree & Co (2000), “Business Intelligence - The Missing Link”,
Minneapolis Estados Unidos.
Flavia C., Pavel N. (2014). “Modeling a Business Intelligence System for
Investment Projects”, Department of Management Information Systems The
Bucharest University of Economic Studies
Goud K., Gupta K., Shyandilya A. (2014). “Open Source Business Intelligence
for Business Economic Development”, Journal of Management Policy and
Practice vol. 15.
Hernández Sampieri R., Fernández Collado C., Baptista Lucio M. (2010)
“Metodología de la Investigación”. Edición N° 5. México.
Laudon K, Laudon J. Sistemas de información gerencial (8va. ed.). México DF:
Pearson Education; 2004.
Peroso Arnoldo J., Villalobo R. (2014). “Naturaleza de la Innovación Tecnológica
en las Organizaciones de Desarrollo de Software como Servicio del Municipio
Maracaibo”, Revista Electrónica de Estudios Telemáticos, Volumen 13, Edición
N° 2.
103
Publicaciones Electrónicas
Análisis estadístico con Microsoft Excel, http://www.uv.es/ceaces/pdf/aexcel.pdf , (Consulta 17/08/2015)
Arquitectura 3 capas, http://bio.es/bioges/caracteristicas/item/6-arquitectura-3-
capas , (Consulta 11/08/2015)
Arquitectura de aplicaciones web, http://jmaw.blogspot.com/2013/01/arquitectura-
de-aplicaciones-web-capa_5.html , (Consulta 12/08/2015)
Arquitectura de aplicaciones, http://jmaw.blogspot.com/2013/01/arquitectura-
de-aplicaciones-web-capa_6972.html , (Consulta 07/08/2015)
Arquitectura en capas, http://www.developeando.com/2013/07/sobre-
arquitectura-en-capas-parte-1.html , (Consulta 07/08/2015)
Bases de datos, http://www.hipertexto.info/documentos/b_datos.htm , (Consulta
14/08/2015)
Bases de datos, http://www.hipertexto.info/documentos/b_datos.htm , (Consulta
15/08/2015)
Breve historia de la forma de tomar decisiones
http://manuelgross.bligoo.com/content/view/700680/Breve-historia-de-las-
formas-de-tomar-decisiones.html (Consultado 21/08/2015)
Capa de Negocio,
http://www.juntadeandalucia.es/servicios/madeja/contenido/subsistemas/arquit
ectura/capa-negocio , (Consulta 12/08/2015)
Controladores de bases de datos, https://msdn.microsoft.com/es-
es/library/aa287926(v=vs.71).aspx , (Consulta 12/08/2015)
104
Data mining: torturando a los datos hasta que confiesen,
http://www.uoc.edu/web/esp/art/uoc/molina1102/molina1102.html (Consultado
30/08/2015)
Desarrollo de aplicaciones para ambientes distribuidos,
https://laurmolina7821.wordpress.com/1-1-3-aplicaciones-de-2-3-y-n-capas/ ,
(Consulta 09/08/2015)
Dirección General de Estadísticas y Censos, http://www.digestyc.gob.sv/,
(Consulta 19/0802015)
Diseño Responsive
http://www.tuprogramacion.com/desarrollo-web/que-es-responsive-design-y-como-usarlo/ (Consultado 20/10/2015)
Historia de la toma de decisiones,
http://unesrmatfince2.blogspot.com/2009/11/teorias-de-las-decisiones.html,
(Consulta 21/08/2015)
Programación por capas,
https://ingruizlargaespada.files.wordpress.com/2014/01/tema5.pdf , (Consulta
11/08/2015)
IEEE Xplore Digital Library, http://ieeexplore.ieee.org/, (consulta 10/08/2015)
Informática hoy, http://www.informatica-hoy.com.ar/telefonos-celulares/Cubo-OLAP-
una-base-de-datos-multidimensional.php , (Consulta 15/08/2015)
Introducción bases de datos
http://es.ccm.net/contents/66-introduccion-bases-de-datos (Consulta15/10/2015)
Lenguaje de programación
http://www.lenguajes-de-programacion.com/ (Consulta 12/10/2015)
105
Licensing Oracle
http://www.danysoft.com/free/SQL_Server_2012_Licensing_VS_Oracle.pdf
(Consultado 7/11/2015)
Microsoft SQL SERVER, https://technet.microsoft.com/es-es/library/ms175609(v=sql.90).aspx , (Consulta 16/08/2015)
Migrador OLAP, http://www.fing.edu.uy/~ruggia/T5s/Migrador-OLAP.pdf , (Consulta 15/08/2015)
Oracle Advanced Analytics, http://www.oracle.com/es/products/database/options/advanced-analytics/index.html , (Consulta 16/08/2015)
RapidMiner, https://rapidminer.com/us/ , (Consulta 17/08/2015)
Real Academia Española http://lema.rae.es (Consulta 09/08/2015)
Sistema de Información para la toma de decisiones comerciales.
http://www.gestiopolis.com/sistema-de-informacion-para-la-toma-de-
decisiones-comerciales/ (Consulta 30/08/2015)
Ventajas y desventajas diseño responsive
http://programacion1abundiz.blogspot.com/2009/09/ventajas-del-c-y-desventajas.html
(Consulta 20/11/2015)
Constituciones, leyes, reglamentos y compilaciones legales.
El Salvador, Dirección General de Estadísticas y Censos, “Directorio de
Unidades Económicas 2011-2012”
106
GLOSARIO
107
D
Diagrama de secuencia
Muestra una interacción, que representa la secuencia de mensajes entre instancias de
clases, componentes, subsistemas o actores. El tiempo fluye por el diagrama y
muestra el flujo de control de un participante a otro. Utilice diagramas de secuencia
para visualizar instancias y eventos, en lugar de clases y métodos. En el diagrama,
puede aparecer más de una instancia del mismo tipo. También puede haber más de
una ocurrencia del mismo mensaje.
E
Ejecución
Este verbo tiene varios significados: poner por obra algo, desempeñar algo con
facilidad, tocar una pieza musical, ajusticiar, reclamar una deuda por un procedimiento
ejecutivo o, en informática, realizar las operaciones que son especificadas por un
programa.
F
Framework
La palabra inglesa "framework" (marco de trabajo) define, en términos generales, un
conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de
problemática particular que sirve como referencia, para enfrentar y resolver nuevos
problemas de índole similar.
Funcionales
Es aquello perteneciente o relativo a las funciones. El concepto está vinculado a algo
o alguien que funciona o sirve. Un funcionario puede ser funcional a los intereses del
108
gobierno, por ejemplo, mientras que una mesa es funcional si logra satisfacer las
necesidades de sus usuarios.
H
Historias de usuarios
Es una representación de un requisito de software escrito en una o dos frases
utilizando el lenguaje común del usuario. Las historias de usuario son utilizadas en las
metodologías de desarrollo agiles para la especificación de requisitos (acompañadas
de las discusiones con los usuarios y las pruebas de validación). Cada historia de
usuario debe ser limitada, esta debería poderse escribir sobre una nota adhesiva
pequeña. Dentro de la metodología XP las historias de usuario deben ser escritas por
los clientes.
I
Iteraciones
Significa el acto de repetir un proceso con el objetivo de alcanzar una meta deseada,
objetivo o resultado. Cada repetición del proceso también se le denomina una
"iteración", y los resultados de una iteración se utilizan como punto de partida para la
siguiente iteración.
L
Lenguaje Unificado de Modelado
UML, por sus siglas en inglés (Unified Modeling Language) es el lenguaje de modelado
de sistemas de software más conocido y utilizado en la actualidad; está respaldado
por el OMG (Object Management Group).
109
N
No funcionales
Un requisito no funcional o atributo de calidad es, en la ingeniería de sistemas y la
ingeniería de software, un requisito que específica criterios que pueden usarse para
juzgar la operación de un sistema en lugar de sus comportamientos específicos, ya
que estos corresponden a los requisitos funcionales. Por tanto, se refieren a todos los
requisitos que no describen información a guardar, ni funciones a realizar.
P
Product Backlog
Se trata como un documento de alto nivel para todo el proyecto. Es el conjunto de
todos los requisitos de proyecto, el cual contiene descripciones genéricas de
funcionalidades deseables, priorizadas según su retorno sobre la inversión (ROI).
Product Owner
El Product Owner representa la voz del cliente. Se asegura de que el equipo SCRUM
trabaje de forma adecuada desde la perspectiva del negocio. El Product Owner escribe
historias, las prioriza, y las coloca en el Product backlog.
R
Requerimiento
Es una necesidad documentada sobre el contenido, forma o funcionalidad de un
producto o servicio En la ingeniería clásica, los requisitos se utilizan como datos de
entrada en la etapa de diseño del producto. Establecen qué debe hacer el sistema,
pero no cómo hacerlo.
110
S
SCRUM Master
El SCRUM es facilitado por un SCRUM Master, cuyo trabajo primario es eliminar los
obstáculos que impiden que el equipo alcance el objetivo del sprint. El SCRUM Master
no es el líder del equipo (porque ellos se auto-organizan), sino que actúa como una
protección entre el equipo y cualquier influencia que le distraiga. El SCRUM Master se
asegura de que el proceso SCRUM se utiliza como es debido. El SCRUM Master es
el que hace que las reglas se cumplan.
Software
Conjunto de programas y rutinas que permiten a la computadora realizar determinadas
tareas.
Sprint
Es el periodo en el cual se lleva a cabo el trabajo en sí. Es recomendado que la
duración de los sprints sea constante y definida por el equipo con base en su propia
experiencia. Se puede comenzar con una duración de sprint en particular (2 o 3
semanas) e ir ajustándolo con base en el ritmo del equipo, aunque sin relajarlo
demasiado. Al final de cada sprint, el equipo deberá́ presentar los avances logrados, y
el resultado obtenido es un producto potencialmente entregable al cliente.
Sprint Backlog
Es el subconjunto de requisitos que serán desarrollados durante el siguiente sprint. Al
definir el sprint backlog, se describe el cómo el equipo va a implementar los requisitos
durante el sprint. Por lo general los requisitos se subdividen en tareas, a las cuales se
asignan ciertas horas de trabajo pero ninguna tarea con una duración superior a 16
horas. Si una tarea es mayor de 16 horas, deberá́ ser dividida en otras menores. Las
tareas en el sprint backlog nunca son asignadas, son tomadas por los miembros del
equipo del modo que les parezca adecuado.
111
T
Team (Equipo de desarrollo)
El equipo tiene la responsabilidad de entregar el producto. Es recomendable un
pequeño equipo de 3 a 9 personas con las habilidades transversales necesarias para
realizar el trabajo (análisis, diseño, desarrollo, pruebas, documentación, etc.).
Técnica
Es un procedimiento o conjunto de reglas, normas o protocolos que tiene como objetivo
obtener un resultado determinado, ya sea en el campo de las ciencias, de la tecnología,
del arte, del deporte, de la educación o en cualquier otra actividad.
Tecnología
Es el conjunto de conocimientos técnicos, científicamente ordenados, que permiten
diseñar y crear bienes y servicios que facilitan la adaptación al medio ambiente y
satisfacer tanto las necesidades esenciales como los deseos de la humanidad.
Testing
Las pruebas de software (en inglés software testing) son las investigaciones empíricas
y técnicas cuyo objetivo es proporcionar información objetiva e independiente sobre la
calidad del producto a la parte interesada o stakeholder. Es una actividad más en el
proceso de control de calidad.
112
ANEXOS
113
Anexo 1
Instrumento de medición #1 cuadro comparativo de lenguajes de programación
Lenguaje de
programación
Tiempo
de
respuesta
Tiempo
de
ejecución
Tiempo de
compilación Ventajas Desventajas Interpretación
.
114
Anexo 2
Instrumento de medición #2 cuadro comparativo de bases de datos
Base de Datos
Costo Portabilidad Actualizaciones Compatibilidad Interpretación
MySQL
ORACLE
PostgreSL
SQL Server
115
Anexo 3
Instrumento de medición #3 lista de chequeo de requerimientos funcionales en
función de la estructura del software SQL Server, Analysis Services, Oracle
Advanced Analytics y Excel
Criterio Si / No / N/A
Compatibilidad
¿Se ha especificado la fiabilidad del sistema/software, incluyendo las consecuencias en el caso de que se presente una falla, la información vital a proteger en caso de caída, la detección de los errores o el proceso de recuperación?
¿Se han especificado los requerimientos para la comunicación entre los componentes del sistema/software?
¿Se ha definido la funcionalidad y el comportamiento global de todo el sistema/software?
Mantenimiento
¿Se ha especificado la mantenibilidad del sistema/software, incluyendo la habilidad de respuesta a los cambios en el entorno operativo, las interfaces, la precisión, el rendimiento, y otras capacidades adicionales predecibles?
¿Se han especificado todas las tareas de mantenimiento que se le debe realizar al sistema/software?
Tiempos
Desde el punto de vista del usuario, ¿se ha especificado el tiempo de respuesta esperado de todas las operaciones necesarias?
¿Se han especificado otras consideraciones temporales tales como el tiempo de procesamiento, el de transferencia de datos o la tasa de transferencia?
Presupuesto
¿Dada la línea base de costes que incluye desde instalación, capacitación y actualización del software a utilizar, esta permite estimar, presupuestar y controlar los costes de la utilización del software?
116
¿Se ha determinado si el coste del software es de forma anual?
Modo de ejecución
Para cada tarea especificada, ¿se ha detallado el contenido de datos/información utilizado por la tarea y el contenido de datos/información que se obtendrá como resultado de la misma?
¿Se ha definido en que sistema/as operativos tiene el mejor desempeño el software a ser utilizado?
Anexo 4
Instrumento de medición #3 lista de chequeo de requerimientos no funcionales
Criterio Si / No / N/A
Soporte para varios idiomas
¿Se ha especificado la cantidad de idiomas que soporta el software
a utilizar?
¿Se ha definido de no tener soporte para varios idiomas, estos van
a ser incluidos posteriormente?
Actualizaciones constantes
¿Se ha definido cada cuanto tiempo se van a realizar
actualizaciones para que el funcionamiento del software sea siempre
el adecuado?
¿Se ha definido si cada actualización va a tener un costo específico?
117
Anexo 5
Página de bienvenida
Figura 1. Captura de página de bienvenida al sistema.
118
Anexo 6
Figura 2. Captura de página de logueo.
119
Anexo 7
Figura 3. Captura de carga de variables.
Anexo 8
Figura 4. Barra de progreso
top related