Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
1
IMPLEMENTACIÓN DE UNA PLATAFORMA WEB PARA EL ESTUDIO ESTADÍSTICO DEL NIVEL DE SATISFACCIÓN DE LOS CLIENTES
DEL INSTITUTO NACIONAL DE MEDICINA LEGAL Y CIENCIAS FORENSES REGIONAL OCCIDENTE
JULIAN ALEJANDRO VENTERO BARRERA
UNIVERSIDAD DE CATÓLICA DE PERERIA FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES PERERIA
2018
2
IMPLEMENTACIÓN DE UNA PLATAFORMA WEB PARA EL ESTUDIO ESTADÍSTICO DEL NIVEL DE SATISFACCIÓN DE LOS CLIENTES
DEL INSTITUTO NACIONAL DE MEDICINA LEGAL Y CIENCIAS FORENSES REGIONAL OCCIDENTE
JULIAN ALEJANDRO VENTERO BARRERA
Trabajo de Grado presentado como opción parcial para optar al título de Ingeniero de Sistemas y Telecomunicaciones
Tutor GEOVANNY GOMEZ OROZCO
Ingeniero de Sistemas y Telecomunicaciones Especialista en Desarrollo de Software
UNIVERSIDAD DE CATÓLICA DE PEREIRA FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES PEREIRA
2018
3
PÁGINA DE ACEPTACIÓN
__________________________________ __________________________________ __________________________________ __________________________________ __________________________________ __________________________________ __________________________________ __________________________________ JURADO __________________________________ JURADO __________________________________ JURADO
Pereira, 23 de noviembre de 2018
4
DECLARACIÓN DERECHOS DE AUTOR
El proyecto descrito a continuación fue desarrollado para el Instituto Nacional de
Medicina Legal y Ciencias Forenses Regional Occidente, por tal motivo la utilización
y disposición de empleo de todo tipo de diagramas, modelos, tablas e imágenes
requieren mantener la integridad, seguridad y confidencialidad de los procesos
internos que se llevan a cabo. De acuerdo con el convenio existente entre el Instituto
Nacional de Medicina Legal y Ciencias Forenses y la Universidad Católica de
Pereira, se autoriza a esta de incluir el presente proyecto dentro de su catálogo de
consulta y este sea fuente de conocimientos para toda persona que lo requiera, de
cualquier manera, se pide respetar la propiedad intelectual del mismo.
5
CONTENIDO
INTRODUCCIÓN ................................................................................................... 13
1. SITUACIÓN PROBLEMÁTICA ....................................................................... 14
2. OBJETIVOS .................................................................................................... 15
2.1. OBJETIVO GENERAL................................................................................. 15
2.2. OBJETIVOS ESPECÍFICOS ..................................................................... 15
3. JUSTIFICACIÓN ............................................................................................. 16
4. DELIMITACIÓN Y/O ALCANCE ..................................................................... 17
5. MARCO TEÓRICO ......................................................................................... 18
5.1. ANTECENDENTES ..................................................................................... 18
6. MARCO CONCEPTUAL ................................................................................. 20
6.1. LENGUAJE DE PROGRAMACIÓN ............................................................. 20
6.1.1. LENGUAJES DE PROGRAMACIÓN DE BAJO NIVEL ........................ 21
6.1.2. LENGUAJES DE PROGRAMACIÓN DE ALTO NIVEL ........................ 21
6.2. PARADIGMAS DE PROGRAMACIÓN ........................................................ 21
6.2.1. PROGRAMACIÓN IMPERATIVA ......................................................... 22
6.2.2. PROGRAMACIÓN FUNCIONAL .......................................................... 22
6.2.3. PROGRAMACIÓN LÓGICA ................................................................. 23
6.2.4. PROGRAMACIÓN ORIENTADA A OBJETOS ..................................... 24
6.2.5. PROGRAMACIÓN ORIENTADA A ASPECTOS .................................. 24
6.3. JAVA ........................................................................................................... 25
6.4. SISTEMA DE BASE DE DATOS ................................................................. 26
6.4.1. MYSQL WORKBENCH ......................................................................... 26
6.5. WORLD WIDE WEB.................................................................................... 27
6.6. LENGUAJE HTML ....................................................................................... 27
6.7. JAVASCRIPT .............................................................................................. 28
6.8. CSS ............................................................................................................. 29
6.9. FRAMEWORK ............................................................................................. 29
6.9.1. PRIMEFACES ...................................................................................... 30
6.9.2. JAVA SERVER FACES ........................................................................ 30
6.10. SOFTWARE .............................................................................................. 30
6
6.11. INGENIERÍA DE SOFTWARE .................................................................. 31
6.12. ARQUITECTURA DEL SOFTWARE ......................................................... 31
6.12.1. ARQUITECTURA CLIENTE/SERVIDOR ............................................ 32
6.13. PRUEBAS DEL SOFTWARE .................................................................... 33
7. ENFOQUE METODOLOGICO ........................................................................... 35
7.1. SCRUM ....................................................................................................... 35
8. MODELO TEORICO .......................................................................................... 38
8.1. PLANIFICACIÓN ......................................................................................... 38
8.2. ANÁLISIS .................................................................................................... 44
8.3. REQUISITOS .............................................................................................. 45
8.4. DISEÑO ....................................................................................................... 48
8.4.1. ARQUITECTURA.................................................................................. 53
8.5. CODIFICACIÓN .......................................................................................... 55
8.6. PRUEBAS ................................................................................................... 59
9. RESULTADOS ................................................................................................... 62
10. RECOMENDACIONES .................................................................................... 68
11. CONCLUSIONES ............................................................................................ 69
BIBLIOGRAFÍA ...................................................................................................... 70
ANEXOS ................................................................................................................ 72
7
LISTA DE ILUSTRACIONES
Ilustración 1: Ejemplo lenguaje de programación imperativo C ............................. 22
Ilustración 2: Ejemplo lenguaje de programación funcional Haskel ....................... 23
Ilustración 3: Declaración de hechos en lenguaje Prolog ...................................... 23
Ilustración 4: Declaración de condición en lenguaje Prolog ................................... 24
Ilustración 5: Resultado ejemplo lenguaje de programación Prolog ...................... 24
Ilustración 6: Conversión de código fuente a código objeto en Java ..................... 25
Ilustración 7: Esquema separación de contenidos y presentación ......................... 29
Ilustración 8: Conversión del modelo de análisis en un diseño de software .......... 32
Ilustración 9: Niveles de arquitectura ..................................................................... 33
Ilustración 10: Proceso modelo scrum ................................................................... 37
Ilustración 11: Cronograma .................................................................................... 44
Ilustración 12: Diagrama actividades proceso actual ............................................. 45
Ilustración 13: Diagrama actividades proceso Sistema de Información ................. 48
Ilustración 14: Diagrama relacional ........................................................................ 49
Ilustración 15: Abstracción diagrama relacional ..................................................... 49
Ilustración 16: Codificación entidad encuesta ........................................................ 50
Ilustración 17: Codificación entidad respuesta ....................................................... 50
Ilustración 18: Diagrama de casos de uso ............................................................. 51
Ilustración 19: Mockup para registro de encuestas ................................................ 52
Ilustración 20: Mockup para generación de informes estadísticos ......................... 53
Ilustración 21: Esquema de funcionamiento patrón arquitectónico MVC ............... 54
Ilustración 22: Abstracción diagrama de clases ..................................................... 54
Ilustración 23: Diagrama de clases patrón de diseño estructural facade ............... 55
Ilustración 24: Codificación entorno gráfico muestra estadística ........................... 56
Ilustración 25: Codificación entorno gráfico encuestas de satisfacción ................. 56
Ilustración 26: Prototipo entorno grafico encuestas de satisfacción ....................... 57
Ilustración 27: Prototipo final entorno grafico encuestas de satisfacción ............... 58
Ilustración 28:Login ................................................................................................ 62
Ilustración 29: Entorno grafico para gestionar (CRUD) las propiedades de las
encuestas de satisfacción ...................................................................................... 63
Ilustración 30: Formulario para crear una pregunta y asociar las propiedades de las
encuestas de satisfacción ...................................................................................... 63
Ilustración 31:Entorno grafico para registrar muestra estadística .......................... 64
Ilustración 32: Entorno grafico para registrar la fecha de ....................................... 64
Ilustración 33: Entorno grafico para registrar las respuestas de ............................ 65
Ilustración 34: Entorno grafico para generar un informe estadístico ...................... 66
Ilustración 35: Informe estadístico ......................................................................... 66
Ilustración 36: Mockup de para el acceso al sistema – Login ................................ 75
8
Ilustración 37: Mockup para gestionar las propiedades de las encuestas de
satisfacción y los usuarios ..................................................................................... 75
Ilustración 38:Mockup para el registro de la muestra estadística .......................... 76
Ilustración 39: Mockup para el registro de respuestas y fecha realización encuestas
de satisfacción ....................................................................................................... 76
Ilustración 40: Mockup para la generación de informes estadísticos ..................... 77
Ilustración 41: Login ............................................................................................... 81
Ilustración 42:Administración y gestión propiedades encuestas de satisfacción ... 82
Ilustración 43: Menú de navegación ...................................................................... 82
Ilustración 44: Formulario para crear propiedades encuestas de satisfacción ....... 83
Ilustración 45: Tabla principal de presentación ...................................................... 83
Ilustración 46: Formulario para ver las propiedades de las encuestas de satisfacción
............................................................................................................................... 84
Ilustración 47:Formulario para editar las propiedades de las encuestas de
satisfacción ............................................................................................................ 84
Ilustración 48: Entorno grafico para crear una muestra estadística y registrar las
respuestas de las encuestas de satisfacción ......................................................... 85
Ilustración 49: Formulario para crear una muestra estadística .............................. 85
Ilustración 50: Formulario para registrar la fecha de realización de las encuestas de
satisfacción. ........................................................................................................... 86
Ilustración 51: Entorno grafico para registrar las respuestas de las encuestas de
satisfacción ............................................................................................................ 87
Ilustración 52: Entorno grafico para generar un informe estadístico ...................... 87
9
LISTA DE TABLAS
Tabla 1: Interesados del proyecto .......................................................................... 35
Tabla 2: Aspectos a evaluar estimación Cocomo .................................................. 38
Tabla 3: Resultados estimación Cocomo ............................................................... 39
Tabla 4: Factor de complejidad técnica ................................................................. 39
Tabla 5: Factores ambientales ............................................................................... 40
Tabla 6: Factor de tipos casos de uso ................................................................... 40
Tabla 7: Factor de tipo actores .............................................................................. 40
Tabla 8: Resultados estimación casos de uso ....................................................... 40
Tabla 9: Puntos de función sin ajustar ................................................................... 41
Tabla 10: Factor de ajuste ..................................................................................... 42
Tabla 11: Resultado estimación puntos de función ................................................ 42
Tabla 12: Categorización de las estimaciones ....................................................... 43
Tabla 13: Resultado estimación probabilística ....................................................... 43
Tabla 14: Responsables fases del proyecto .......................................................... 43
Tabla 15: Requisitos funcionales ........................................................................... 46
Tabla 16: Especificación del requisito funcional 01 ................................................ 46
Tabla 17: Especificación del requisito funcional 07 ................................................ 46
Tabla 18:Requisitos no funcionales ....................................................................... 47
Tabla 19: Sprint retrospective ................................................................................ 58
Tabla 20: Validación de campos en toda la plataforma web .................................. 59
Tabla 21: Caso de prueba para RF01 y RF03 ....................................................... 60
Tabla 22: Caso de prueba para RF07 .................................................................... 61
Tabla 23: Resultado informe de pruebas ............................................................... 67
Tabla 24: Compilación resultado informe de pruebas ............................................ 67
Tabla 25: Especificación de requisito funcional 01 ................................................ 72
Tabla 26: Especificación de requisito funcional 02 ................................................ 72
Tabla 27: Especificación de requisito funcional 03 ................................................ 73
Tabla 28: Especificación de requisito funcional 04 ................................................ 73
Tabla 29: Especificación de requisito funcional 05 ................................................ 73
Tabla 30: Especificación de requisito funcional 06 ................................................ 74
Tabla 31: Especificación de requisito funcional 07 ................................................ 74
Tabla 32: Caso de prueba para el requisito funcional 01 y 03 ............................... 78
Tabla 33: Caso de prueba para el requisito funcional 02 ....................................... 79
Tabla 34: Caso de prueba para el requisito funcional 04 ....................................... 79
Tabla 35: Caso de prueba para el requisito funcional 05 ....................................... 79
Tabla 36: Caso de prueba para el requisito funcional 06 ....................................... 80
Tabla 37: Caso de prueba para el requisito funcional 07 ....................................... 80
10
LISTA DE ANEXOS
Anexo A. Especificación de requisitos funcionales ................................................ 72
Anexo B: Mockups plataforma web ........................................................................ 75
Anexo C. Casos de prueba de requisitos funcionales ............................................ 78
Anexo D. Manual de usuario .................................................................................. 81
11
RESUMEN
Este documento presenta el desarrollo de una plataforma web que centraliza e
integra la información de las encuestas de satisfacción de los clientes del Instituto
Nacional de Medicina Legal y Ciencias Forenses Regional Occidente, facilitando la
administración y gestión del proceso de retroalimentación existente y el análisis
estadístico de dicho proceso.
A lo largo del documento se aborda de manera detallada el contexto que involucra
el desarrollo de la plataforma web, los conceptos, modelos teóricos, frameworks,
herramientas tipo software que se utilizaron para el desarrollo de esta, el empleo de
prototipos funcionales y la aplicación del proceso de feedback mediante la
metodología ágil Scrum. A su vez se presenta el desarrollo de las funcionalidades
de la plataforma web, su diseño y la evaluación de pruebas en la misma.
Palabras clave: Instituto Nacional de Medicina Legal, encuetas de satisfacción,
proceso de retroalimentación, software, plataforma web.
12
ABSTRACT
This paper presents the development of a web platform that centralizes and
integrates the information of customer satisfaction surveys from the National Institute
of Legal Medicine and Forensic Sciences Regional Wes, facilitating the
administration and management of the process existing feedback and statical
analysis of such process.
Throughout the document is addressed in detail the context which involves the
development of the web platform, concepts, theoretical models, frameworks and
tools type software used for it is development and use of functional prototypes and
implementation of the feedback process through the Scrum agile methodology. In
turn presents the development of the funtionalities of the web plataform, it is design
and the evaluation of evidence in the same.
Key words: National Institute of Legal Medicine and Forensic Sciences, surveys
satisfaction, process of feedback, software, web platform.
13
INTRODUCCIÓN
Actualmente el Instituto Nacional de Medicina Legal y Ciencias Forenses (INML y
CF) es una entidad de carácter público, la cual presta servicios medico forenses
a la comunidad, como apoyo técnico y científico a la administración de justicia,
dichos servicios están sustentados bajo la investigación científica y el entorno de
calidad, imparcialidad, competitividad y respeto por la dignidad humana.
El Estado colombiano cuenta con dicha entidad, hace 104 años y la misma presta
los servicios médico-legales de: entrega y reconocimiento de cadáveres,
realización de pruebas genéticas, evaluaciones psiquiátricas y psicológicas,
valoraciones médico legales a personas que se encuentran privadas de la
libertad, exámenes toxicológicos y químicos, etc.
Asimismo, el Instituto Nacional de Medicina Legal y Ciencias Forenses es un
organismo de verificación, asesoría y control de pruebas periciales y exámenes
forenses que sean solicitados por los fiscales, jueces, policía judicial, defensoría
del pueblo y demás autoridades competentes en todo el territorio nacional. Estos
toman el papel de clientes para el INML y CF y son los encargados de
proporcionar las solicitudes correspondientes a las personas que están
involucradas en procesos judiciales y/o legales, estos últimos toman el papel de
usuarios para el INML y CF.
Con el propósito de preservar la calidad de los servicios forenses brindados a los
usuarios, el INML y CF posee un proceso de retroalimentación con las
autoridades antes mencionadas, dicho proceso evalúa la satisfacción de estos,
referente a las solicitudes, resultados e informes de los servicios prestados. El
motivo de este proyecto radica en la implementación de una plataforma web que
apoye y facilite dicho proceso de retroalimentación, permitiendo un análisis
estadístico a partir de la gestión y administración de información de las encuestas
de satisfacción.
Todo ello le permite al Instituto Nacional de Medicina Legal y Ciencias Forenses,
ser un centro científico de referencia nacional con capacidades de acreditación y
certificación de laboratorios, pruebas periciales y peritos en medicina legal y
ciencias forenses, practicadas por entidades públicas y privadas.
14
1. SITUACIÓN PROBLEMÁTICA
El actual proceso de retroalimentación entre el Instituto Nacional de Medicina Legal
y Ciencias Forenses Regional Occidente y sus clientes, es llevado a cabo a través
de la aplicación de encuestas de satisfacción, el empleo de la herramienta ofimática
Excel, en este proceso, no facilita la administración y gestión centralizada de las
encuestas de satisfacción ni las respuestas obtenidas en estas, sin embargo, dicha
herramienta posibilita el análisis estadístico de las mismas.
El empleo de este proceso genera retrasos de tiempo en él envió de informes de
satisfacción; además del uso y agotamiento de recursos físicos, tecnológicos,
financieros y de talento humano, los cuales son empleados para la recolección de
información estadística, procesos de monitorización e integración de los resultados
obtenidos.
15
2. OBJETIVOS
2.1. OBJETIVO GENERAL
Implementar una plataforma web que permita el estudio estadístico del nivel de
satisfacción de los clientes del Instituto Nacional de Medicina Legal y Ciencias
Forenses Regional Occidente.
2.2. OBJETIVOS ESPECÍFICOS
• Establecer los requisitos del Instituto Nacional de Medicina Legal y Ciencias
Forenses Regional Occidente para el correcto análisis estadístico de los
niveles de satisfacción de sus clientes en una plataforma web.
• Diseñar un sistema de información para el correcto análisis estadístico.
• Realizar las pruebas necesarias en la plataforma web implementada.
16
3. JUSTIFICACIÓN
Conocer de primera mano la idoneidad, claridad, confiabilidad, completitud y utilidad
de los informes periciales para las autoridades que solicitan un servicio forense, son
aspectos de vital importancia para el Instituto Nacional de Medicina Legal y Ciencias
Forenses Regional Occidente, dicho proceso permite tomar acciones correctivas y/o
preventivas que aseguren la calidad de los servicios forenses prestados y la
optimización de los informes periciales.
Sin embargo, la no centralización de información en el empleo de este proceso
posibilita el riesgo de pérdida de información, por fallos inesperados en los
computadores empleados para tabular la información obtenida de las encuestas de
satisfacción, asimismo se limita la gestión y administración de estas, para la
creación y modificación de encuestas, servicios forenses, muestras estadísticas,
aspectos a evaluar y parámetros de medición asociados a estos.
De esta manera se compromete la seguridad, reserva y veracidad de la información
y no se posibilita la optimización del proceso de análisis estadístico y la integración
de los resultados obtenidos. Todo esto genera retrasos de tiempo en él envió de
informes de satisfacción; agotamiento de recursos físicos, tecnológicos, financieros
y de talento humano, los cuales son empleados para la recolección de información
estadística, procesos de monitorización e integración de los resultados obtenidos.
Con el fin de facilitar el proceso de retroalimentación entre el Instituto Nacional de
Medicina Legal y Ciencias Forenses Regional Occidente y sus clientes, este
proyecto facilita la administración y gestión centralizada de las encuestas de
satisfacción, las respuestas obtenidas en estas y el análisis estadístico de las
mismas, de manera que se permita asegurar y preservar la calidad de los servicios
medico forenses prestados a la comunidad, contribuyendo a los procesos para el
resarcimiento de los derechos de sus usuarios y la no revictimización de estos, con
el fin de mejorar el bienestar social de sus usuarios y su entorno familiar
17
4. DELIMITACIÓN Y/O ALCANCE
El desarrollo del proyecto no incluye la implantación, ni mantenimiento de la
plataforma web, a su vez el desarrollo de esta únicamente está orientado a la
Regional Occidente del Instituto Nacional de Medicina Legal y Ciencias Forenses.
De igual manera, la implementación de la plataforma web no cede la
responsabilidad, ni obligatoriedad de realizar los procesos de recolección y análisis
estadístico de las encuestas de satisfacción, ni el ingreso de datos a la misma.
18
5. MARCO TEÓRICO
5.1. ANTECENDENTES
Partiendo desde la subjetividad que tiene cada persona frente al concepto de
satisfacción, se evidencian algunos estudios realizados sobre este tema, abarcando
distintos problemas fuente y aspectos que intervienen en ella, siendo uno de ellos
el elaborado por Gaitán, et al. [1] quienes logran evaluar el nivel de satisfacción que
presentan los usuarios de las EPS en 2016, tomando en cuenta tres elementos muy
importantes: el factor psicológico, los atributos del servicio prestado y el factor
económico. Todo ello se presenta a través de un Ranking de Satisfacción de EPS
2016.
Sánchez Márquez and Raigoso Castillo [2] desarrollaron un estudio medición de la
satisfacción del usuario que participa en los juegos inter empresariales de
Comfamiliar Risaralda, donde se tuvo en cuenta aspectos, como: necesidades o
valores personales del cliente, aspectos esenciales del producto o servicio,
asistencia al consumidor, proceso de reparación en el caso de que se produzca una
mala experiencia y la personalización del producto o servicio, este estudio permitió
identificar aspectos de vital importancia para la satisfacción del usuario, los cuales
determinan a mediano y corto plazo el compromiso con los juegos empresariales de
Comfamiliar Risaralda.
Jaramillo Pescador and González Suárez [3] desarrollaron un estudio para
determinar el índice de satisfacción laboral de los empleados de la alcaldía
municipal de La Celia Risaralda, con el fin de encontrar mecanismos que ayuden a
mejorar el desempeño de éstos en cada una de sus labores; para ello se identificó
factores influyentes en dicho proceso, tales como: las bonificaciones e incentivos,
el horario laboral, el cumplimiento de metas, actividades con retos permanentes,
salario digno, la retroalimentación de dicho trabajo, las posibilidades de acenso,
entre otros aspectos. Todo ello arrojo resultados de gran importancia, debido a que
los empleados de la alcaldía municipal de La Celia Risaralda presentan resultados
favorables con márgenes de 40% y hasta 80% en estar motivados por los aspectos
anteriormente mencionados.
Ahora bien, desde los artículos y revistas especializadas en ingeniería, se encuentra
un software para el análisis estadístico llamado JavaStatSoft, desarrollado por Wei
19
and Chen [4] los cuales brindaron a dicho software la capacidad para realizar
procesos de probabilidad, líneas de regresión, estimaciones de Kaplan-Meier, test
estadísticos, manejo de datos cualitativos y cuantitativos, entre otros procesos.
Todo ello con datos que ingresa el usuario en formatos de Excel, texto plano e
incluso importaciones de datos de los gestores de bases de datos más populares,
dicho proceso dinamiza el análisis estadístico y permite al usuario modificar las
variables a trabajar, asimismo JavaStatSoft realiza informes de salida en diferentes
formatos, como lo son PDF, HTML, Excel, CSV y RTF facilitando el análisis y uso
de estos para brindar una mayor funcionalidad a otro tipo de sistemas.
A la hora de llevar a cabo los procesos de análisis estadísticos, es realmente
importante tener en cuenta la cantidad y tipo de datos a utilizar, ya que este es un
factor determinante en el tiempo de ejecución de dicho análisis, es por ello Hannes
and Lumley [5] muestran en su artículo “ Best of both worlds: relational databases
and statistics” la integración del Lenguaje R con las bases de datos relacionales, a
partir del desarrollo de análisis estadísticos a tres diferentes conjuntos de datos:
pequeño (142.982 registros), mediano (1.060.060 registros) y grande (9.093.077
registros), con tres métodos distintos: el primero de ellos se realiza por medio de la
utilización de solo el código R, el segundo se realiza solo utilizando sentencias SQL
directamente en la base de datos; y el tercero se realiza utilizando el objeto de datos
virtual, que no es más que la integración y comunicación entre el código SQL y R.
20
6. MARCO CONCEPTUAL
6.1. LENGUAJE DE PROGRAMACIÓN
La definición de lo que es un lenguaje de programación puede llegar a ser un
concepto amplio, subjetivo y variado, para ello se da a entender que el lenguaje no
es más que un modo de expresión que busca comunicar o dar a entender algo en
específico, por otra parte, la programación o más específicamente el hecho de
programar hace referencia al acto de idear, preparar y ordenar las acciones
necesarias para realizar una actividad. Por consiguiente, un lenguaje de
programación es un modo de expresión empleado para especificar un conjunto de
instrucciones a realizar por las computadoras, con el fin de que esta cumpla uno o
muchos procesos en específico.
Aunque, los procesos a cumplir por las computadoras pueden ir desde sumar dos
números hasta calcular la presión atmosférica dentro de un avión, dichos procesos
siempre buscan dar solución a un problema en específico, pero ¿cómo resolver
dichos problemas de manera que la computadora entienda las instrucciones?, para
ello cada lenguaje de programación define un conjunto de reglas para la escritura
de instrucciones. La secuencia de instrucciones puede llegar a considerarse un
texto y este posee un conjunto de símbolos y caracteres que hacen parte un
vocabulario específico de cada lenguaje de programación, a su vez cada lenguaje
de programación establece una sintaxis u orden para su vocabulario, con el fin de
que este tenga un significado o funcionalidad especifica. La funcionalidad, sintaxis
y vocabulario de los lenguajes de programación depende estrictamente de cada uno
de ellos.
En la actualidad existe una importante variedad de lenguajes de programación, y la
clasificación de estos puede llegar a ser extensa, debido a los diferentes aspectos
a tener en cuenta para la creación de aplicaciones a la medida o aplicaciones
estándar. Los lenguajes de programación de bajo nivel y los lenguajes de
programación de alto nivel abarcan la clasificación más general de todos los
lenguajes de programación aún existentes o no.
21
6.1.1. LENGUAJES DE PROGRAMACIÓN DE BAJO NIVEL
Son aquellos lenguajes diseñados para operar el hardware, ya que este únicamente
interpreta instrucciones en sistema binario (0 y 1), estos lenguajes buscan
aprovechar al máximo las características del hardware y por ello son directamente
dependientes de la máquina y diseñados a medida del hardware, el cual busca
potenciar el funcionamiento, administración y gestión de los recursos de un
computador o máquina. Dentro de la clasificación de los lenguajes de programación
de bajo nivel, existen los lenguajes ensambladores, los cuales funcionan a partir de
abreviaturas de instrucciones binarias que la maquina interpreta fácilmente, de esta
forma los lenguajes ensambladores funcionan como un traductor para el lenguaje
máquina.
6.1.2. LENGUAJES DE PROGRAMACIÓN DE ALTO NIVEL
Este tipo de lenguajes son independientes de la máquina y compatibles con
cualquier computador, a su vez este tipo de lenguaje es más cercano al ser humano,
más fácil de aprender, recordar y probar, por ello este tipo de lenguajes son
diseñados para la solución de problemas más complejos, de manera más fácil para
el programador y sin que este se preocupe por el lenguaje de máquina, sin embargo
las instrucciones escritas en un lenguaje de alto nivel no podrán ser ejecutados por
un computador mientras no sean traducidos a lenguaje maquina [6]. Este proceso
de traducción es realizado a través de compiladores o intérpretes, propios de cada
lenguaje de programación.
Los compiladores toman todas las instrucciones dadas por el programador en un
lenguaje de alto nivel, y las traducen a un lenguaje ensamblador y este luego a un
lenguaje máquina con el fin de ser ejecutadas como un todo. Por otro lado, los
intérpretes, toman una instrucción y solo una instrucción a la vez para ser traducida
a un lenguaje ensamblador y luego a un lenguaje máquina y lograr ser ejecutada.
6.2. PARADIGMAS DE PROGRAMACIÓN
La existencia de un único modelo para obtener la solución a un problema, es inútil,
esto es debido a que no es posible unificar todas las diferentes perspectivas de
como abarcar un problema, de si es debido iniciar de manera secuencial, por
módulos o de manera aleatoria, esto en gran medida es debido a los grandes
avances no correspondidos entre el campo del hardware computacional y el
desarrollo de software [7]. Con el propósito de crear uno o varios modelos básicos
22
de construcción de programas, los paradigmas de programación determinan la
forma y estructura con la cual se va a encarar una problemática; la diversidad y
existencia de nuevos paradigmas de programación tiene como fin agilizar, facilitar y
mejorar el proceso de desarrollo de software.
Sin embargo, la adopción de un paradigma para la creación de un programa o
software no garantiza la perfección de este, para ello se deben conocer las
características de los diferentes paradigmas de programación y explotar a fondo las
funcionalidades de cada lenguaje de programación.
6.2.1. PROGRAMACIÓN IMPERATIVA
Es un paradigma que basa su funcionamiento en la secuencia de instrucciones, que
se ejecutan en el orden en el que se escriben, a su vez dicho orden define y modifica
el estado del programa, es importante resaltar que el código máquina está escrito
en forma imperativa, esto hace que el hardware modifique su memoria o estado
interno, conforme sigue los pasos de un programa. La ilustración 1 muestra como
ejemplo el uso del lenguaje de programación C, para determinar la suma de los
valores enteros de 1 a 10, donde usando la sentencia de iteración “for” y el contador
de iteraciones “i”, se almacena la suma parcial de los valores de la iteración en la
variable “total”.
Ilustración 1: Ejemplo lenguaje de programación imperativo C [8]
6.2.2. PROGRAMACIÓN FUNCIONAL
Este paradigma basa su ejecución en el uso de funciones o también llamados
procesos, los cuales se encuentran definidos por el lenguaje de programación, las
funciones simplifican el manejo de variables y el estado de estas durante la
ejecución de un algoritmo. La ilustración 2 muestra como ejemplo el uso del lenguaje
de programación Haskel, para determinar la suma de los valores enteros de 1 a 10,
donde [1...10] es una lista números enteros y sum, es una función no codificada por
el usuario, que puede ser utilizada para sumar cualquier lista de valores.
23
Ilustración 2: Ejemplo lenguaje de programación funcional Haskel [8]
6.2.3. PROGRAMACIÓN LÓGICA
Este paradigma surgió orientado hacia la inteligencia artificial y basa su
funcionamiento en proveer de hechos y reglas al programa, con el fin de que este
realice el proceso necesario para encontrar la solución al problema, los hechos son
la información que me describe la problemática a resolver y las reglas son todas
aquellas condiciones necesarias para que la problemática se cumpla. Este
paradigma posee un conjunto de relaciones, propiedades y funciones entre sus
variables que cambian de acuerdo con el lenguaje de programación a utilizar. La
ilustración 3 toma como ejemplo el uso del lenguaje de programación Prolog, para
determinar quiénes son los suegros de Carmina, donde en primera medida se
establecen los hechos, declarando en este caso que Emilia y Francisco son un
matrimonio y que de igual manera lo son Carmen y Joaquín, Carmina y Paco, Elena
y Federico. A su vez se establece otro hecho importante, declarando que Carmen y
Joaquín son padres de Carmina, de igual modo lo son Emilia y Francisco de Paco,
al igual que Emilia y Francisco de Elena.
Ilustración 3: Declaración de hechos en lenguaje Prolog [8]
Ahora bien, se establece la regla o condición que se debe cumplir para determinar
quiénes son los suegros de Carmina, la ilustración 4 indica que, de cumplirse toda
la regla de la izquierda, (la coma funciona como un ordenador lógico “Y”) para que
la regla de derecha también se cumpla. De este modo al querer saber quiénes son
los suegros de Carmina o de otra persona en específico, se debe cumplir la
condición en la que L es decir Carmina, está asociada a un matrimonio ya declarado
24
y que su pareja X es decir Paco este declarado dentro del hecho padres, todo ello
con el fin de poder determinar los suegros de Carmina.
Ilustración 4: Declaración de condición en lenguaje Prolog [8]
Por último, la ilustración 5 muestra en pantalla la variable “X”, siendo el esposo de
Carmina, al igual que “H” e “I” siendo los suegros de esta, de esta forma se
demuestra que satisfacen la regla o condicional de la ilustración 4.
Ilustración 5: Resultado ejemplo lenguaje de programación Prolog [8]
6.2.4. PROGRAMACIÓN ORIENTADA A OBJETOS
Este paradigma, abarca las problemáticas a resolver de manera distinta, ya que
toma como base el mundo real, exponiendo las características, funcionalidades y
acciones a desarrollar con los elementos más significativos del problema a resolver.
De esta manera el paradigma orientado a objetos busca crear un ambiente de
abstracción para el programador, en el cual se facilite la descripción y codificación
de métodos, atributos, objetos y relación entre estos, que permita vincular la
problemática a solucionar desde una perspectiva más cercana al mundo real.
6.2.5. PROGRAMACIÓN ORIENTADA A ASPECTOS
Este paradigma es una pequeña mejora del paradigma orientado a objetos, por
ende comparte muy de cerca la funcionalidad de esta, con la diferencia que permite
separar de manera adecuada las responsabilidades de cada objeto con el fin evitar
que una funcionalidad o método sea llamado desde cada módulo del programa y
ejecutado en estos, para ello este paradigma, permite implementar la funcionalidad
de forma separada y que esta pueda ser ejecutada en los diferentes módulos del
sistema, solo siendo llamada una vez.
25
6.3. JAVA
Es un lenguaje de programación cuya primera versión surgió en 1991 con el nombre
de OAK, posteriormente en 1995 fue cambiado su nombre al que hasta hoy
conocemos como Java, este es un lenguaje de programación de fácil aprendizaje,
orientado objetos y multiplataforma, es decir que Java trabaja por conjuntos de
objetos de datos que se relacionan entre sí para realizar tareas específicas, además
este lenguaje de programación es independiente del sistema operativo o dispositivo
móvil en que se ejecute, este es un factor de ventaja determinante en cuanto a
compatibilidad frente a otros lenguajes de programación.
La capacidad de Java para ser un lenguaje multiplataforma es proporcionada por el
uso de compiladores e intérpretes, estos cumplen funciones específicas que facilitan
la traducción y ejecución del código fuente. La ilustración 6 presenta un pequeño
modelo de conversión entre el código fuente, el código byte y el código objeto.
La ilustración 6 Identifica al código fuente, como el conjunto de instrucciones que se
desarrollan en el lenguaje Java, este debe ser procesado por un compilador con el
fin de obtener un código byte, el cual utiliza un formato muy cercano al hardware de
las computadoras y a su vez es un código genérico [9] .Posteriormente el intérprete
JVM (Java Virtual Machine) traduce línea a línea el código byte a código objeto o
código máquina, con el fin de que esta ejecute el proceso especificado en el código
fuente.
Ilustración 6: Conversión de código fuente a código objeto en Java [9]
26
Java no es solo un lenguaje de programación: multiplataforma, orientado a objetos
y de fácil aprendizaje, además de ello, Java es robusto, distribuido, seguro, portable,
multitarea y de alto rendimiento, estas características le permiten a Java ser un
lenguaje de programación con un amplio entorno de trabajo.
6.4. SISTEMA DE BASE DE DATOS
Para entrar en contexto con lo que es un sistema de base de datos, se debe tener
claro la diferencia entre lo que es un dato y lo que es información, los datos no son
más que la representación simbólica de un elemento, un objeto, una variable, un
número o cualquier otro hecho o suceso que se desee representar, sin embargo los
datos por si solos no expresan nada, es decir no tienen un sentido, de otra forma la
información tiene un sentido como tal, ya que pretende da a conocer un mensaje en
específico, es por ello que la información alberga un conjunto de datos organizados
y procesados.
Una base de datos nos permite almacenar de manera estructurada un conjunto de
datos, por otro lado, un sistema de base de datos (SBD) está conformado por cuatro
componentes: datos, hardware, software y usuarios [10], estos componentes se
relacionan entre sí y permiten dar funcionalidad a una base de datos,
proporcionando una estructura para almacenar datos, al igual que la administración
y gestión de información de manera que sea tanto practica como eficiente [11].
6.4.1. MYSQL WORKBENCH
Es un sistema gestor de bases de datos (SGBD) de Oracle, que permite la
administración, diseño, gestión y mantenimientos de base de datos MySQL, este
SGBD posee una versión open source, lo cual indica que toda aquella persona,
organización y compañía que desee usar, estudiar, compartir y modificar el código
fuente de MySQL Workbench puede hacerlo sin ninguna retribución legal, siempre
y cuando se mantenga la versión open source.
De igual manera MySQL Workbench es conocido por su alto rendimiento,
confiabilidad, fácil uso y multiplataforma ya que se ejecuta en más de 20
plataformas, dentro de ellas (Linux, Windows, Mac, OS, Solaris), además de ello
este SGBD posee herramientas visuales para crear, ejecutar y optimizar consultas
SQL, administrar usuarios, visualizar indicadores de rendimiento, realizar copias de
seguridad y fácil uso para la migración de datos y tablas de diferentes sistemas
gestores de bases de datos.
27
6.5. WORLD WIDE WEB
La Internet, es una red masiva de redes, es una infraestructura de redes que conecta
a millones de computadores unidos de forma global; formando una sola red, de esta
forma se logra la comunicación entre un computador o cualquier dispositivo
informático capaz de conectarse a internet. World Wide Web, o Red, es una forma
de acceder a información por medio de la Internet. Es un modelo para compartir
información, creado encima de la Internet [12]. Los documentos Web o también
llamados páginas Web pueden estar localizados en diferentes sitios de Internet,
estos sitios son llamados servidores Web. La programación de un entorno Web
pretende brindar un servicio más especializado y personalizado al usuario.
World Wide Web puede definirse básicamente como tres cosas: hipertexto,
multimedia e internet, el primero es un sistema de enlaces que permite ir de una
página a otra, el segundo hace referencia al tipo de contendidos que puede emplear
u operar como lo son: texto, video, sonido, gráficos, entre otros. Por último, se
encuentra la internet, está es la base sobre la que se trasmite toda la información.
En Internet, las comunicaciones concretas se establecen entre dos puntos: uno es
el computador personal desde el que se accede y el otro es cualquiera de los
servidores que hay en la Red y facilitan información. El fundamento de Internet es
el TC/IP, un protocolo de transmisión que asigna a cada máquina que se conecta
un número específico y único en esa red, dicho número es conocido como una
dirección IP como por ejemplo 192.168.0.3 o 10.3.4.230.
6.6. LENGUAJE HTML
Es un lenguaje estandarizado para la creación de páginas Web, el lenguaje HTML
(HyperText Markup Languague, Lenguaje de Marcas de Hipertexto), sirve para
estructurar documentos (títulos, párrafos, listas, tablas, formularios, etc.), pero no
describe la apariencia o el diseño de un documento, sino que ofrece las
herramientas necesarias para dar formato o estructura a la misma [13].
Por otro lado el lenguaje XHTML (eXtensible HyperText Markup Languague,
Lenguaje de Marcas de Hipertexto Extendido,) es una redefinición de HTML versión
4 y cumple de manera general la misma función que su antecesor, con la adición de
unas mejoras y pequeñas modificaciones, entre las que se encuentra mayor
separación del contenido y su presentación, adaptabilidad a las diferentes
28
plataformas: dispositivos móviles, pantallas de computador, impresoras e incluso
dispositivos utilizados por personas discapacitadas.
Para utilizar el servicio Web se necesita una aplicación cliente capaz de entender e
interpretar la información HTML o XHTML, a este tipo de aplicaciones se les conoce
como browsers o navegadores, mediante estos el usuario puede acceder a los
documentos HTML o XHTML y moverse de un documento a otro a través de sus
vínculos o enlaces, a este hecho o acción se le conoce como navegar por Internet.
Para que el navegador encuentre y muestre de forma adecuada la información de
una página web, es necesaria una URL (Uniform Resource Locator, Localizador
Uniforme de Recursos), la cual es una secuencia de caracteres que asigna una
dirección única a cada uno de los recursos de información disponibles en la Internet.
La secuencia de caracteres de una URL combina el protocolo a usar para acceder
a los recursos, el servidor o nombre del computador donde se encuentra guardada
la página web y por último la ruta, esta indica el camino que se debe seguir en el
servidor cuando se accede a la página web [14].
.
6.7. JAVASCRIPT
Se presenta como un lenguaje de programación para aplicaciones de arquitectura
cliente/servidor a través de Internet, esté lenguaje se encuentra insertado en el
código HTML y es utilizado para crear páginas web dinámicas, donde se pueden
incorporar estilos y efectos en los textos, animaciones que se activan al pulsar
botones. De igual manera JavaScript es ampliamente utilizado en aplicaciones
externas, por ejemplo, en documentos PDF, aplicaciones de escritorio (en mayor
medida widgets), mini chats, reproducción de audio y video (webcam) e incluso
juegos completos como el Tetris.
Por otro lado, JavaScript es un lenguaje de programación interpretado, por lo que
no es necesario compilar los programas para ejecutarlos. En otras palabras, los
programas escritos con JavaScript se pueden probar directamente en cualquier
navegador sin necesidad de procesos intermedios.
29
6.8. CSS
Es un lenguaje de diseño gráfico que permite definir el aspecto de cada elemento
HTML o XHTML que interpreta el navegador, sin afectar su contenido; la ilustración
2 permite observar el esquema de independencia entre los contenidos de una
página web y su presentación, donde los contenidos web son todos aquellos
elementos como: párrafos, títulos, tablas, formularios, imágenes y textos
destacados que son el eje central de la información a proyectar en una página web,
por otro lado la presentación de la misma es muy relevante y esta comprende
aspectos tales como el tamaño, posición, color y tipo de letra de los contenidos web.
Ilustración 7: Esquema separación de contenidos y presentación [15]
6.9. FRAMEWORK
Es un entorno de trabajo o marco de trabajo, el cual proporciona una base sobre la
que los desarrolladores de software pueden crear programas para una determinada
plataforma. Por ejemplo, un marco puede incluir de forma predefinida clases y
funciones que pueden ser utilizados para procesar la entrada de datos, gestionar
los dispositivos de hardware, e interactuar con el software del sistema. Esto
simplifica el proceso de desarrollo ya que los programadores no tienen que
reinventar la rueda cada vez que desarrollan una nueva aplicación.
Por ende, un framework se puede considerar como una aplicación genérica
incompleta y configurable a la que podemos añadirle las últimas piezas para
construir una aplicación concreta. Los objetivos principales que persigue un
framework son: acelerar el proceso de desarrollo, reutilizar código ya existente y
promover buenas prácticas de desarrollo con el uso de patrones de diseño [16].
30
6.9.1. PRIMEFACES
Es un framework o librería de componentes visuales para Java Server Faces (JSF)
de código abierto que cuenta con gran cantidad de componentes que facilitan la
creación de aplicaciones web, a su vez posee componentes para exportar datos a
Excel, PDF, Word, crear gráficos estadísticos, envió de mensajes, crear temas
responsive y soporte de Ajax, que agregan funcionalidad y mejoran la apariencia
visual del mismo. Es de resaltar la documentación existente sobre esta librería, al
igual que sus demos donde es posible ver el código HTML y su código en Java.
6.9.2. JAVA SERVER FACES
Es conocido como un framework o estándar de Java que está orientado hacia la
construcción de interfaces de usuario para aplicaciones web que simplifican el
desarrollo de aplicaciones web del lado del servidor [17] [18], Java Server Faces
(JSF) está basada en la plataforma de aplicaciones Java EE, además incluye Java
Server Pages (JSP) como la tecnología que permite hacer el despliegue de las
páginas web en Java [19].Dentro de las inclusiones que posee en su versión 2.2.13
incluye:
• Inspección en tiempo de ejecución en las reglas de navegación.
• Permite fácilmente la creación de una página de error que utiliza
componentes JSF.
• Mejoras en la expresión del lenguaje
• Un conjunto de componentes por defecto para la interfaz de usuario
• Administración de estados
• Un modelo de eventos en el lado del servidor
• Un conjunto de APIs para representar componentes de una interfaz de
usuario y administrar su estado, manejar eventos, validar entrada
6.10. SOFTWARE
Un software es un resultado intangible de una serie de procesos que involucran el
empleo de conocimientos teóricos y prácticos en metodologías, estrategias,
modelos y uso de herramientas para lograr dar solución a un problema específico.
A pesar de que el software es un producto intangible, este está conformado por un
conjunto procesos, procedimientos, sentencias y algoritmos que buscan dar
31
entregar al cliente y sus usuarios la funcionalidad y desempeño requeridos, sin dejar
de lado que este sea sustentable, confiable y utilizable [20].
A pesar de que el uso de software se encuentra asociado a las computadoras y
cualquier dispositivo electrónico, su ejecución y uso no podría ser posible, de no ser
por los distintos archivos de configuración, instalación, manuales de usuario y
manuales técnicos que forman parte del software y son necesarios para que este
opere de manera correcta [21].
6.11. INGENIERÍA DE SOFTWARE
El desarrollo de software no es un proceso que se lleva acabo de la noche a la
mañana y mucho menos, que no se requiere el aprendizaje y uso adecuado de
técnicas, procesos, etapas, metodologías, modelos, herramientas y otros aspectos
necesarios para el desarrollo de un software de calidad, siendo este, uno de los
principios generales de la ingeniera del software, la cual es definida por la IEEE
(Institute of Electrical and Electronics Engineers) como “La aplicación de un enfoque
sistemático, disciplinado, y cuantificable hacia el desarrollo, operación y
mantenimiento de software.”[22]
Asimismo es necesario conocer que el ciclo de vida del software es un “Marco de
referencia que contiene los procesos, las actividades y las tareas involucradas en el
desarrollo, la explotación y el mantenimiento de un producto de software abarcando
la vida del sistema desde la definición de requisitos hasta la finalización de su uso”
[23]. El ciclo vida de un sistema o de un software como tal, posee unas etapas o
fases bien definidas como lo son: planificación, análisis, diseño, implementación,
pruebas, instalación o despliegue, uso y mantenimiento. Dichas fases coexisten con
un nivel de detalle especial de acuerdo con las metodologías de desarrollo de
software existentes.
6.12. ARQUITECTURA DEL SOFTWARE
La arquitectura de un software logra extender la vida útil del mismo, ya que es la
encargada de soportar todo el funcionamiento del software con la capacidad de ser
escalable, flexible a cambios, fiable y seguro. La arquitectura de software es un
factor que se encuentra altamente ligado con el diseño de este, la ilustración 8
incluye el diseño arquitectónico y el diseño de datos como piezas del diseño de
software.
32
Ilustración 8: Conversión del modelo de análisis en un diseño de software [24]
El diseño arquitectónico se centra en la representación detallada de la estructura de
los componentes del software, sus propiedades e interacciones [24], de modo
similar el diseño de datos presenta de manera simple las funcionalidades e
interacciones del software.
6.12.1. ARQUITECTURA CLIENTE/SERVIDOR
Es una arquitectura de red en la que cada ordenador o proceso en la red es cliente
o servidor, normalmente, los servidores son ordenadores potentes dedicados a
gestionar unidades de disco (servidor de ficheros), impresoras (servidor de
impresoras), tráfico de red (servidor de red), datos (servidor de bases de datos) o
incluso aplicaciones (servidor de aplicaciones), mientras que los clientes son
33
máquinas menos potentes y usan los recursos que ofrecen los servidores. La
arquitectura cliente/servidor permite la creación de aplicaciones distribuidas, es
decir, permite separar las funciones según su servicio [25]. La ilustración 9 presenta
los niveles de arquitectura según su servicio.
• Lógica de presentación: se encarga de la entrada y salida de la aplicación
con el usuario. Sus principales tareas son: obtener información del usuario,
enviar la información del usuario a la lógica de negocio para su
procesamiento, recibir los resultados del procesamiento de la lógica de
negocio y presentar estos resultados al usuario.
• Lógica de negocio (o aplicación): se encarga de gestionar los datos a nivel
de procesamiento. Actúa de puente entre el usuario y los datos. Sus
principales tareas son: recibir la entrada del nivel de presentación, interactuar
con la lógica de datos para ejecutar las reglas de negocio que tiene que
cumplir la aplicación (facturación, cálculo de nóminas, control de inventario,
etc.) y enviar el resultado del procesamiento al nivel de presentación.
• Lógica de datos: se encarga de gestionar los datos a nivel de
almacenamiento. Sus principales tareas son: almacenar los datos, recuperar
los datos, mantener los datos y asegurar la integridad de los datos
Ilustración 9: Niveles de arquitectura [25]
6.13. PRUEBAS DEL SOFTWARE
Las pruebas en un software son en gran medida un factor decisivo para que un
software se denomine finalizado y este se entregue al cliente; sin embargo, esto no
implica que el diseño y realización de pruebas sea el correcto y asegure un software
34
de calidad, por este motivo se llegan a denominar las pruebas de software como un
proceso que busca probar la no existencia de errores en un software.
La IEEE (Institute of Electrical and Electronics Engineers) define las pruebas como
“el proceso de operación de un sistema o componente bajo condiciones
especificadas, los resultados se observan y se registran y se realiza una evaluación
de algún aspecto del sistema o componente” [22]. Por otro lado, Glenford J. Myers
define las pruebas como “el proceso de ejecución de un programa o una unidad de
programa discreta, con la intención de encontrar errores” [26]. A su vez Roger S.
Pressman define las pruebas de software como “un elemento crítico para la garantía
de calidad del software y representa una revisión final de las especificaciones, del
diseño y de la codificación” [24].
Dicho de otro modo, las pruebas de software son un proceso implícito, incluido en
el ciclo de vida de este; el proceso de pruebas busca validar la calidad del software
y hallar la mayor cantidad de errores en este, antes de que sea entregado al cliente.
A pesar de que el proceso de pruebas solo se tenga en cuenta cuando se finaliza la
codificación o implementación del software, esta debe llegar a emplearse durante
todo el desarrollo de este, con el fin de no obtener sobrecostos en el presupuesto
del proyecto, limitar su alcance o solicitar más tiempo del esperado.
La variedad de pruebas de software existentes y las técnicas para emplear estas,
son un factor importante para asegurar la calidad y confiabilidad del software, los
aspectos a evaluar en un software pueden llegar a ser infinitos e incluso complejos,
para ello existen dos formas generales de probar un producto software, la primera
de ellas se centra en evaluar si el producto cumple con las funciones para lo cual
fue diseñado [20], la segunda forma consiste en evaluar minuciosamente el
funcionamiento interno del producto evaluando el código fuente del mismo y su
conjunto específico de condiciones, bucles y caminos lógicos [24].
Las formas de probar un producto software, mencionadas anteriormente hacen
referencia a las pruebas de caja negra y caja blanca respectivamente, las pruebas
de software se encuentran categorizadas para evaluar distintos aspectos de este:
comportamiento del sistema, características, componentes, modo en el que trabaja,
arquitectura y capacidad de este tras haber ser modificado. El desarrollo exitoso de
dichas pruebas está directamente ligado con el diseño de casos de prueba, los
cuales son escenarios de prueba específicos creados por el tester, que buscan
hallar la mayor cantidad de errores con la mínima cantidad de esfuerzo y tiempo
posible.
35
7. ENFOQUE METODOLOGICO
Es importante mencionar que la metodología para el desarrollo de software posee
dos grandes divisiones, las cuales logran dar una perspectiva general del enfoque
que se lleva a cabo en los diferentes modelos que posee cada división; la primera
de ellas hace referencia a las metodologías tradicionales en la cual se hace énfasis
en la planificación total y detallada de todos los procesos que intervienen en la
producción del software, la segunda división hace referencia a las metodologías
agiles, las cuales poseen gran capacidad de respuesta a los cambios, brindan un
mayor interés al individuo y su interacción, reconocen en mayor medida un software
que funciona que su documentación exhaustiva e integran al cliente como un
miembro activo en las diferentes etapas del proceso [27].
7.1. SCRUM
El modelo Scrum incorpora las siguientes actividades estructurales: requisitos y/o
requerimientos, análisis, diseño, evolución y entrega. Dentro de cada actividad
estructural, las tareas del trabajo ocurren con un patrón del proceso llamado sprint;
un sprint es el tiempo en el cual se desarrolla un incremento en la funcionalidad del
producto software, la duración de cada sprint no debe superar cuatro semanas.
El desarrollo del modelo scrum y sus actividades estructurales, involucran de
manera activa a los interesados del proyecto, estos poseen un rol especifico
determinante para el desarrollo de este, la tabla 1 presenta la especificación de
estos y el cargo que estos desempeñan en el Instituto Nacional de Medicina Legal
y Ciencias Forenses Regional Occidente.
Tabla 1: Interesados del proyecto
Nombre Cargo Rol
Juan Carlos Medina Director regional Product Owner - Usuarios
Jairo Gonzales Director seccional Product Owner - Usuarios
Olga Cecilia Taborda Coordinadores de grupo Usuarios
Clarena Yepes Encargada de calidad Stakeholder
Geovanny Gomez Facilitador Tic #1 Scrum Master
Rodrigo Sogamoso Facilitador Tic #2
Julian Ventero Ing. Sist y Teleco
Carolina Garzón Ing. Sist y Teleco
Team development
Fiscalía, Policía judicial, Procuradoria,
Defensoria del pueblo, etc.Autoridades judiciales Clientes
36
Existe una estrecha relación entre el cliente, los desarrolladores y el gerente de
proyectos, a los cuales se les llamara de ahora en adelante como: Propietario del
Producto, Equipo de Desarrollo y Scrum Master, respectivamente. Estos, mantienen
una reunión al iniciar de nuevo un sprint, en dicha reunión el propietario del producto
expone los requisitos del producto y la funcionalidad deseada, asignando una
prioridad a cada uno de ellos, de esta manera el equipo de desarrollo crea una lista
de producto o Product backlog, con la cual, posteriormente se desglosarán las
tareas necesarias para cumplir con cada uno de los requisitos del producto y solo
se agregaran a la Sprint Planning Meeting aquellas tareas que se pueden cumplir
dentro del sprint [27].
Dichas tareas son auto asignadas o elegidas por el Scrum Master, quien crea una
lista de sprint o Sprint backlog, en la cual se registran las tareas a realizar, sus
responsables, el tiempo aproximado en desarrollar dicha tarea, el estado en el que
se encuentra y la categoría a la que pertenece la misma.
Una vez definidas las tareas a realizar y las personas encargadas de desarrollarlas
a lo largo del sprint, es necesario cumplir con una breve reunión llamada Daily
Scrum, en la cual los miembros del equipo de desarrollo responden a estas tres
preguntas:
1. ¿Qué he hecho desde la última reunión de sincronización?
2. ¿Qué voy a hacer a partir de este momento?
3. ¿Qué impedimentos tengo o voy a tener?
Las respuestas dadas por los miembros del equipo de desarrollo permiten
evidenciar los obstáculos que presenta cada tarea y es función del Scrum Máster,
motivar, apoyar y dirigir al equipo de desarrollo, para que se pueda cumplir con los
requisitos del producto al finalizar el sprint. De no ser así el Scrum Master junto con
el Equipo de Desarrollo deben exponer los resultados obtenidos frente al Propietario
del Producto y los demás interesados, en una reunión llamada Sprint Review. Una
vez finalizada dicha reunión se procede a realizar un proceso de retroalimentación,
en el cual se plantean las mejoras que se deben realizar, las dificultades que se
tuvieron y los aspectos que se cumplieron en una lista llamada Sprint Retrospective.
37
Ilustración 10: Proceso modelo scrum [28]
Partiendo de los procesos que se llevan a cabo en el ciclo de vida del software y
utilizando el modelo Scrum, se aplicaron de manera teórica y práctica los siguientes
procesos, etapas o fases: planificación, análisis, requisitos, diseño y arquitectura,
codificación y pruebas.
38
8. MODELO TEORICO
8.1. PLANIFICACIÓN
Esta etapa fue enfocada a dos grandes aspectos; uno es la organización y
distribución de tiempo para las demás etapas involucradas durante todo el proceso
de desarrollo de la plataforma web, el otro aspecto a considerar es la
fundamentación de conceptos, está pretende introducir las temáticas, metodologías
y tecnologías a utilizar en el desarrollo de la plataforma web, con el fin de poseer
los conocimientos guías para seguir de manera correcta con el desarrollo de las
demás etapas.
Con el fin de evaluar los recursos de tiempo y talento humano necesarios para el
desarrollo del proyecto, se aplican diferentes técnicas de estimación: Cocomo,
puntos de casos de uso, puntos de función y estimación probabilística de tres
puntos, todo ello con el propósito de obtener una aproximación más no una exactitud
del costo total del proyecto. La tabla 2 presenta los atributos de evaluación de un
modelo intermedio de Cocomo.
Tabla 2: Aspectos a evaluar estimación Cocomo
Atributos Valor Concepto
Normal Precedencia
Normal Arquitectura / Resolución de riesgos
Alto Cohesión del equipo
Alto Madurez del proceso
Normal Flexibilidad de desarrollo
Normal Fiabilidad requerida del software
Alto La documentación se ajusta a las necesidades del ciclo de vida
Normal Tamaño de Base de Datos
Normal Complejidad del producto
Alto Desarrollado para reutilización
Alto Capacidad del analista
Normal Capacidad del programador
Alto Continuidad del personal
Alto Experiencia del lenguaje y heramientas
Normal Experiencia de la aplicación
Normal Experiencia de la plataforma
Normal Restricción de tiempo
Normal Restricción de almacenamiento
Normal Volatilidad de la plataforma
Muy Alto Herramientas de usos del Software
Bajo Desarrollo multisitio
Normal Restricción de tiempo de desarrollo
Proyecto
Controlador
de escala
de software
Controlador
de costos
de software
Producto
Personal
Plataforma
39
Tras realizar los cálculos correspondientes se obtienen los resultados observados
en la tabla 3, estos hacen referencia al total de líneas de código nuevas, reutilizables
y modificadas, a su vez se presenta la cantidad de personas necesarias para el
desarrollo, el tiempo estimado para el mismo y el costo total del proyecto.
Tabla 3: Resultados estimación Cocomo
La estimación de casos de uso evalúa factores técnicos, factores ambientales, tipos
casos de uso y tipos de actores para calcular la cantidad de esfuerzo en horas que
requiere un hombre para desarrollar los puntos de casos de uso. La evaluación de
estos factores se presenta de manera respectiva en las tablas 4, 5, 6 y 7.
Sistema Distribuido 2 4
Tiempo de Respuesta Eficaz 1 1
Eficiencia del Usuario Final 1 3
Procesamiento interno Complejo necesario 1 1
Código reutilizable debe ser un foco 1 3
Facilidad de instalación 0,5 5
Facilidad de Usabilidad 0,5 3
Portabilidad 2 2
Fácil Modificación 1 2
Altamente concurrente 1 1
Personalización de Seguridad 1 1
Dependencia de Terceros 1 4
Entrenamiento Especial 1 1
0,93
Factores TécnicosPeso o
factor
Magnitud
relativa
Total factor de complejidad técnica Tabla 4: Factor de complejidad técnica
Nuevas 100000
Reutilizables 8100
Modificadas 6000
Costo por mes $ 1.200.000
Esfuerzo 0,2 ≈ 1 personas por mes
Tiempo en meses 2,1
Costo Total $ 2.520.000
Lineas de codigo
Desarrollo de la plataforma web
(Elaboración y Construcción)
40
Familiaridad con el modelo de proyecto utilizado. 2 0
Experiencia en la aplicación. 0,5 2
Experiencia en orientación a objetos. 1 4
Capacidad del analista líder. 0,5 3
Motivación. 1 4
Estabilidad de los requerimientos 2 1
Personal part-time -1 4
Dificultad del lenguaje de programación -1 3
1,235
Factores AmbientalesPeso o
factor
Magnitud
relativa
Total factores ambientales Tabla 5: Factores ambientales
Simple 5 4
Medio 10 1
Complejo 15 1
45
Tipo de casos de usoPeso o
factor
Número de
casos de
Total factor casos de uso Tabla 6: Factor de tipos casos de uso
Simple 1 0
Medio 2 0
Complejo 3 3
9
Tipo de actorPeso o
factor
Número de
actores
Total factor de actores Tabla 7: Factor de tipo actores
Teniendo en cuenta una jornada laboral de 6 horas, 20 días hábiles de trabajo en
un mes y un equipo de desarrollo compuesto por 4 personas, se presenta en la tabla
8 los costos del proyecto, correspondiendo a una duración de 3,4 meses y un costo
total de $16.130.000.
Tabla 8: Resultados estimación casos de uso
Factor Técnico 0,93
Factor Ambiental 1,235
Puntos de Casos de Uso Ajustados 45
Poder de los Actores 9
Puntos de casos de uso 62,02
Estimación de esfuerzo 26
Horas de esfuerzo por persona 1612,56 ≈ 1613
Horas de esfuerzo (4 personas) 403,3
Días de trabajo (4 personas) 67,2
Tiempo en meses (4 personas) 3,4
Costo por mes $ 1.200.000
Costo Total $ 16.130.000
Cálculos de estimación
41
Partiendo de la evaluación de un producto software por lo que hace y no por su
tamaño, se emplea la estimación por puntos de función, esta es independiente de
la tecnología empleada y busca medir las funcionalidades de un producto software,
a través de la clasificación y complejidad de sus funciones (tabla 9) y los niveles de
influencia o características con las que debe contar un producto software (tabla 10).
Tabla 9: Puntos de función sin ajustar
Requisito Función Clasificación Complejidad Puntos
Crear las propiedades de encuestas de satisfacción Entrada externa Baja 45
Ver las propiedades de encuestas de satisfacción Salida externa Baja 60
Listar las propiedades de encuestas de satisfacción Salida externa Media 75
Editar las propiedades de encuestas de satisfacción Entrada externa Baja 45
Borrar las propiedades de encuestas de satisfacción Entrada externa Baja 45
Gestionar (CRUD) las propiedades de encuestas de satisfacción Archivo lógico interno Baja 105
Buscar y comparar las propiedades del usuario Consulta externa Baja 4
Buscar y comparar las propiedades del usuario Archivo lógico interno Baja 7
Crear los usuarios del sistema y sus asignar propiedades Entrada externa Baja 3
Ver los usuarios del sistema Salida externa Baja 4
Listar los usuarios del sistema Salida externa Media 5
Editar las propiedades de los usuarios del sistema Entrada externa Baja 3
Borrar los usuarios del sistema Entrada externa Baja 3
Gestión (CRUD) de usuarios Archivo lógico interno Baja 7
Crear fecha realización encuestas de satisfacción Entrada externa Baja 3
Registrar fecha realización encuesta Archivo lógico interno Baja 7
Crear muestra estadística para encuestas de satisfacción Entrada externa Baja 3
Registrar muestra estadística Archivo lógico interno Baja 7
Buscar el servicio forense a evaluar Consulta externa Baja 8
Buscar el servicio forense a evaluar Archivo lógico interno Baja 7
Listar las preguntas asociadas a la encuestas de satisfacción Salida externa Baja 4
Buscar los parámetros de medición asociados a cada pregunta Consulta externa Media 4
Buscar los parámetros de medición asociados a cada pregunta Archivo lógico interno Baja 7
Listar los parámetros de medición asociados a cada pregunta Salida externa Media 5
Registrar respuestas de encuestas de satisfacción Entrada externa Media 4
Crear un periodo de evaluación Entrada externa Baja 3
Listar servicio forense a evaluar Salida externa Baja 4
Listar municipio a evaluar Salida externa Baja 4
Buscar y comparar los parámetros de entrada Consulta externa Media 4
485
Generar informes
estadísticos
Total puntos de función sin ajustar
Gestión (CRUD) de
usuarios
Registrar fecha
realización encuesta
Registrar muestra
estadística
Registrar las respuestas
de las encuestas de
satisfacción
Login - Ingresar al
sistema
Gestionar (CRUD) las
propiedades de
encuestas de
satisfacción
42
Tabla 10: Factor de ajuste
Tras realizar los cálculos correspondientes y habiendo tenido en cuenta un
promedio de 8 horas de trabajo por punto de función, en lenguajes de cuarta
generación (como Java), una jornada laboral de 6 horas, 20 días hábiles de trabajo
en un mes y un equipo de desarrollo compuesto por 4 personas, se obtienen los
resultados observados en la tabla 11, esta hace referencia a los costos del proyecto,
correspondiendo a una duración de 7,7 meses y un costo total de $36.960.000.
Tabla 11: Resultado estimación puntos de función
Con el fin de incluir la variación de costos y duración del proyecto, obtenidas en las
tres estimaciones anteriormente empleadas, se emplea la técnica de probabilidad
estadística de tres puntos, esta técnica categoriza las estimaciones en tres tipos,
optimista, más probable y pesimista (tabla 12), además comprende una desviación
estándar, es decir, un rango de variación para la estimación obtenida.
Factor de Ajuste Puntaje
Comunicación de Datos 4
Procesamiento Distribuido 3
Objetivos de Rendimiento 0
Configuración del equipamiento 1
Tasa de transacciones 1
Entrada de Datos en Línea 4
Interfase con el Usuario 3
Actualización en Línea 3
Procesamiento Complejo 0
Reusabilidad de Código 4
Facilidad de Implementación 1
Facilidad de Operación 0
Instalaciones Múltiples 3
Facilidad de Cambios 4
Total factor de ajuste 31
Puntos de función ajustados 465,6
Promedio horas punto de función en Java 8
Horas de esfuerzo por persona 3724,8 ≈ 3725
Horas de esfuerzo (4 personas) 931,2
Días de trabajo (4 personas) 155,5
Tiempo en meses (4 personas) 7,7
Costo por mes $ 1.200.000
Costo Total $ 36.960.000
Cálculos de estimación
43
Tabla 12: Categorización de las
estimaciones
Tabla 13: Resultado estimación
probabilística
Tras evaluar las variaciones de costo en las estimaciones de Cocomo, casos de uso
y puntos de función, se presenta en la tabla 13 un consolidado de la duración y de
los costos esperados para el proyecto, al igual que sus respectivos rangos de
variación, de esta manera se puede determinar que para el desarrollo de este
proyecto se estima un rango de costos de: $11.593.33 hasta $23.073.333 y un rango
de duración de 3 meses hasta 5 meses.
Con el fin de seguir los principios del modelo Scrum, la tabla 14 da a conocer de
manera general las etapas y/o fases a desarrollar en el proyecto y sus respectivos
responsables, el desarrollo de las fases de planificación, análisis y requisitos
incluyeron el apoyo de funcionarios del área de sistemas del INML que conocían en
cabalidad el proceso de las encuestas de satisfacción, por otro lado, el apoyo de
una persona externa al proceso con dominio en el ámbito de ingeniería del software,
facilito la creación, ejecución y validación de los casos de prueba realizados en
dicha etapa.
Tabla 14: Responsables fases del proyecto
Optimista 2,1 meses
Más probable 3,4 meses
Pesimista 7,7 meses
Optimista $ 2.520.000
Más probable $ 16.130.000
Pesimista $ 36.960.000
Duración
Costos
Duración esperada 3,9 ≈ 4 meses
Desviación estándar 0,99 ≈ 1 mes
Costo esperado 17.333.333$
Desviación estándar 5.740.000$
Cálculos de estimación
Duración
Costos
Fase/Etapa Responsable
Planificación Geovany Gomez - Julian Ventero
Análisis Rodrigo Sogamoso - Julian Ventero
Requisitos Rodrigo Sogamoso - Julian Ventero
Diseño Julian Ventero
Arquitectura Julian Ventero
Codificación Julian Ventero
Pruebas Carolina Garzón - Julian Ventero
Proyecto: Plataforma web satisfacción clientes INML
44
La ilustración 11, presenta un cronograma detallado de las actividades a realizar
durante el desarrollo del proyecto, estas involucran el ciclo de vida del software junto
con la metodología scrum, todo ello con el fin de alcanzar un prototipo funcional al
final de cada sprint y facilitar el proceso de feedback o sprint Retrospective.
Ilustración 11: Cronograma
8.2. ANÁLISIS
Para el desarrollo de esta etapa, se inicia conociendo el contexto en el cual se
involucra el proyecto, conociendo los objetivos y funciones del Instituto Nacional de
Medicina Legal y Ciencias Forenses, su estado actual referente al uso de las TIC
en la Regional Occidente y su visión para la integración de estas con el instituto. A
su vez, se revisa la documentación existente sobre la problemática del proyecto,
con el fin de conocer el proceso actual de las encuestas de satisfacción de los
clientes del INML y CF, identificar y caracterizar los distintos roles que intervienen
en dicho proceso, al igual que identificar el eje central de la problemática del
proyecto, siendo este el empleo de la herramienta ofimática Excel para la
administración y gestión centralizada de las encuestas de satisfacción de los
clientes del INML y CF.
La ilustración 12, representa gráficamente el proceso actual de las encuestas de
satisfacción de los clientes del Instituto Nacional de Medicina Legal y Ciencias
Forenses Regional Occidente, dicho proceso posee dos roles bien definidos, uno
45
de ellos es el coordinador de grupo, el cual está a cargo de integrar los servicios
forenses prestados a la sociedad en un marco de calidad. Por otro lado, el rol
definido como cliente, representa las distintas autoridades como: fiscalía, policía
judicial, defensoría del pueblo, tribunales, jueces y demás autoridades competentes
que requieran la prestación de servicios médico-legales y de ciencias forenses.
Ilustración 12: Diagrama actividades proceso actual
La ilustración 12, presenta actividades como planear la evaluación de la satisfacción
del cliente, en la que el coordinador de grupo, define el tamaño de muestra
estadística y el tipo de encuesta a aplicar, por otra parte al ser aplicada y
diligenciada la encuesta de satisfacción, el coordinador de grupo debe tabular,
analizar y realizar un informe estadístico, con el fin de divulgar los resultados de
evaluación obtenidos, a su vez este, debe consultar e implementar acciones
preventivas, correctivas y/o de mejoramiento de los servicios forenses evaluados.
8.3. REQUISITOS
El desarrollo de esta etapa se inició directamente con el análisis de las encuestas
de satisfacción existentes y sus informes estadísticos, los cuales permitieron inferir
aspectos y funcionalidades de gran importancia para el proyecto. Posteriormente se
validó y recolecto información adicional a través de entrevistas programadas con los
Stakeholders, permitiendo identificar y establecer las funcionalidades con las que
debe cumplir la plataforma web.
46
Tabla 15: Requisitos funcionales
La tabla 15 representa el Product backlog del proyecto, este es un marco de
referencia general de las funciones y tareas a desarrollar, su estimación en horas
(basada en la estimación por puntos de función) y la prioridad de estas. Las tablas
16 y 17, presentan una especificación de los requisitos funcionales del proyecto.
Prioridad del
requisito4 (Alta)
Proyecto: Plataforma web Satisfacción Clientes INML
Identificación del
requisitoRF01
Nombre del
requisitoGestionar (CRUD) las propiedades de encuestas de satisfacción
Descripción del
requisito
El sistema debe permitir al usuario administrador crear, modificar,
eliminar y consultar los criterios, aspectos, parámetros de medición,
preguntas de las encuestas y clientes del INML
Tabla 16: Especificación del requisito funcional 01
Prioridad del
requisito5 (Muy Alta)
Proyecto: Plataforma web Satisfacción Clientes INML
Identificación del
requisitoRF07
Nombre del
requisitoGenerar informes estadísticos
Descripción del
requisito
El sistema debe permitir a los coordinadores de grupo, directores
seccional y regional, ingresar un periodo de fechas (inicio -fin),
municipio y servicio forense, con el fin de obtener el informe
estadístico en formato PDF
Tabla 17: Especificación del requisito funcional 07
Nota: La especificación de cada uno de los requisitos funcionales que hacen parte
del proyecto, se pueden evidenciar en la sección de anexos.
Id Prioridad Nombre Estimación (horas)
RF01 4 Gestionar (CRUD) las propiedades de encuestas de satisfacción 1980
RF02 2 Login - Ingresar al sistema 58,08
RF03 4 Gestion (CRUD) de usuarios 132
RF04 3 Registrar fecha realización encuesta 52,8
RF05 2 Registrar muestra estadística 52,8
RF06 5 Registrar las respuestas de las encuestas de satisfacción 205,92
RF07 4 Generar informes estaditicos 79,2
Proyecto: Plataforma web satisfacción clientes INML
47
Los requisitos no funcionales, están asociados con las características del software
o atributos de calidad, estos son presentados en la tabla 18 y buscan especificar los
criterios con los que debe contar la plataforma web: portabilidad, seguridad,
capacidad de mantenimiento y usabilidad, seguridad.
Tabla 18:Requisitos no funcionales
La ilustración 13 representa un diagrama de actividades ideal, en el cual se
encuentra implementado el sistema de información de las encuestas de satisfacción
de los clientes del INML y CF, dicho diagrama muestra de manera detallada las
actividades que realiza cada rol, donde en primera medida el director de sistemas
debe crear las propiedades de las encuestas de satisfacción, al igual que los
usuarios que tendrán acceso al sistema. Posteriormente el coordinador de grupo
debe aplicar las encuestas de satisfacción e ingresar al sistema, con el fin de
registrar las respuestas dadas por las autoridades judiciales, de manera seguida el
coordinador de grupo, al igual que los directores de seccional y regional, tiene la
opción de generar un informe estadístico, para lo cual se debe ingresar un periodo
de evaluación (fecha inicio y fecha de finalización a evaluar), un municipio y el
servicio forense que fue evaluado por las autoridades.
Id Tipo
RNF01 Seguridad
RNF02 Usabilidad
RNF03Capacidad de mantenimiento
Portabilidad
RNF05 Usabilidad
RNF06 Capacidad de mantenimiento
Los informes estadísticos deben ser mostrados en formato PDF
El patrón arquitectónico MVC (Modelo Vista Controlador) y el patrón de diseño Facade deben
ser empleados en la plataforma web
RNF04El sistema debe ser tipo web y emplear la tecnología Java Server Pages, al igual que los
frameworks Java Server Faces y Primefaces
Capacidad de mantenimiento
Portabilidad
El sistema debe emplear la biblioteca Ireport para la creación de los informes estadísticos
El sistema debe emplear un entorno grafico semejante a los sistemas ya implantados en INML
Proyecto: Plataforma web satisfacción clientes INML
Nombre
El acceso al sistema se dará a través de la cedula del usuario
48
Ilustración 13: Diagrama actividades proceso Sistema de Información
8.4. DISEÑO
El desarrollo de esta fase es de gran importancia para cumplir las funcionalidades
del proyecto, debido a esto, el desarrollo de esta fase tiene como base fundamental
los requisitos funcionales y la especificación de estos. La representación de un
modelo estructural contribuye al soporte de las funcionalidades del sistema y facilita
la abstracción de objetos de datos, atributos y relaciones entre estos, dicho modelo
es presentado en las ilustraciones 14 y 15.
49
Ilustración 14: Diagrama relacional
Ilustración 15: Abstracción diagrama relacional
50
La creación del modelo de base de datos es la representación del diagrama
relacional, las ilustraciones 16 y 17 presentan respectivamente la codificación de las
entidades encuesta y respuesta, dichas entidades poseen un papel de gran
importancia para el proyecto, ya que estas son la base principal para la creación de
informes estadísticos.
Ilustración 16: Codificación entidad encuesta
Ilustración 17: Codificación entidad respuesta
51
La ilustración 18 presenta un diagrama de casos de uso, en el cual se muestra la
integración de la plataforma web al proceso de retroalimentación del INML y CF,
además de esto se presentan las interacciones o actividades que los diferentes
actores realizan con la plataforma web, estas actividades hacen referencia en
primera media a la creación de usuarios y propiedades de las encuestas de
satisfacción (criterios, aspectos, preguntas, servicios forenses, parámetros de
medición) por parte del facilitador TIC del área de sistemas. Posterior a la
planeación, evaluación y aplicación de las encuestas de satisfacción, las
autoridades responden estas y los coordinadores de grupo registran dichas
respuestas en la plataforma web.
Finalmente, la generación de informes estadísticos se encuentra a cargo de los
coordinadores de grupo, el director seccional y el director regional, quienes son los
encargados de establecer el periodo de evaluación, el municipio y el servicio forense
a evaluar.
Ilustración 18: Diagrama de casos de uso
52
Dentro de la fase de diseño es necesario, la creación de prototipos o modelos que
permitan visualizar los entornos funcionales con los cuales interactúa el cliente, por
lo que las ilustraciones 19 y 20 presentan un prototipo general del entorno grafico
del sistema o mockups, en estos se evidencia el registro de encuestas estadísticas
y la generación de informes estadísticos por parte del coordinar de grupo y el
director regional o seccional respectivamente.
Ilustración 19: Mockup para registro de encuestas
53
Ilustración 20: Mockup para generación de informes estadísticos
Nota: La presentación de los mockups correspondientes al desarrollo de cada uno
de los requisitos funcionales que hacen parte del proyecto, se pueden evidenciar en
la sección de anexos.
8.4.1. ARQUITECTURA
La arquitectura de un software es un factor propio y característico de la fase de
diseño, el desarrollo de la fase de arquitectura permite detallar y conocer la
interacción de las propiedades de un objeto de datos (métodos y eventos), esta es
representada a través de un esquema de funcionamiento del patrón arquitectónico
MVC (Modelo Vista Controlador), siendo este el encargado de segmentar los
componentes de una aplicación, con el fin de reutilizar funcionalidades en distintas
partes de la misma aplicación, facilitar el mantenimiento de la misma y asignar
responsabilidades u obligaciones a los componentes que intervienen en la ejecución
de una aplicación software y la interacción con el usuario.
Dicho esquema de funcionamiento se puede evidenciar en la ilustración 21, donde
se observa la segmentación de las capas de datos, negocio y presentación, al igual
que el sentido de ejecución que emplea la plataforma web cuando el cliente accede
al uso de esta.
54
Ilustración 21: Esquema de funcionamiento patrón arquitectónico MVC [29]
La integración del patrón MVC (Modelo Vista Controlador) constituye la
segmentación de las capas de datos, negocio y presentación, la primera capa es
presentada en la ilustración 22 a través de un diagrama de clases y se encuentra
directamente relacionada con el modelo de base datos descrito anteriormente, la
facilidad de comunicación entra las capas uno y dos posee correlación con el patrón
de diseño estructural facade, el cual minimiza la dependencia entre objetos de datos
y es presentado en la ilustración 23 como un modelo de arquitectura de software.
La tercera y última capa hace referencia a la interfaz gráfica con la que interactúa el
usuario.
Ilustración 22: Abstracción diagrama de clases
55
Ilustración 23: Diagrama de clases patrón de diseño estructural facade
8.5. CODIFICACIÓN
El desarrollo de la fase de codificación consiste en llevar a código fuente, los
modelos de arquitectura, datos y requisitos de las fases anteriormente
desarrolladas, el empleo de la plataforma Java Enterprise Edition es esencial para
el desarrollo de esta fase, ya que esta permite crear aplicaciones distribuidas,
robustas y ligeras en lenguaje Java y las propiedades de este para la programación
orientada a objetos, además permite agregar e integrar diferentes componentes
como: EJB (Enterprise Java Beans), JSP (Java Server Pages); JPA (Java
Persistence API), JTA (Java Transaction API).
De otro modo, el empleo de JSF (Java Server Faces) en el desarrollo de esta fase,
facilito la manipulación y visualización de diferentes elementos en los formularios de
la vista, además de la recuperación de valores en cajas y demás elementos de la
interfaz de usuario. Las ilustraciones 24 y 25 presentan la creación de paneles,
botones, cajas de texto, formularios y tablas a través del lenguaje XHTML y los
componentes y frameworks descritos anteriormente.
56
Ilustración 24: Codificación entorno gráfico muestra estadística
Ilustración 25: Codificación entorno gráfico encuestas de satisfacción
57
La creación de prototipos funcionales, son un aspecto característico de la
metodología scrum, la cual es empleada para el desarrollo del proyecto, los avances
realizados durante la fase de codificación se evidencian en las ilustraciones 26 y 27,
estas presentan de manera respectiva el prototipo inicial y prototipo final del entorno
grafico del sistema para la creación de encuestas de satisfacción, su panel de
visualización, edición y el menú correspondiente a los demás factores que hacen
partes del proyecto.
Ilustración 26: Prototipo entorno grafico encuestas de satisfacción
58
Ilustración 27: Prototipo final entorno grafico encuestas de satisfacción
La base fundamental para el continuo mejoramiento de prototipos funcionales se
realizó a través del Sprint Retrospective, este proceso busca establecer las
dificultades y aspectos cumplidos durante cada sprint realizado, con el fin de obtener
un apoyo y/o solución por parte del Scrum Master, la tabla 19 presenta de manera
muy general las dificultades y aspectos cumplidos a lo largo del desarrollo del todo
el proyecto.
Tabla 19: Sprint retrospective
Feedback / Sprint Retrospective
Aspectos cumplidosEspecificación de requisitos funcionales
Corrección diagrama relacional
Modificar los nombres de la interfaz de usuario a través del bundle
Detallar diagrama actividades
Empleo de componentes de Primefaces
Creación de templates para la separación de contenido
Validación de campos en interfaz de usuario
Dificultades
Precisar la diferencia entre usuarios y clientes del INML
Manejo de datos para listar las propiedades de un objeto
Consultas a través del patrón de diseño Facade
Diferenciar componentes JSP, HTML , XHTML y Primefaces en la vista
Comparación de datos para el Login
Solución de errores entre la vista y el controlador
Integración de Ireport con Netbeans
59
8.6. PRUEBAS
La calidad de un producto software no puede asegurarse en un 100% (es imposible),
sin embargo, si es posible producir casos de prueba que identifiquen errores
funcionales en la plataforma web, el desarrollo de esta fase tiene como eje central
la identificación de errores funcionales en la plataforma web y la validación de
campos de la misma en toda la plataforma web, esta es presentada en la tabla 20 y
comprueba el estado de las diferentes cajas de texto, los tipo de datos que admiten,
el tipo de dato para el que fue diseñado y la reacción de los botones al clic del
usuario.
Validación de campos y botones Resultado
Los campos de tipo fecha solo permiten el formato correspondiente (mm-dd-yyyy) ✓
Los campos de tipo texto solo permiten el ingreso del mismo ✗
Los campos de tipo entero solo permiten el ingreso de números ✓
Los campos para el ingreso de correo electrónico solo son validos si emplea el arroba "@" ✗
Los campos para el ingreso de contraseñas, ocultan sus valores ✓
Los campos de tipo texto permiten el ingreso de tildes ✓
Todos los menús de selección reaccionan a una función o clic del usuario ✓
Todos los botones reaccionan a una función o clic del usuario ✓
Tabla 20: Validación de campos en toda la plataforma web
Con el fin de evaluar los requisitos funcionales de la plataforma web desarrollada,
se diseñan casos de prueba con escenarios específicos y probables de empleo por
todo tipo de usuarios, desde usuarios con poco dominio de escenarios
sistematizados (computadores, sistemas de información, páginas web, etc.) hasta
usuarios con altas destrezas en escenarios sistematizados.
La tabla 21 especifica un caso de prueba para evaluar la gestión (CRUD) de las
propiedades de las encuestas de satisfacción y la gestión (CRUD) de los usuarios,
en dicho caso de prueba se determinan diferentes flujos de entrada con el fin de
evaluar las posibles acciones a realizar por los usuarios en la plataforma web,
asimismo se identifican las salidas esperadas y las salidas obtenidas, esta última
hace referencia al resultado real que entrega la plataforma web.
60
Tabla 21: Caso de prueba para RF01 y RF03
Requisito Id Caso de prueba CP01
Operación Salida obtenida
No es posible, solo se sale dando clic
en el botón cancelar ó en la x del
formulario
No esposible ingresar texto
Se cierra el formulario sin registrar
Presenta alerta de que el registro se
guardo correctamente y mostrar el
registro en la tabla
Presentar alerta de que el registro se
guardo correctamente y mostrar el
registro en la tabla
No es posible, solo se sale dando clic
en el botón cancelar ó en la x del
formulario
Se cierra el formulario sin registrar
No se permite, el botón de editar se
encuentra deshabilitado
Presentar alerta de que el registro se
guardo correctamente y mostrar el
registro en la tabla
No es posible, solo se sale dando clic
en el botón cancelar ó en la x del
formulario
Presentar alerta de que el registro se
edito correctamente
No permitir la selección de más de una
fila
No se permite, el botón se encuentra
deshabilitado
Presentar una alerta de que el registro
se borro correctamente
Presentar una alerta de que el registro
se borro correctamente
Error al ingresar dato
Seleccionar varios registros de la tabla para ver sus
propiedades
Diligenciar de manera correcta el formulario
Alerta de error, dato duplicado
Actualizar un registro con un dato ya existente en
otro registro
Salirse del formulario dando clic en cualquier otro
sitio de la plataforma
Ingresar un campo de texto vacío
Salirse del formulario dando clic en cualquier otro
sitio de la plataforma
Recargar la pagina con los campos de texto llenos
No seleccionar ningún registro de la tabla para
editar sus campos
No es posible, solo se sale dando clic
en el botón cancelar ó en la x del
formulario
Salirse del formulario dando clic en cualquier otro
sitio de la plataforma
Proyecto
Entrada esperada
El sistema debe permitir al usuario administrador crear, modificar, eliminar y ver los criterios, aspectos, parámetros de medición,
preguntas, encuestas, regionales, seccionales y clientes del INML y CF
Gestionar (CRUD) las propiedades de encuestas de satisfacción -
Gestion (CRUD) de usuarios
Salida esperada
Plataforma web Satisfacción clientes INML
Presentar un mensaje de alerta
indicando que existe un campo vacío
Presentar un mensaje de alerta
indicando que existe un campo vacío
Presentar el formulario de creación
vacío, presentar alerta de registro
exitoso y mostrar el nuevo registro en
la tabla
Descripción
Crear
Ingresar un campo de texto vacío
Seleccionar una fila de la tabla y crear un registro
Crear un registro con un dato ya existente
Presentar alerta de que el registro se
guardo correctamente y mostrar el
nuevo registro en la tabla
Presentar el formulario de creación
vacío, presentar alerta de registro
exitoso y mostrar el nuevo registro en
la tabla
En un campo de fecha ingresar texto
Recargar la pagina con los campos de texto llenos
No permitir la selección de más de una
fila
No permitir la selección de más de una
fila
Borrar
Editar
Presentar un mensaje de alerta
indicando que existe un campo vacío
Presentar un mensaje de alerta
indicando que existe un campo vacío
Se cierra el formulario sin registrar
No permitir
Alerta de error, dato duplicado
No es posible, solo se sale dando clic
en el botón cancelar ó en la x del
formulario
Presentar alerta de que el registro se
edito correctamenteEditar de manera correcta los campos de un registro
Borrar múltiples filas
Presentar una alerta de que el registro
se borro correctamente
Ver
No es posible, solo se sale dando clic
en el botón cancelar ó en la x del
formulario
Se cierra el formulario sin registrar
No permitir
No permitir la selección de más de una
fila
Presentar una alerta de que el registro
se borro correctamenteEliminar un registro con una llave foránea asociada
Seleccionar una registro de la tabla y borrarlo
Borrar un registro sin ser seleccionado
61
De modo similar la tabla 22 presenta el caso de prueba diseñado para evaluar la
generación de informes estadísticos, donde se especifican los posibles flujos de
entrada, la salida esperada y el resultado real que arroja la plataforma web.
Tabla 22: Caso de prueba para RF07
Nota: La presentación de los casos de pruebas correspondientes al cumplimiento
de cada uno de los requisitos funcionales que hacen parte del proyecto, se pueden
evidenciar en la sección de anexos.
Los resultados obtenidos de los casos de prueba descritos anteriormente, son
expuestos en la sección de resultados, donde se presenta el cumplimiento de los
requisitos funcionales con la implementación de la plataforma web y se da a conocer
el informe de pruebas.
Requisito Id Caso de prueba CP06
Operación Resultado Real
No es posible, solo se sale dando clic
No deja ingresar texto
Se cierra el formulario sin registrar
Entrada esperada Salida esperada
Registrar
Ingresar un campo de texto vacíoPresentar un mensaje de alerta
indicando que existe un campo vacío
Presentar un mensaje de alerta
indicando que existe un campo vacío
Salirse del formulario dando clic en cualquier otro No es posible, solo se sale dando clic
En un campo de fecha ingresar texto Error al ingresar dato
Recargar la pagina con los campos de texto llenos Se cierra el formulario sin registrar
Diligenciar de manera correcta el formularioGenerar la descarga en formato PDF
del informe estadístico
Generar la descarga en formato PDF
del informe estadístico
Proyecto Plataforma web Satisfacción clientes INML
Generar informes estadísticos
DescripciónEl sistema debe permitir a los coordinadores de grupo, directores seccional y regional, ingresar un periodo de fechas (inicio -fin),
municipio y servicio forense, con el fin de obtener el informe estadístico en formato PDF
62
9. RESULTADOS
Con el fin de preservar la integridad y seguridad de los datos, la plataforma web
incluye la verificación de acceso a usuarios a través de un Login, el cual es
presentado en la ilustración 28 y da cumplimiento al requisito no funcional de
seguridad en el que el acceso al sistema se dará a través de la cedula del usuario.
Ilustración 28:Login
Posterior al acceso del sistema, la plataforma web presenta al administrador del
sistema el entorno grafico para gestionar las propiedades de las encuestas de
satisfacción, este posee un menú de navegación principal en el costado izquierdo y
una tabla principal para la presentación de las propiedades de las encuestas de
satisfacción creadas, todo ello se evidencia en la ilustración 29.
63
Ilustración 29: Entorno grafico para gestionar (CRUD) las propiedades de las
encuestas de satisfacción
De manera similar la ilustración 30 presenta el formulario para crear y asociar las
distintas propiedades de las encuestas de satisfacción, no obstante, cabe destacar
que las operaciones de ver, editar y borrar están asociadas a cada propiedad de las
encuestas de satisfacción.
Ilustración 30: Formulario para crear una pregunta y asociar las propiedades de
las encuestas de satisfacción
64
Las ilustraciones 31, 32 y 33 presentan de manera respectiva el entorno grafico
para los usuarios del sistema con rol de cooridanores de grupo, dichos usuarios son
los encargados de crear una muestra estadística (ilustración 30); registrando la
muestra planeada, la fecha de creación de esta y asociando dichos datos a un
servicio forense y su respectiva encuesta de satisfacción. De manera similar la
ilustración 31 presenta el entorno grafico para registrar la fecha de realización de
las encuestas de satisfacción, el servicio forense evaluado la seccional a la que
pertenece y la autoridad evaluadora.
Ilustración 31:Entorno grafico para registrar muestra estadística
Ilustración 32: Entorno grafico para registrar la fecha de
realización encuestas de satisfacción
65
La relación existente entre las ilustraciones 32 y 33 es de vital importancia, ya que
el registro de datos de la primera ilustración da origen a la presentación de las
preguntas asociadas a la encuesta de satisfacción (seleccionada previamente), al
mismo tiempo presenta los parámetros de medición asociados a cada pregunta,
seleccionando cada una de estas.
Ilustración 33: Entorno grafico para registrar las respuestas de
las encuestas de satisfacción
La ilustracion 34 presenta el entorno grafico para los usuarios del sistema con rol
de cooridanores de grupo, director seccional y director regional, dichos usuarios son
los encargados de establecer los parametros de entrada para crear un informe
estadistico, seleccionado el servico forense, municipio y periodo de evaluación
(fecha inicio y fecha de finalización) deseados.
Posterior a ello, se obtiene en formato PDF el informe estadistico presentado en la
ilustración 35, en el cual se evidencia la cantidad de encuentas y preguntas
realizadas, las preguntas anuladas y un consolidado de los parametros de medición
respondidos en cada pregunta.
66
Ilustración 34: Entorno grafico para generar un informe estadístico
Ilustración 35: Informe estadístico
67
La tabla 23 presenta de manera detallada el informe de pruebas realizadas a la
plataforma web, en este se puede evidenciar las operaciones cuyo resultado no fue
satisfactorio, el caso de prueba al que pertenecen y el requisito que evalúan, sin
embargo, solo las operaciones relacionadas con el caso de prueba 04, tienen un
impacto de ejecución bajo para el usuario final.
Tabla 23: Resultado informe de pruebas
La tabla 24 muestra de manera general la cantidad de casos de prueba efectuados
y los resultados satisfactorios o no de los mismos, en este sentido se puede inferir
que el 100% de las funciones del sistema operan de manera correcta, sin embargó
el 5% de las funciones del sistema tienen un impacto de ejecución bajo para el
usuario final y deben seguir una ruta especifica de ejecución para no interrumpir el
proceso de registro que se esté realizando.
Tabla 24: Compilación resultado informe de pruebas
Id Caso de
pruebaRequisito Operación Salida esperada Resultado Real
Crear un registro con un dato
ya existente
Alerta de error,
dato duplicado
Presenta alerta de que el registro se
guardo correctamente y mostrar el
registro en la tabla, sin embargo el
registro creado posee un id diferente
al dato existente
Actualizar un registro con un
dato ya existente en otro
registro
Alerta de error,
dato duplicado
Presenta alerta de que el registro se
guardo correctamente y mostrar el
registro en la tabla, sin embargo el
registro creado posee un id diferente
al dato existente
Recargar la pagina con los
registros de preguntas en la
tabla y habiendo
seleccionado un parametro
de medicion como respuesta
Se restaure la
tabla con los
registros de las
preguntas
Error debido a que la clave de fila de
la tabla no posee un valor como
variable
Diligenciar de manera
correcta el formulario
Presentar alerta
de que el registro
se guardo
correctamente
No presenta alerta de nigun tipo, sin
emabrgola respuesta queda guardada
correctamente
Proyecto Plataforma web Satisfacción Clientes INML
Registrar las
respuestas de las
encuestas de
satisfacción
CP04
Gestionar (CRUD)
las propiedades de
encuestas de
satisfacción
Gestion (CRUD)
de usuarios
CP01
6 40 4
Proyecto: Plataforma web Satisfacción Clientes INML
Resultado no satisfactorioResultado
satisfactorio
Total de casos
de prueba
realizados
Total de operaciones y/o esecenarios probados
68
10. RECOMENDACIONES
• Tras el desarrollo y adaptación de futuras versiones de la plataforma web
implementada, integrar a la misma los procesos de recolección de encuestas
de satisfacción, con el fin de incluir de manera activa a las autoridades que
integran el proceso de retroalimentación con el Instituto Nacional de Medicina
legal y Ciencias Forenses Regional Occidente.
• Impulsar el uso de la plataforma web a nivel nacional, con el fin de integrar
los resultados de las encuestas de satisfacción a nivel nacional y obtener
indicadores estadísticos que permitan establecer fortalezas y debilidades del
Instituto Nacional de Medicina legal y Ciencias Forenses y demás
autoridades competentes en todo el territorio nacional que solicitan servicios
a esta entidad.
69
11. CONCLUSIONES
• La creación y documentación de modelos teorico-practicos facilitó la
ejecución de cada una de las fases de desarrollo de software consideradas
para la realización de la plataforma web implementada
• La realización de pruebas de caja negra permitió establecer el cumplimiento
de los requisitos funcionales de la plataforma web implementada
• Si bien la documentación existente sobre los procesos de recolección,
tabulación y análisis estadístico, posibilitan establecer los requisitos de la
plataforma web, el reconocimiento y caracterización de las encuestas de
satisfacción existentes, el entorno que involucra a los usuarios en el proceso
de retroalimentación y la identificación de los roles que intervienen en el
proceso, son factores claves para establecer los requisitos del Instituto
Nacional de Medicina Legal y Ciencias Forenses Regional Occidente.
• La evaluación de los datos existentes, la especificación de requisitos y el
empleo de frameworks, modelos de datos, modelos arquitectónicos y
modelos de interfaz proporcionan los fundamentos teorico-practicos
necesarios para el correcto diseño y creación de un sistema de información
que apoya y garantiza las funcionalidades de la plataforma web
implementada.
• La planeación y diseño previo de las pruebas funcionales en la plataforma
web implementada facilitaron la identificación de posibles escenarios y
operaciones a ejecutar por los usuarios del sistema, simplificaron la
caracterización de errores funcionales hallados y proporcionaron un marco
de referencia para el cumplimiento de pruebas funcionales en la plataforma
web y sus futuras adaptaciones.
• Pese a que una sola persona desempeño todos los roles del equipo de
desarrollo, la implementación de la metodología Scrum, la planificación del
ciclo de vida del software, el apoyo del INML y CF, el empleo de prototipos
funcionales y la aplicación del proceso de feedback, facilitaron el desarrollo
de las etapas de análisis, requisitos, diseño, arquitectura, codificación y
pruebas en la plataforma web implementada.
70
BIBLIOGRAFÍA
[1] C. A. M. Gaitán, G. E. Morales, and E. A. Barney, "Sistema de Evaluación y
Calificación de Actores: Ranking de Satisfacción EPS 2016." [2] E. Sánchez Márquez and L. K. Raigoso Castillo, "Medición de la satisfacción
del usuario que participa en los juegos interempresariales de Comfamiliar Risaralda," Pereira: Universidad Tecnológica de Pereira, 2015.
[3] N. J. Jaramillo Pescador and J. E. González Suárez, "Nivel de satisfacción
laboral de los empleados de la Alcaldía Municipal de la Celia Risaralda," Universidad Tecnológica de Pereira, 2010.
[4] W. H. Wei and G. J. Chen, "JavaStatSoft: design patterns and features,"
Computational Statistics, vol. 23, pp. 235-251, 2007. [5] M. Hannes and T. Lumley, "Best of both worlds relational databases and
statistics.pdf," 2013. [6] J. J. R. Sala, Introducción a la programación. Teoría y práctica vol. 3. [7] F. Durán, F. Gutiérrez, and E. Pimentel, Programación orientada a objetos
con Java: Editorial Paraninfo, 2007. [8] F. A. M. Gil and G. M. Quetglás, Introducción a la programación estructurada
en C: Universidad de València Servicio de Publicaciones, 2003. [9] J. Dean, Introducción a la programación con Java: McGraw-Hill
Interamericana, 2009. [10] C. J. Date, Introducción a los sistemas de bases de datos: Pearson
Educación, 2001. [11] A. Silberschatz, H. F. Korth, S. Sudarshan, and F. S. Pérez, Fundamentos de
bases de datos: McGraw-Hill, 2006. [12] N. Snell, Internet: ¿qué hay que saber?: Prentice-Hall, 1995. [13] E. Vértice, Diseño básico de páginas web en HTML: Editorial Vértice, 2009. [14] S. M. Solís, La web semántica: Lulu. com, 2007. [15] J. E. Pérez, "Introducción a XHTML," ed.
71
[16] J. J. Gutiérrez, "¿ Qué es un framework web?," 12/05/2014 2014. [17] D. Geary and C. S. Horstmann, Core JavaServer Faces: Pearson Education,
2010. [18] E. Burns and N. Griffin, JavaServer Faces 2.0, The Complete Reference:
McGraw-Hill, Inc., 2010. [19] S. Rios, JSF 2+ Hibernate 4+ Spring 4: PrimeFaces 5 with JAX-WS y EJB’S:
Sergio Rios, 2015. [20] I. Sommerville, Software Engineering: Pearson Education, 2011. [21] I. Sommerville and M. I. A. Galipienso, Ingeniería del software: Pearson
Educación, 2005. [22] "IEEE Standard Glossary of Software Engineering Terminology," IEEE Std
610.12-1990, pp. 1-84, 1990. [23] "ISO/IEC/IEEE Standard for Systems and Software Engineering - Software
Life Cycle Processes," IEEE Std 12207-2008, pp. c1-138, 2008. [24] R. S. Pressman and R. O. Martín, Ingeniería del software: un enfoque
práctico: McGraw-Hill, 2003. [25] S. Luján Mora, Programación de aplicaciones web: historia, principios
básicos y clientes web: Editorial Club Universitario, 2002. [26] G. J. Myers, C. Sandler, T. Badgett, and T. M. Thomas, The Art of Software
Testing: Wiley, 2004. [27] E. H. Uribe and L. E. V. Ayala, "Del manifiesto ágil sus valores y principios,"
Scientia et technica, vol. 1, 2007. [28] I. Torras, "Scrum Documentation.pdf," 2015. [29] J. M. O. Cassá and P. A. O. D. Ufano, Programación web en Java: Ministerio
de Educación, 2012.
72
ANEXOS
Anexo A. Especificación de requisitos funcionales
Tabla 25: Especificación de requisito funcional 01
Tabla 26: Especificación de requisito funcional 02
Prioridad del
requisito
Descripción del
requisito
El sistema debe permitir al usuario administrador crear,
modificar, eliminar y consultar los criterios, aspectos,
parámetros de medición, preguntas de las encuestas y clientes
Identificación del
requisitoRF01
Gestionar (CRUD) las propiedades de encuestas de satisfacciónNombre del
requisito
4 (Alta)
Proyecto: Plataforma web satisfacción clientes INML
Prioridad del
requisito
Proyecto: Plataforma web satisfacción clientes INML
RF02
Login - Ingresar al sistema
El sistema debe permitir un control de acceso a los usuarios por
medio de la cedula del mismo
Descripción del
requisito
2 (Baja)
Identificación del
requisitoNombre del
requisito
73
Tabla 27: Especificación de requisito funcional 03
Tabla 28: Especificación de requisito funcional 04
Tabla 29: Especificación de requisito funcional 05
Prioridad del
requisito
Proyecto: Plataforma web satisfacción clientes INML
RF03Identificación del
requisito
4 (Alta)
Gestión (CRUD) de usuarios
El sistema debe permitir al DBA crear, modificar, eliminar y
consultar los usuarios que tendrán acceso al sistema y asociar
permisos de funcionalidad a los mismos
Nombre del
requisito
Descripción del
requisito
Prioridad del
requisito
Identificación del
requisitoNombre del
requisito
Descripción del
requisito
Proyecto: Plataforma web satisfacción clientes INML
RF04
Registrar fecha realización encuesta
Cada vez que se registre una encuesta, el sistema debe permitir
registrar a los coordinadores de grupo la fecha en que fue
diligenciada la encuesta de satisfacción por el cliente
3 (Medio)
Prioridad del
requisito
Identificación del
requisito
2 (Baja)
RF05
Cuando se vaya a registrar una encuesta por primera vez, el
sistema debe permitir registrar a los coordinadores de grupo
una muestra estadística ejecutada, el servicio forense a
Registrar muestra estadística
Proyecto: Plataforma web satisfacción clientes INML
Descripción del
requisito
Nombre del
requisito
74
Tabla 30: Especificación de requisito funcional 06
Tabla 31: Especificación de requisito funcional 07
Prioridad del
requisito
Identificación del
requisitoNombre del
requisitoRegistrar las respuestas de las encuestas de satisfacción
Proyecto: Plataforma web satisfacción clientes INML
RF06
El sistema debe permitir a los coordinadores de grupo registrar
las respuestas de las encuestas de satisfacción dadas por los
clientes (autoridades judiciales)
5 (Muy Alta)
Descripción del
requisito
Prioridad del
requisito
Proyecto: Plataforma web satisfacción clientes INML
5 (Muy Alta)
Identificación del
requisitoRF07
Nombre del
requisitoGenerar informes estadísticos
Descripción del
requisito
El sistema debe permitir a los coordinadores de grupo,
directores seccional y regional, ingresar un periodo de fechas
(inicio -fin), municipio servicio forense, con el fin de obtener
el informe estadístico en formato PDF
75
Anexo B: Mockups plataforma web
Ilustración 36: Mockup de para el acceso al sistema – Login
Ilustración 37: Mockup para gestionar las propiedades de las encuestas de
satisfacción y los usuarios
76
Ilustración 38:Mockup para el registro de la muestra estadística
Ilustración 39: Mockup para el registro de respuestas y fecha realización encuestas de satisfacción
77
Ilustración 40: Mockup para la generación de informes estadísticos
78
Anexo C. Casos de prueba de requisitos funcionales
Tabla 32: Caso de prueba para el requisito funcional 01 y 03
Requisito Id Caso de prueba CP01
Operación Salida obtenida
No es posible, solo se sale dando clic
en el botón cancelar ó en la x del
formulario
No esposible ingresar texto
Se cierra el formulario sin registrar
Presenta alerta de que el registro se
guardo correctamente y mostrar el
registro en la tabla
Presentar alerta de que el registro se
guardo correctamente y mostrar el
registro en la tabla
No es posible, solo se sale dando clic
en el botón cancelar ó en la x del
formulario
Se cierra el formulario sin registrar
No se permite, el botón de editar se
encuentra deshabilitado
Presentar alerta de que el registro se
guardo correctamente y mostrar el
registro en la tabla
No es posible, solo se sale dando clic
en el botón cancelar ó en la x del
formulario
Presentar alerta de que el registro se
edito correctamente
No permitir la selección de más de una
fila
No se permite, el botón se encuentra
deshabilitado
Presentar una alerta de que el registro
se borro correctamente
Presentar una alerta de que el registro
se borro correctamente
Error al ingresar dato
Seleccionar varios registros de la tabla para ver sus
propiedades
Diligenciar de manera correcta el formulario
Alerta de error, dato duplicado
Actualizar un registro con un dato ya existente en
otro registro
Salirse del formulario dando clic en cualquier otro
sitio de la plataforma
Ingresar un campo de texto vacío
Salirse del formulario dando clic en cualquier otro
sitio de la plataforma
Recargar la pagina con los campos de texto llenos
No seleccionar ningún registro de la tabla para
editar sus campos
No es posible, solo se sale dando clic
en el botón cancelar ó en la x del
formulario
Salirse del formulario dando clic en cualquier otro
sitio de la plataforma
Proyecto
Entrada esperada
El sistema debe permitir al usuario administrador crear, modificar, eliminar y ver los criterios, aspectos, parámetros de medición,
preguntas, encuestas, regionales, seccionales y clientes del INML y CF
Gestionar (CRUD) las propiedades de encuestas de satisfacción -
Gestion (CRUD) de usuarios
Salida esperada
Plataforma web Satisfacción clientes INML
Presentar un mensaje de alerta
indicando que existe un campo vacío
Presentar un mensaje de alerta
indicando que existe un campo vacío
Presentar el formulario de creación
vacío, presentar alerta de registro
exitoso y mostrar el nuevo registro en
la tabla
Descripción
Crear
Ingresar un campo de texto vacío
Seleccionar una fila de la tabla y crear un registro
Crear un registro con un dato ya existente
Presentar alerta de que el registro se
guardo correctamente y mostrar el
nuevo registro en la tabla
Presentar el formulario de creación
vacío, presentar alerta de registro
exitoso y mostrar el nuevo registro en
la tabla
En un campo de fecha ingresar texto
Recargar la pagina con los campos de texto llenos
No permitir la selección de más de una
fila
No permitir la selección de más de una
fila
Borrar
Editar
Presentar un mensaje de alerta
indicando que existe un campo vacío
Presentar un mensaje de alerta
indicando que existe un campo vacío
Se cierra el formulario sin registrar
No permitir
Alerta de error, dato duplicado
No es posible, solo se sale dando clic
en el botón cancelar ó en la x del
formulario
Presentar alerta de que el registro se
edito correctamenteEditar de manera correcta los campos de un registro
Borrar múltiples filas
Presentar una alerta de que el registro
se borro correctamente
Ver
No es posible, solo se sale dando clic
en el botón cancelar ó en la x del
formulario
Se cierra el formulario sin registrar
No permitir
No permitir la selección de más de una
fila
Presentar una alerta de que el registro
se borro correctamenteEliminar un registro con una llave foránea asociada
Seleccionar una registro de la tabla y borrarlo
Borrar un registro sin ser seleccionado
79
Tabla 33: Caso de prueba para el requisito funcional 02
Tabla 34: Caso de prueba para el requisito funcional 04
Tabla 35: Caso de prueba para el requisito funcional 05
Requisito Id Caso de prueba CP02
Operación Resultado Real
Presentar un mensaje de alerta
indicando que los datos no son validosPermitir el acceso al sistema y
presentar la vista correspondiente
Presentar un mensaje de alerta
indicando que los datos no son validos
Presentar un mensaje de alerta
indicando que los datos no son validos
Se cierra el formulario sin registrarSe cierra el formulario sin registrar
Presentar un mensaje de alerta
indicando que los datos no son validos
Registrar
Proyecto Plataforma web Satisfacción clientes INML
Login - Ingresar al sistema
DescripciónEl sistema debe permitir un control de acceso a los usuarios por medio de la cedula del mismo obtener el informe estadístico en
formato PDF
Entrada esperada Salida esperada
Ingresar un campo de texto vacíoPresentar un mensaje de alerta
indicando que existe un campo vacío
Presentar un mensaje de alerta
indicando que existe un campo vacío
Ingresar usuario y contraseña incorrectosPresentar un mensaje de alerta
indicando que los datos no son validos
Ingresar usuario y contraseña correctosPermitir el acceso al sistema y
presentar la vista correspondiente
Recargar la pagina con los campos de texto llenos
Presentar un mensaje de alerta
indicando que los datos no son validos
Ingresar usuario correcto y contraseña incorrecta
Ingresar usuario incorrecto y contraseña correcta
Requisito Id Caso de prueba CP03
Operación Resultado Real
No es posible, solo se sale dando clic
No esposible ingresar texto
Se cierra el formulario sin registrar
Proyecto Plataforma web Satisfacción clientes INML
Registrar fecha realización encuesta
DescripciónCada vez que se registre una encuesta, el sistema debe permitir registrar a los coordinadores de grupo la fecha en que fue
diligenciada la encuesta de satisfacción por el cliente
Entrada esperada Salida esperada
Registrar
Ingresar un campo de texto vacíoPresentar un mensaje de alerta
indicando que existe un campo vacío
Presentar un mensaje de alerta
indicando que existe un campo vacío
Salirse del formulario dando clic en cualquier otro No es posible, solo se sale dando clic
En un campo de fecha ingresar texto Error al ingresar dato
Diligenciar de manera correcta el formularioPresentar alerta de que el registro se
guardo correctamente
Presentar alerta de que el registro se
guardo correctamente
Recargar la pagina con los campos de texto llenos Se cierra el formulario sin registrar
Requisito Id Caso de prueba CP04
Operación Resultado Real
No es posible, solo se sale dando clic
No esposible ingresar texto
Se cierra el formulario sin registrar
Proyecto Plataforma web Satisfacción clientes INML
Registrar muestra estadística
DescripciónCuando se vaya a registrar una encuesta por primera vez, el sistema debe permitir registrar a los coordinadores de grupo una
muestra estadística ejecutada, el servicio forense, la seccional y el cliente del INML y CF
Presentar alerta de que el registro se
guardo correctamente
Registrar
Ingresar un campo de texto vacíoPresentar un mensaje de alerta
indicando que existe un campo vacío
En un campo de fecha ingresar texto Error al ingresar dato
Recargar la pagina con los campos de texto llenos Se cierra el formulario sin registrar
Diligenciar de manera correcta el formularioPresentar alerta de que el registro se
guardo correctamente
Presentar un mensaje de alerta
indicando que existe un campo vacío
Salirse del formulario dando clic en cualquier otro No es posible, solo se sale dando clic
Entrada esperada Salida esperada
80
Tabla 36: Caso de prueba para el requisito funcional 06
Tabla 37: Caso de prueba para el requisito funcional 07
Requisito Id Caso de prueba CP05
Operación Resultado Real
Presentar alerta de que el registro se
Error debido a que la clave de fila de la
tabla no posee un valor como variable
Proyecto Plataforma web Satisfacción clientes INML
Registrar las respuestas de las encuestas de satisfacción
Presentar la pagina con los registros de Recargar la pagina solo con los registros de
Registrar
Seleccionar más de un registro de la tablaNo permitir la selección de más de una
fila
Entrada esperada Salida esperada
DescripciónEl sistema debe permitir a los coordinadores de grupo registrar las respuestas de las encuestas de satisfacción dadas por los clientes
(autoridades judiciales)
Recargar la pagina con los registros de preguntas en
la tabla y habiendo seleccionado un parametro de
medicion como respuesta
Se restaure la tabla con los registros de
las preguntas
No permitir la selección de más de una
fila
Diligenciar de manera correcta el formularioPresentar alerta de que el registro se
guardo correctamente
No presenta alerta de nigun tipo, sin
emabrgola respuesta queda guardada
correctamente
Requisito Id Caso de prueba CP06
Operación Resultado Real
No es posible, solo se sale dando clic
No deja ingresar texto
Se cierra el formulario sin registrar
Entrada esperada Salida esperada
Registrar
Ingresar un campo de texto vacíoPresentar un mensaje de alerta
indicando que existe un campo vacío
Presentar un mensaje de alerta
indicando que existe un campo vacío
Salirse del formulario dando clic en cualquier otro No es posible, solo se sale dando clic
En un campo de fecha ingresar texto Error al ingresar dato
Recargar la pagina con los campos de texto llenos Se cierra el formulario sin registrar
Diligenciar de manera correcta el formularioGenerar la descarga en formato PDF
del informe estadístico
Generar la descarga en formato PDF
del informe estadístico
Proyecto Plataforma web Satisfacción clientes INML
Generar informes estadísticos
DescripciónEl sistema debe permitir a los coordinadores de grupo, directores seccional y regional, ingresar un periodo de fechas (inicio -fin),
municipio y servicio forense, con el fin de obtener el informe estadístico en formato PDF
81
Anexo D. Manual de usuario Paso 1: La pantalla principal de acceso al sistema se evidencia en la ilustración 41,
en esta se deben completar los campos de usuario y contraseña correspondientes
y posteriormente dar clic en el botón de ingresar. Cabe resaltar que el campo de
usuario hace referencia a la cedula del mismo.
Ilustración 41: Login Nota: En caso de el administrador de la plataforma web, siga los pasos 2, 3 y 4 de
no serlo continúe con el paso 5.
Paso 2: Posterior al ingreso del usuario, se presenta el entrono grafico para la
administración y gestión de las propiedades de las encuestas de satisfacción
(ilustración 42), en esta se evidencia un menú de navegación principal en el costado
izquierdo y una tabla principal para la presentación de las propiedades de las
encuestas de satisfacción creadas.
82
Ilustración 42:Administración y gestión propiedades encuestas de satisfacción
La ilustración 43 presenta el menú de
navegación principal en el costado izquierdo,
este hace referencia a todas las propiedades de
las encuestas de satisfacción, siendo estas las
preguntas, criterios, aspectos, parámetros de
medición, servicios forenses, grupos
nacionales a los que pertenecen estos, clientes
a los que se les presta el servicio, regionales,
seccionales, usuarios que tienen acceso al
sistema y roles de estos.
Es importante resaltar, que dentro del menú de
navegación se encuentras ítems como
“Encuesta – Preguntas y Preguntas –
Parámetros Medición”, estos hacen referencia
a la relación existente entre estos, y dando clic
en estos se accede a la gestión y
administración de estas, donde se asocian las
preguntas a cada encuesta de satisfacción y los
parámetros de medición a cada pregunta.
Ilustración 43: Menú de navegación
83
La tabla principal para la presentación de las propiedades de las encuestas de
satisfacción posee en la parte superior cuatro botones con las principales funciones
del sistema (crear, ver, editar, borrar), la ilustración 44 presenta el formulario para
crear un nuevo criterio, en este se deben agregar un nombre y asignar un estado
para el mismo, posterior a ello se da clic en el botón guardar.
Ilustración 44: Formulario para crear propiedades encuestas de satisfacción
Nota: El sistema no permitirá guardar las propiedades de las encuestas de
satisfacción, si algún campo de ingreso no está diligenciado.
Paso 3: Una vez se crea un criterio o cualquier otra propiedad de las encuestas de
satisfacción, esta es agregada a la tabla principal de presentación (ilustración 45),
donde se evidenciará un listado de los criterios ya existentes, asimismo en la parte
inferior de la tabla de presentación existe la opción para avanzar o retroceder en el
número de páginas del listado existente.
Ilustración 45: Tabla principal de presentación
Paso 4: Para acceder a las funciones de ver, editar y borrar, es necesario seleccionar un ítem de la tabla de presentación, posterior a ello y una vez seleccionado el botón de ver, se presentará un formulario con todas las propiedades del ítem seleccionado (ilustración 46).
84
Ilustración 46: Formulario para ver las propiedades de las encuestas de
satisfacción
De la misma manera funcionan los botones para editar y borrar un ítem de la tabla
de presentación, la ilustración 47 presenta el correspondiente formulario y los
campos característicos al ítem seleccionado.
Ilustración 47:Formulario para editar las propiedades de las encuestas de
satisfacción
Nota: Los pasos 2,3 y 4 son los mismos para la administración y gestión de todas las propiedades de las encuestas de satisfacción.
85
Paso 5: La ilustración 48, presenta el entorno grafico para la creación de muestras
estadísticas y el registro de las respuestas dadas por las autoridades judiciales en
las encuestas de satisfacción.
Ilustración 48: Entorno grafico para crear una muestra estadística y registrar las
respuestas de las encuestas de satisfacción
Paso 6: La creación de una muestra estadística se debe realizar solo al inicio de un
periodo de evaluación, para ello se da clic en el primer botón de crear, posterior a
ello se presenta el formulario de la ilustración 49, esta hace referencia a las
propiedades de una muestra estadística, es importante recalcar que el sistema no
permitirá guardar las propiedades de las encuestas de satisfacción, si algún campo
de ingreso no está diligenciado.
Ilustración 49: Formulario para crear una muestra estadística
86
Paso 7: Para el registro de las respuestas de las enucestas de satisfacción se da
clic en el segundo botón de crear, posterior a ello se presenta el formulario de la
ilustración 50, esta hace referencia a los datos de la autoridad que diligencio la
encuesta, datos como la fecha en que se realizó la encuesta, el servicio forense
evaluado, la seccional y municipio del INML y CF a la que pertenece la encuesta.
Es importante recalcar que el sistema no permitirá guardar las propiedades de las
encuestas de satisfacción, si algún campo de ingreso no está diligenciado.
Ilustración 50: Formulario para registrar la fecha de realización de las encuestas de satisfacción.
Paso 8: Posterior al paso 7, se presentan en una tabla de presentación (ilustración
51) las preguntas asociadas a la encuesta de satisfacción (seleccionada
previamente), al mismo tiempo presenta los parámetros de medición asociados a
cada pregunta, seleccionando cada una de estas.
El registro de las respuestas de las encuestas de satisfacción se evidencia en la
ilustración 51, esta se lleva acabo seleccionado la fila en la que se encuentra la
pregunta, a partir de ello se presenta en la parte inferior de la tabla de presentación,
un menú desplegable con los parámetros de medición, para registrar la respuesta
solo es pertinente seleccionar un parámetro de medición y realizar el mismo proceso
con las demás preguntas de la encuesta.
87
Ilustración 51: Entorno grafico para registrar las respuestas de las encuestas de
satisfacción Paso 9: Posterior al paso 8, se da clic en el ítem de “Informes estadísticos” ubicado
en el menú de navegación izquierdo, este presenta el formulario con los parametros
de entrada para crear un informe estadistico, seleccionado el servico forense,
municipio y periodo de evaluación (fecha inicio y fecha de finalización) deseados.
Una vez se haya dado clic en el botón aceptar se deben esperar unos segundos,
para que de manera automática se descargue el informe estadístico en formato
PDF.
Ilustración 52: Entorno grafico para generar un informe estadístico