“diseño de una herramienta de apoyo a la toma de decisiones

121

Upload: others

Post on 09-Jul-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: “Diseño de una herramienta de apoyo a la toma de decisiones
Page 2: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 3: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 4: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 5: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 6: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 7: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 8: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 9: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 10: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 11: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 12: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 13: “Diseño de una herramienta de apoyo a la toma de decisiones

11

CAPÍTULO 1

Page 14: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 15: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 16: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 17: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 18: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 19: “Diseño de una herramienta de apoyo a la toma de decisiones

17

CAPÍTULO 2

Page 20: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 21: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 22: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 23: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 24: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 25: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 26: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 27: “Diseño de una herramienta de apoyo a la toma de decisiones

25

CAPÍTULO 3

Page 28: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 29: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 30: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 31: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 32: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 33: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 34: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 35: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 36: “Diseño de una herramienta de apoyo a la toma de decisiones

34

CAPÍTULO 4

Page 37: “Diseño de una herramienta de apoyo a la toma de decisiones

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:

Page 38: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 39: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 40: “Diseño de una herramienta de apoyo a la toma de decisiones

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:

Page 41: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 42: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 43: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 44: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 45: “Diseño de una herramienta de apoyo a la toma de decisiones

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?

Page 46: “Diseño de una herramienta de apoyo a la toma de decisiones

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?

Page 47: “Diseño de una herramienta de apoyo a la toma de decisiones

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?

Page 48: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 49: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 50: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 51: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 52: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 53: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 54: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 55: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 56: “Diseño de una herramienta de apoyo a la toma de decisiones

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,

Page 57: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 58: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 59: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 60: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 61: “Diseño de una herramienta de apoyo a la toma de decisiones

59

CAPÍTULO 5

Page 62: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 63: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 64: “Diseño de una herramienta de apoyo a la toma de decisiones

62

CAPÍTULO 6

Page 65: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 66: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 67: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 68: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 69: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 70: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 71: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 72: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 73: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 74: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 75: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 76: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 77: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 78: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 79: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 80: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 81: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 82: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 83: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 84: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 85: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 86: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 87: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 88: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 89: “Diseño de una herramienta de apoyo a la toma de decisiones

87

6.2.3.2.2 Diagrama de secuencia

Diagrama 2. Diagrama secuencia proceso de login

Fuente: Elaboración propia

Page 90: “Diseño de una herramienta de apoyo a la toma de decisiones

88

Diagrama 3. Diagrama de secuencia del proceso de captura de variables

Fuente: Elaboración propia

Page 91: “Diseño de una herramienta de apoyo a la toma de decisiones

89

Diagrama 4. Diagrama de secuencia de tabla dinámica

Fuente: Elaboración propia

Page 92: “Diseño de una herramienta de apoyo a la toma de decisiones

90

Diagrama 5. Diagrama de secuencia del modal y charts

Fuente: Elaboración propia

Page 93: “Diseño de una herramienta de apoyo a la toma de decisiones

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:

Page 94: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 95: “Diseño de una herramienta de apoyo a la toma de decisiones

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:

Page 96: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 97: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 98: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 99: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 100: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 101: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 102: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 103: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 104: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 105: “Diseño de una herramienta de apoyo a la toma de decisiones

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)

Page 106: “Diseño de una herramienta de apoyo a la toma de decisiones

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)

Page 107: “Diseño de una herramienta de apoyo a la toma de decisiones

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”

Page 108: “Diseño de una herramienta de apoyo a la toma de decisiones

106

GLOSARIO

Page 109: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 110: “Diseño de una herramienta de apoyo a la toma de decisiones

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).

Page 111: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 112: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 113: “Diseño de una herramienta de apoyo a la toma de decisiones

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.

Page 114: “Diseño de una herramienta de apoyo a la toma de decisiones

112

ANEXOS

Page 115: “Diseño de una herramienta de apoyo a la toma de decisiones

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

.

Page 116: “Diseño de una herramienta de apoyo a la toma de decisiones

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

Page 117: “Diseño de una herramienta de apoyo a la toma de decisiones

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?

Page 118: “Diseño de una herramienta de apoyo a la toma de decisiones

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?

Page 119: “Diseño de una herramienta de apoyo a la toma de decisiones

117

Anexo 5

Página de bienvenida

Figura 1. Captura de página de bienvenida al sistema.

Page 120: “Diseño de una herramienta de apoyo a la toma de decisiones

118

Anexo 6

Figura 2. Captura de página de logueo.

Page 121: “Diseño de una herramienta de apoyo a la toma de decisiones

119

Anexo 7

Figura 3. Captura de carga de variables.

Anexo 8

Figura 4. Barra de progreso