Computing">
Nothing Special   »   [go: up one dir, main page]

Tesis VieraKerlly Final Corregido Definitivo

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 106

PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR

FACULTAD DE INGENIERÍA
ESCUELA DE SISTEMAS

DESARROLLO DE UN SISTEMA WEB CRM PARA EL CONTROL


Y MANTENIMIENTO DE LOS EQUIPOS DE AUDIO Y VIDEO
CASO DE ESTUDIO: CASA DE LA CULTURA ECUATORIANA
EN QUITO

AUTORA: KERLLY ELAYNE VIERA VÁSQUEZ

DISERTACIÓN DE GRADO PREVIA A LA OBTENCIÓN DEL


TÍTULO DE
INGENIERO DE SISTEMAS Y COMPUTACIÓN

DIRECTORA: ING. BEATRIZ CAMPOS

QUITO, 2022
Dedicatoria

A mi padre:

Por su ejemplo y sabiduría, por su entrega a la familia y su inmenso amor para que nada

nos falte; esperando que desde el cielo su alma nunca me desampare y abrace mi

corazón, orgulloso.

A mi madre:

Por ser mi compañera de toda la vida, de quien he aprendido cada gesto y enseñanza; y

juntas hemos aprendido a ser valientes, todo lo que soy es gracias a ti.

A mis hermanos:

Viviana y Andrés, por siempre aconsejarme lo que han aprendido por su cuenta y su

preocupación a que sea mejor cada día.

A mi sobrina:

Amelia, por traerme felicidad con su ingenio y ternura; quiero ser el mejor ejemplo para

ti.

A Omar:

Por su incondicionalidad, por hacerme ver la realidad de las cosas y ser firme en mis

decisiones.

2
Agradecimiento

Agradezco a Dios y a mi papá, que ahora los veo como uno solo, por permitirme estar

hoy donde estoy.

Agradezco a mi núcleo familiar, mi mamá y mis hermanos, por estar presentes en mi

desarrollo personal y estudiantil; por el amor y el apoyo que me brindan siempre.

Agradezco a mi enamorado, Omar Villamil, por ser el impulso que necesito, por

apoyarme y escucharme con paciencia y por ser mi seguridad para afrontar al mundo,

haciéndome sentir que puedo con todo.

3
Tabla de contenido
Dedicatoria ........................................................................................................................... 2
Agradecimiento.................................................................................................................... 3
Introducción......................................................................................................................... 9
Justificación ............................................................................................................................. 9
Planteamiento del problema................................................................................................... 9
Objetivos ............................................................................................................................ 11
Objetivo general .................................................................................................................... 11
Objetivos específicos ............................................................................................................. 11
CAPÍTULO I: Caso de estudio “Casa de la Cultura Ecuatoriana en Quito”.............. 12
1.1 Misión y visión del establecimiento.......................................................................... 12
1.1.1 Misión ................................................................................................................. 12
1.1.2 Visión .................................................................................................................. 12
1.2 Giro del negocio ......................................................................................................... 12
1.3 Situación actual de la Casa de la Cultura ............................................................... 13
1.4 Cadena de Valor de la Casa de la Cultura Ecuatoriana ........................................ 14
1.4.1 Cadena de valor ................................................................................................. 14
1.4.2 Cadena de valor de la Casa de la Cultura ....................................................... 15
1.5 Proceso de automatización de los procesos técnicos en la Casa de la Cultura
Ecuatoriana............................................................................................................................ 16
1.5.1 Procesos Sustantivos ......................................................................................... 16
1.5.2 Coordinación Técnica Cultural ........................................................................ 16
CAPÍTULO II: Marco Teórico ........................................................................................ 17
2.1 ¿Qué es un CRM? ..................................................................................................... 17
2.1.1 Las características del CRM ............................................................................ 17
2.1.2 Tipos de CRM .................................................................................................... 18
2.2 Metodología de desarrollo de sistemas web ............................................................ 20
2.2.1 Metodologías Ágiles........................................................................................... 20
2.3 Herramientas de desarrollo de sistema web ........................................................... 27
2.3.1 PHP ..................................................................................................................... 28
2.3.2 Bootstrap 3 ......................................................................................................... 29
2.3.3 MySQL ............................................................................................................... 30
2.3.4 CodeIgniter ........................................................................................................ 30
2.3.5 Node.js ................................................................................................................ 31
CAPÍTULO III: Análisis y Diseño del sistema ............................................................... 32
3.1 Análisis del sistema.................................................................................................... 32

4
3.2.2 Modelo Conceptual UML ................................................................................. 50
3.2.3 Modelo lógico ..................................................................................................... 51
3.2.4 Modelo físico ...................................................................................................... 52
3.2.5 Diagrama de secuencia...................................................................................... 53
3.2.6 Diagrama de actividades ................................................................................... 54
3.2.7 Requerimientos funcionales.............................................................................. 55
3.2.8 Requerimientos no funcionales ........................................................................ 55
3.3 Diseño de la base de datos......................................................................................... 56
3.4 Diseño de BackEnd.................................................................................................... 57
3.5 Diseño de FrontEnd .................................................................................................. 58
3.5.1 Diseño de ingreso al sistema ............................................................................. 58
3.5.2 Diseño del formulario para Iniciar Sesión ...................................................... 59
3.5.3 Diseño tablero principal (Administrador) ...................................................... 59
3.5.4 Diseño de la vista principal (Usuario final) ..................................................... 60
3.5.5 Diseño visualización datos usuario .................................................................. 61
3.5.6 Diseño visualización datos categorías .............................................................. 61
3.5.7 Diseño visualización datos establecimiento ..................................................... 62
3.5.8 Diseño visualización datos catálogo productos ............................................... 63
3.5.9 Diseño visualización datos productos .............................................................. 64
3.5.10 Diseño visualización datos reparaciones ......................................................... 65
3.5.11 Diseño visualización reporte ............................................................................. 66
CAPÍTULO IV: Desarrollo del sistema web e implementación ................................... 67
4.1 Implementación de la metodología XP .................................................................... 67
Planificación inicial ........................................................................................................... 67
Iteración 1 .......................................................................................................................... 69
Iteración 2 .......................................................................................................................... 71
Diario de actividades ......................................................................................................... 72
4.2 Desarrollo de backend .............................................................................................. 74
4.2.1 Modelos .............................................................................................................. 74
4.2.2 Controladores .................................................................................................... 75
4.2.3 Vistas .................................................................................................................. 77
CAPÍTULO V: Evaluación del sistema ........................................................................... 79
5.1. Cuadro comparativo de la funcionalidad del sistema web .................................... 79
5.2. Pruebas del sistema web por personal de la Casa de la Cultura Ecuatoriana..... 80
5.2.1 Pruebas unitarias............................................................................................... 81
5.2.2 Pruebas de integración...................................................................................... 81

5
5.3. Encuesta de satisfacción del sistema web ................................................................ 82
5.4. Resultados de la encuesta de satisfacción ................................................................ 83
CAPÍTULO V: Conclusiones y Recomendaciones ......................................................... 87
5.1 Conclusiones .............................................................................................................. 87
5.2 Recomendaciones ...................................................................................................... 88
Bibliografía ........................................................................................................................ 89
Anexos 91
Aceptación del sistema web por parte del representante de la Casa de la Cultura
Ecuatoriana............................................................................................................................ 99
Aprobación de las encuestas por parte del representante de la Casa de la Cultura
Ecuatoriana.......................................................................................................................... 100
Aprobación de las pruebas del sistema por parte del representante de la Casa de la
Cultura Ecuatoriana ........................................................................................................... 102
Glosario de términos ........................................................................................................... 104

6
Tabla de Ilustraciones

Ilustración 1 Estructura Orgánica CCE ......................................................................................... 13


Ilustración 2 Cadena de Valor CCE .............................................................................................. 15
Ilustración 3 Ciclo de vida XP....................................................................................................... 24
Ilustración 4 Diagrama general de casos de uso ......................................................................... 33
Ilustración 5 Funcionalidad 1 Administración de usuarios ......................................................... 34
Ilustración 6 Funcionalidad 2 Administración de establecimientos ........................................... 36
Ilustración 7 Funcionalidad 3 Administración de categorías ...................................................... 39
Ilustración 8 Funcionalidad 4 Administración de productos genéricos ...................................... 41
Ilustración 9 Funcionalidad 5 Administración de productos específicos .................................... 44
Ilustración 10 Funcionalidad 6 Administración de reparaciones ................................................ 47
Ilustración 11 Modelo Conceptual UML ..................................................................................... 50
Ilustración 12 Modelo Lógico ...................................................................................................... 51
Ilustración 13 Modelo Físico ....................................................................................................... 52
Ilustración 14 Diagrama de secuencia: administrador ................................................................ 53
Ilustración 15 Diagrama de secuencia: técnico ........................................................................... 53
Ilustración 16 Diagrama de actividades ...................................................................................... 54
Ilustración 11 Modelo Conceptual .............................................................................................. 56
Ilustración 12 Ingreso al Sistema................................................................................................. 58
Ilustración 13 Formulario Login .................................................................................................. 59
Ilustración 14 Vista del Administrador ........................................................................................ 59
Ilustración 15 Vista Principal del Usuario .................................................................................... 60
Ilustración 16 Vista del formulario Usuario y lista de Usuarios .................................................. 61
Ilustración 17 Vista del formulario Categorías y lista de Categorías........................................... 61
Ilustración 18 Vista del formulario Establecimiento y lista de Establecimientos ....................... 62
Ilustración 19 Vista del formulario Catálogo Productos y lista de Catálogo Productos .............. 63
Ilustración 20 Vista del formulario Productos y lista de Productos ............................................ 64
Ilustración 21 Vista del formulario Reparaciones y lista de Reparaciones ................................. 65
Ilustración 22 Vista del Reporte y lista de Reportes ................................................................... 66
Ilustración 23 Modelos ................................................................................................................ 74
Ilustración 24 Modelo estudiante ............................................................................................... 75
Ilustración 25 Controladores ....................................................................................................... 76
Ilustración 26 Controlador usuario ............................................................................................. 76
Ilustración 27 Vistas .................................................................................................................... 77
Ilustración 28 Vista usuario ......................................................................................................... 78
Ilustración 29 Desarrollo a través de localtunnel........................................................................ 80
Ilustración 30 Pruebas unitarias por PHP Unit con el módulo TestUnit ..................................... 81
Ilustración 31 Pruebas de integración por PHP Unit con el módulo TestUnit ............................ 81
Ilustración 34 Pregunta 3 de la encuesta de satisfacción ........................................................... 85
Ilustración 35 Pregunta 4 de la encuesta de satisfacción ........................................................... 85
Ilustración 36 Pregunta 5 de la encuesta de satisfacción ........................................................... 86

7
Índice de tablas

Tabla 1 Historia de usuario 1.......................................................................................... 67


Tabla 2 Historia de usuario 2.......................................................................................... 68
Tabla 3 Planeación iteración 1........................................................................................ 68
Tabla 4 Historia de usuario 1 Iteración 1 ....................................................................... 69
Tabla 5 Historia de usuario 2 Iteración 1 ....................................................................... 69
Tabla 6 Tarea 1 Historia de usuario 1............................................................................. 70
Tabla 7 Tarea 1 Historia de usuario 2............................................................................. 70
Tabla 8 Historia de usuario 3 Iteración 2 ....................................................................... 71
Tabla 9 Tarea 1 Historia de usuario 3............................................................................. 71
Tabla 10 Diario de actividades, Manager ....................................................................... 72
Tabla 11 Diario de actividades, Programador ................................................................ 73
Tabla 12 Diario de actividades, Tracker ......................................................................... 73
Tabla 13 Cuadro comparativo de la funcionalidad ......................................................... 79
Tabla 14 Explicación de las preguntas en la encuesta .................................................... 82

8
Introducción
Justificación

La Casa de la Cultura Ecuatoriana (CCE) es una institución autónoma de gestión

cultural en la República del Ecuador. Esta institución trabaja desde 1994 y tiene su

sede principal en Quito, según (CCE Benjamín Carrión, 2019) el objetivo de esta

institución es contribuir al desarrollo de los derechos culturales y principios

programáticos, enmarcados en la política pública cultural del Estado ecuatoriano.

La CCE no cuenta con un sistema web para el control y mantenimiento de equipos

de audio y video, ya que, lo llevan de forma manual a través de bitácoras en los

teatros y salas, donde se los utilizan para las diferentes presentaciones.

Se pretende desarrollar un sistema web CRM, que significa Gestión de Relaciones

con Clientes, un software de empresa que sirve para tener todas las comunicaciones

con clientes en un mismo sitio y accesible por todo el mundo en la empresa; el

sistema web CRM pretende disminuir la pérdida de recursos durante el proceso

tradicional que se llevaba para el control y mantenimiento de los equipos de audio y

video de la CCE.

Planteamiento del problema

La CCE presta los siguientes servicios: la propia producción, pues, tienen la

capacidad de ejecutar proyectos de Producción Propia, los que tienen que estar

debidamente programados en el Plan Operativo Anual de la Institución, desde su

Dirección de Gestión y Extensión Cultural. La coproducción, se muestran eventos

de toda índole cultural durante el año en calidad de coproductores, esta es una

relación en la alianza entre la Casa de la Cultura Ecuatoriana y las productoras,

promotores o gestores culturales, los desarrollos que compartan los intereses del

enriquecimiento cultural que mantener la institución. Las salas concertadas, este tipo

9
de convenio permite al gestor cultural, el productor o el artista usar los espacios de

la Sede Nacional de la Casa de la Cultura, junto con su cobertura técnica, sin ningún

costo monetario, el ingreso de una garantía que será reembolsado después del

evento, si la sala se devuelve en las mismas condiciones en la que fue entregada. La

promoción en La Casa de la Cultura Ecuatoriana tiene la potestad de otorgar sus

salas y el apoyo técnico a eventos de índole cultural de forma totalmente gratuita,

las únicas condiciones que se solicitan, el orden, el evento, el orden público, la

justificación de su aporte a la cultura y fundamentalmente justifique el porqué de su

gratuidad. Y el alquiler de salas, la institución, en base a su reglamento, puede

alquilar los auditorios, salas y teatros desde su Dirección de Gestión y Extensión

Cultural, los que incluyen su cobertura técnica y el apoyo de personal técnico. Los

rubros para cada uno de ellos incluyen un precio más (CCE Benjamín Carrión,

2019).

El área técnica que realiza el control y mantenimiento de los equipos de audio y

vídeo lo ejecutan de forma tradicional a través de informes por cada nivel jerárquico

de la institución para que sea aprobado por el superior correspondiente; hasta tener

la aprobación del presidente de la CCE y proceder a tomar las acciones que

correspondan. Por consecuencia, este proceso depende del tiempo con el que

realizan los informes en cada nivel organizacional; la pérdida de tiempo hace que la

información se pueda tergiversar, menos aun cuando se considera una emergencia.

El sistema web CRM que se realizará evitará la pérdida de información y optimizará

recursos humanos y de tiempo.

10
Objetivos

Objetivo general

1. Desarrollar e implementar un sistema web CRM que permita el control y

mantenimiento de los equipos de audio y video.

Objetivos específicos

2. Analizar los procesos de control y mantenimiento de los equipos de audio y

video.

3. Diseñar una aplicación web CRM para el control y mantenimiento de equipos de

audio y video.

4. Desarrollar una aplicación web utilizando metodologías ágiles.

5. Implementar la aplicación web para el control y mantenimiento de equipos de

audio y video.

11
CAPÍTULO I: Caso de estudio “Casa de la Cultura Ecuatoriana en Quito”

El presente capítulo indica la información del caso de estudio donde se aplicará el

desarrollo de software. Los temas adicionales son: CRM, características del CRM y

tipos de CRM.

1.1 Misión y visión del establecimiento

1.1.1 Misión

La Casa de la Cultura Ecuatoriana Benjamín Carrión, es el espacio democrático

inclusivo donde promueve y difunde las artes, letras, pensamiento nacional e

internacional, patrimonio y otras manifestaciones culturales, mediante la gestión de

bienes, productos, servicios culturales de calidad, para el disfrute, enriquecimiento y

realización espiritual de la sociedad ecuatoriana (CCE Benjamín Carrión, 2019).

1.1.2 Visión

Ser la institución referente de creación artística, difusora de manifestaciones

pluriculturales, memoria social, pensamiento crítico que con autonomía y fortalecida

por el compromiso de sus miembros y gestores, promover el ejercicio de derechos

culturales de la ciudadanía (CCE Benjamín Carrión, 2019).

1.2 Giro del negocio

La CCE busca que la cultura que nace del Ecuador pueda manifestarse a través de

diferentes presentaciones en sus instalaciones; como entidad “busca la integración de

nuevos actores culturales urbanos y rurales que dan forma a la interculturalidad

ecuatoriana, uno de los valores más importantes de nuestro país, plurinacional, mega

biodiverso y pluricultural” (CCE Benjamín Carrión, 2019).

12
1.3 Situación actual de la Casa de la Cultura

La organización actual de la Casa de la Cultura está posicionada bajo la siguiente

estructura orgánica.

Ilustración 1 Estructura Orgánica CCE

(CCE Benjamín Carrión, 2019)

Como se observa en la ilustración 1, la organización se encuentra dividida en tres

niveles: Nivel Central, Procesos adjetivos y Proceso sustantivos. El trabajo va dirigido

al nivel de Procesos sustantivos en la Coordinación Técnica Cultural, área que se

13
dedica a brindar servicios tecnológicos, incluyendo el desarrollo de software y el

soporte técnico.

1.4 Cadena de Valor de la Casa de la Cultura Ecuatoriana

1.4.1 Cadena de valor

La cadena de valor es considerada como parte de la ventaja competitiva que toman

algunas organizaciones para mantenerse dentro de la competencia. Se obtienen estudios

que incluyen el análisis y la comparación de los costos con cada competencia, según

(Quintero & Sánchez, 2006). En síntesis, la cadena de valor permite identificar las

maneras más adecuadas para entregar mayores beneficios al consumidor.

1.4.1.1 Los elementos de una cadena de valor

Los elementos que siempre están presentes en una cadena de valor son:

- Actividades primarias: Son las actividades basadas en el desarrollo, logística y

comercialización.

- Actividades de soporte: Son las actividades que brindan ayuda a las actividades

primarias y tienen que ver con la gestión sin los recursos humanos,

telecomunicaciones y la infraestructura empresarial.

- El margen: Es el valor de diferencia entre el resultado y los costos totales que se

han incurrido en la organización.

14
1.4.2 Cadena de valor de la Casa de la Cultura

La cadena de valor de la Casa de la Cultura Ecuatoriana se representa bajo la siguiente

ilustración de los macroprocesos institucionales.

Ilustración 2 Cadena de Valor CCE

(Carrión, 2012)

Como se muestra en la ilustración 2, la entrada de la cadena de valor es la ciudadanía.

La entrada pasa a hacia la primera sección donde se encuentra los Procesos

Gobernantes, que se encuentran en color rosa, el Direccionamiento Estratégico

La segunda sección son los Procesos Sustantivos, que se encuentran en color azul,

dónde está la Gestión de Rescate, Promoción y Difusión del arte, las letras ecuatorianas

y la memoria social.

Finalmente, las entradas pasan a través de los Procesos Adjetivos, que se encuentran

en color naranja, en la última sección se encuentran la Gestión Asesoría Especializada y

Gestión Administrativa Financiera.

15
Y como resultado final de la relación entre los elementos dentro de los procesos se

obtiene como producto final el arte, la ciencia y la cultura para la ciudadanía.

1.5 Proceso de automatización de los procesos técnicos en la Casa de la Cultura

Ecuatoriana

1.5.1 Procesos Sustantivos

Este proceso presenta un conjunto de actividades que se encuentran relacionadas de

manera mutua e interactúan directamente para cumplir con los requerimientos de un

usuario. En este proceso se consideran las actividades que producen un mayor valor

agregado que otras actividades, causando impacto en la satisfacción del usuario. Sin los

procesos sustantivos no se podría atender las necesidades del usuario.

1.5.2 Coordinación Técnica Cultural

Según (ESTATUTO ORGANICO POR PROCESOS DE LA CASA, 2018), la misión

de este departamento es, coordinar la gestión de las unidades de los procesos

agregadores de valor de la Sede Nacional, a través de la formulación de estrategias y

alternativas institucionales que permitan asegurar la adecuada administración de

derechos artísticos y culturales.

Se plantea optimizar el proceso que usaba el equipo técnico para obtener

comunicación y seguimiento en menor tiempo a través de un CRM que monitoree el

control y mantenimiento de los equipos de audio y video de las salas y teatros.

16
CAPÍTULO II: Marco Teórico

2.1 ¿Qué es un CRM?

Las siglas traducidas al español quieren decir Gestión de las Relaciones con el Cliente

(Customer Relationship Management). El CRM en general, se encarga de asignar tareas

para los trabajadores mediante emails, reuniones o el medio por el que maneja la

empresa para su comunicación, permitiendo que todos los trabajadores estén al tanto de

las tareas asignadas con la finalidad de obtener eficiencia en los tiempos de respuesta

para los requerimientos asignados.

2.1.1 Las características del CRM

Los CRM están pensados para empresas grandes con el fin de agilizar los

requerimientos que toman más tiempo de lo esperado; la comunicación de la empresa

debe ser online, para que se pueda visualizar en tiempo real los cambios en el sistema.

Las principales características son:

• Seguimiento a la interacción: tener acceso en la trazabilidad de los

requerimientos.

• Omnicanalidad: integrar diferentes canales de comunicación para el equipo.

• Gestión de documentos: centralizar la documentación relevante.

• Automatización del flujo de trabajo: automatizar tareas repetitivas

• Movilidad: facilidad de uso en los dispositivos móviles.

• Integración con otras plataformas: conexión entre diferentes sistemas.

• Informes de gestión: visión clara del comportamiento del cliente.

17
2.1.2 Tipos de CRM

Se conoce tres tipos de CRM que se describen a continuación, según (Paz, 2020):

• CRM operativo: Presenta las relaciones e interrelaciones que maneja la empresa

u organización con cada cliente; está enfocado a la automatización de ventas y

marketing para impedir que un cliente prefiera a otra empresa.

Las funciones que lleva a cabo son:

o La gestión de automatización de contactos sirve para identificar a los

futuros clientes y mantenerlos satisfechos en sus necesidades.

o Maneja también la automatización de servicios, que quiere decir que le

da la facilidad al cliente en diferentes servicios como: pagos en línea,

agendamiento de citas o turnos en línea, incluso puede existir un chat

automático para las preguntas frecuentes.

o Maneja además la automatización de fuerza de ventas, que es la

asignación automática de tareas al equipo de ventas en función del perfil

del cliente y sus actividades.

o Y maneja la automatización del marketing y procesos de venta, donde se

ayuda al equipo a cargo de cerrar contratos, de una manera más rápida

sin perder las oportunidades que se presentan a causa de errores

humanos.

El enfoque del CRM operativo no va solo a las ventas sino en el ciclo de vida del

cliente.

• CRM analítico: Recopila, organiza y analiza los datos del cliente en el área de

marketing, ventas y servicios para ayudar a tomar mejores decisiones

comerciales de una manera más rápida. Las funciones de gestión de datos se

resumen en el almacenamiento y procesamiento de datos, y minería de datos,

18
entendida como la asociación, clasificación y detección de anomalías que

permiten encontrar patrones para se puedan asignar un significado a los datos. El

CRM analítico debe detectar oportunidades de venta cruzadas y oportunidades

de venta adicionales; también permite la construcción de la personalidad del

comprador, la previsión de ventas, la atribución que quiere decir, el punto de

contacto hizo que una persona pase a ser un cliente y da como resultado el saber

de dónde provienen la mayoría de los clientes y como atenderlos de la mejor

forma.

• CRM colaborativo: también conocido como CRM interactivo o CRM

estratégico, en este CRM los datos del cliente se sincronizan para obtener una

mayor satisfacción y lealtad de los clientes; y al mismo tiempo maximizar la

rentabilidad y los ingresos. Integra a personas internas y externas, por ejemplo:

otros departamentos, distribuidores, vendedores, representantes, entre otros. Este

CRM se centra en el servicio al cliente, la satisfacción del cliente y la retención

del cliente, más que en la adquisición de nuevos clientes.

Los beneficios de este CRM son:

o La mejora de la comunicación del equipo ayuda a romper los silos de

información y a compartir la información entre los miembros del equipo.

o Mejora la integración de datos, para tener una visión mucho más

completa de los clientes.

o Permite el apoyo o ayuda constante de los clientes a través del canal de

comunicación o de información que hayan elegido para los mismos

clientes.

19
o Permite un enfoque holístico para gestionar todo el recorrido del cliente,

hace que todos los mensajes que tenga la empresa u organización hacia el

cliente se basen en sus necesidades o problemas reales.

2.2 Metodología de desarrollo de sistemas web

Las metodologías de desarrollo de software son un marco de trabajo eficiente que

ofrecen respuesta a los problemas que presentaba las antiguas metodologías de

desarrollo. Las metodologías actuales han implementados las fases o procesos que han

sido eficaces para promover la calidad. Los sistemas de desarrollo se han divido en

sistemas de escritorio, sistemas móviles y sistemas web. Los sistemas web han ido

incrementando desde la aparición y estabilidad del Internet, lo que ha permitido el

aumento en la agilidad de procesos. Sin embargo, aún se usan las metodologías

tradicionales, más comúnmente en grandes proyectos que tiene requerimientos estables.

Las metodologías ágiles son las adecuadas para el desarrollo de software cuando

cuentan con un ambiente dinámico y con equipos de trabajo de menor tamaño (Molina

& Zea, 2017).

2.2.1 Metodologías Ágiles

Estas metodologías se caracterizan por ser flexibles y adaptativas al equipo y

proyecto. En estas metodologías, la comunicación con el cliente es constante por lo que

se tiene un representante y se realizan colaborativamente ya que es muy común esperar

cambios en los requerimientos. Las entregas constantes al cliente ocasionan los cambios

por parte de la retroalimentación del cliente (Navarro & Martínez, 2013).

Por las ventajas que prestan las metodologías ágiles, para el desarrollo de la aplicación

se ha seleccionado la metodología Extreme Programming (XP).

20
2.2.1.1 Extreme Programming (XP)

Es una metodología ideal para desarrolladores de software pequeños y medianos,

cuenta con cinco valores: Simplicidad, Comunicación, Retroalimentación, Respeto y

Coraje. Lo más importante es la retroalimentación rápida, asumir simplicidad, el cambio

incremental, la aceptación del cambio y el trabajo de calidad. Según (Navarro &

Martínez, 2013) las prácticas del XP incluyen: planning game, pequeñas entregas,

diseño simple, programación en pareja, pruebas, refactoring, integración continua,

propiedad común del código, paso sostenible, cliente en sitio, metáfora y estándares de

código.

• Planning game: es cuando se define el alcance y fecha de cumplimiento de una

entrega funcional completa. Aquí se divide las funcionalidades del cliente como

del desarrollador; el cliente es el encargado de definir las Historias de Usuario

que son una manera simplificada de los casos de uso. A partir de las historias de

usuario los desarrolladores realizan las estimaciones de costo de

implementación, así como sus iteraciones necesarias para concluir el proyecto.

• Entregas pequeñas: Mediante iteraciones se realizan entregas al cliente y se

obtienen su retroalimentación. Se define terminada una iteración con la relación

de las pruebas de aceptación.

• Diseño simple: El diseño debe ser lo más simple porque los desarrolladores solo

deben encargarse de las historias de usuario para la iteración actual sin importar

las futuras.

• Programación en pareja: El código debe ser desarrollado por dos

programadores, las parejas deben rotar con frecuencia para que el conocimiento

de todo el sistema quede en todo el equipo.

21
• Pruebas: Son la guía de desarrollo del producto ya que los detalles de las

historias de usuario se obtienen en el desarrollo de la prueba de aceptación. Son

lo primero que se desarrolla, en base a ellas, se desarrolla el código que la

satisfaga.

• Refactoring: Realiza cambios que mejoren la estructura del sistema sin afectar

el funcionamiento, mediante una prueba unitaria para garantizar los beneficios

del cambio y mantener el código simple.

• Integración continua: Es la integración de cada tarea completa al sistema,

mientras haya pasado las pruebas unitarias; sino pasa las pruebas unitarias y

ocasiona errores, se vuelve prioridad enfocarse solo en corregirlos y no se debe

añadir otra tarea mientras no se corrija la que no pasó las pruebas unitarias.

• Propiedad común: Es la libre participación en hacer cambios siempre y cuando

agreguen valor al código de cualquier desarrollador que este participando en el

desarrollo del producto.

• Paso sostenible: Es mantener un ritmo constante para el desarrollo del producto

y en caso de trabajar horas extras no hacerlo en semanas consecutivas.

• Cliente en sitio: Es un representante del cliente que esté disponible a tiempo

completo para trabajar con el equipo de desarrollo resolviendo dudas en la

implementación de las historias de usuario.

• Metáfora: es tener la misma visión del sistema mediante abstracciones que

establezcan un lenguaje entendible entre el usuario y desarrollador.

• Estándares de código: Son las reglas que definen como se va a escribir la

aplicación, estos estándares deben estar definidos de tal forma que el código

mismo sirva como un documento.

22
2.2.1.2 Ciclo de vida de Extreme Programming (XP)

Para (Navarro & Martínez, 2013) el ciclo de vida de esta metodología está

compuesto por Exploración, Planeación, Iteraciones hacia la primera entrega,

Productionizing y Mantenimiento.

• Exploración: En esta fase se realiza la estimación con base a las historias de

usuario requeridas para la primera entrega.

• Planeación: En esta fase el cliente y los programadores definen las historias

de usuario que se van a implementar y en que fechas los harán.

• Iteraciones hacia la primera entrega: Esta fase se transforma en el

calendario acordado con el cliente, expresado en iteraciones, donde cada una

representa una historia de usuario implementada y probada.

• Productionizing: En esta fase se afina el funcionamiento del producto y se

despliega.

• Mantenimiento: Esta fase es de continuas mejoras y arreglos, e implementa

nuevas funcionalidades.

23
Ilustración 3 Ciclo de vida XP

(Navarro & Martínez, 2013)

2.2.1.3 Roles

Los roles de la metodología XP han tenido algunas variaciones en otros escritos, pero

los que se presentan a continuación están de acuerdo con la teoría (Letelier, 2006).

• Programador: Encargado de programar el código del sistema y de escribir de las

pruebas unitarias.

• Cliente: Encargado de realizar las historias de usuario y las pruebas funcionales

para validar su implementación. El decide que historias se presentan en cada

iteración.

• Encargado de pruebas: Tester. Encargado de ayudar al cliente a escribir las

pruebas funcionales. Realiza las pruebas con regularidad y difunde los

resultados al equipo, siendo el encargado de dar soporte para las pruebas.

24
• Encargado de seguimiento: Tracker. Encargado de retroalimentar al equipo

durante todo el proceso, debe verificar el grado de acierto entre las estimaciones

realizadas y el tiempo real dedicado, para mejorar estimaciones futuras. También

es el encargado de hacer el seguimiento en cada iteración y de evaluar si los

objetivos son alcanzables con los recursos presentes y las restricciones de

tiempo. Determina cuando es necesario realizar cambios si no se alcanzara los

objetivos.

• Entrenador: Coach. Encargado del proceso global, debe conocer a fondo el

proceso de XP para poder guiar al resto del equipo correctamente.

• Consultor: Miembro externo encargado de resolver un problema específico y

está a cargo de un tema necesario para el proyecto.

• Gestor: Big Boss. Vínculo entre el cliente y los programadores, es el encargado

de ayudar al equipo a trabajar adecuadamente, coordinándolos.

2.2.1.4 Fases

(Letelier, 2006) dice que un proyecto XP tiene éxito cuando el cliente selecciona un

valor de negocio a implementar basado en la habilidad del equipo para realizar las

entregas a través del tiempo. El ciclo de vida ideal de esta metodología consiste en los

siguientes pasos:

• Fase I: Exploración

El cliente presente a grandes rasgos las historias de usuario que son de interés

para ver su implementación en la primera entrega. Mientras que el equipo de

desarrollo se familiariza con las herramientas, tecnologías y prácticas que van a

25
utilizar durante la realización del proyecto. Además de aprobar la tecnología y

explorar que arquitectura se va a construir haciendo un prototipo.

• Fase II: Planificación de la entrega

El cliente establece la prioridad de cada historia de usuario. El equipo de

desarrollo realiza las estimaciones de esfuerzo para la entrega y determina un

cronograma junto con el cliente.

Las estimaciones de esfuerzo la miden a través del punto, que es, una semana

ideal de programación. En general, las historias de usuario valen de 1 a 3 puntos.

El equipo de desarrollo mantiene un registro de la velocidad con la que se realiza

cada iteración medida en puntos.

En síntesis, la planificación se realiza basándose en el tiempo o el alcance. La

velocidad del proyecto sirve para saber la cantidad de historias que se puede

implementar antes de cada fecha determinada. Si se planifica por tiempo, se

debe multiplicar el número de iteraciones por la velocidad del proyecto,

obteniendo cuantos puntos se pueden completar. Si se planifica por alcance, se

debe dividir la suma de puntos de las historias seleccionadas entre la velocidad,

obteniendo el número de iteraciones necesarias para su implementación.

• Fase III: Iteraciones

Esta fase el Plan de Entrega está compuesta por iteraciones que no duren más de

tres semanas. Los elementos del Plan de Iteración son: historias de usuario no

abordadas, velocidad del proyecto, pruebas de aceptación no superadas en la

anterior iteración y tareas no terminadas en la anterior iteración.

• Fase IV: Producción

En esta fase se realiza pruebas adicionales y revisiones de rendimiento antes de

que el entorno realizado pase al cliente. Las ideas que han sido propuestas y las

26
sugerencias son documentadas para una posterior implementación como en una

fase de mantenimiento.

• Fase V: Mantenimiento

Al tener en producción la primera versión, se realizan nuevas iteraciones

mediante tareas de soporte para el cliente. Esta fase puede requerir cambios de

personal del equipo de desarrollo y de su estructura.

• Fase VI: Muerte del proyecto:

Fase en la que ya no se cuenta con más historias de usuario que incluir en el

sistema. Se genera la documentación del sistema y ya no se realiza más cambios

en su arquitectura.

2.3 Herramientas de desarrollo de sistema web

El desarrollo del software ha evolucionado tanto que las exigencias de que las

aplicaciones sean más rápidas, ágiles y con capacidad de adaptarse a los cambios de las

organizaciones han permitido optar por las metodologías ágiles, ya que el desarrollo de

las aplicaciones web cuentan con un ciclo de desarrollo más corto (Ramos & Aguilera,

2013).

Para (Ramos & Aguilera, 2013) la arquitectura N-capas es una técnica que se aplica

perfectamente al desarrollo web ya que puede separarse en varias capas de manera

simple por la misma naturaleza y evolución de esta tecnología, sin embargo, el estilo 3

capas es el más utilizado distribuido en:

• Vista: Capa que interactúa con el usuario.

• Controlador: Capa que contiene las reglas del negocio.

• Modelo: Capa que contiene el acceso a datos.

27
Todo lo que implica el desarrollo web, cuenta con el FrontEnd que son las tecnologías

que corren del lado del cliente, es decir, en el navegador web. Se desarrolla en tres

lenguajes: Html, CSS y JavaScript. Y el BackEnd es el lado del servidor, donde

consume los datos.

El FrontEnd es el encargado de estilizar la página de tal manera que se visualice la

información de forma agradable al usuario. El encargado debe saber las técnicas de

experiencia para saber qué experiencia es la mejor que puede brindar entre la persona y

la página que visita, de igual forma debe tener los conocimientos de diseño de

interacción para colocar los elementos de forma rápida y cómoda para que el usuario no

tenga dificultad de moverse a través de la página.

El BackEnd es la capa de acceso a los datos de un software que no es accesible para el

usuario final. Esta capa contiene toda la lógica de la aplicación que maneja los datos y

se encuentran almacenados en una base de datos dentro de un servidor. El encargado

debe formarse como desarrollador de aplicaciones web o de aplicaciones

multiplataforma y estudiar los diferentes lenguajes de programación que soliciten en la

empresa. Debe saber las interacciones con las diferentes bases de datos y saber las

diferencias entre estas y cualidades de las más utilizadas. (Pérez, Quispe, Mullicundo, &

Lamas, 2021)

Entre las principales herramientas seleccionadas para el desarrollo de la aplicación, se

mencionan las siguientes:

2.3.1 PHP

Una de las herramientas que se va a utilizar para este desarrollo es un lenguaje

interpretado del lado del servidor que se caracteriza por su potencia, versatilidad,

28
robustez y modularidad. Según (Cobo, 2005) los programas escritos en PHP son

embebidos directamente en el código HTML y ejecutados por el servidor web a través

de un intérprete antes de transferir al cliente que lo ha solicitado en un resultado HTML

puro. Se destaca que la facilidad que tiene PHP para la conectividad con sistemas

gestores de bases de datos a través de un gran número de funciones especializadas. Esta

facilidad ha hecho que sea uno de los lenguajes más utilizados para la generación de

páginas dinámicas, no solo a nivel personal sino también como portales de empresas y

organizaciones.

2.3.2 Bootstrap 3

Bootstrap es un framework HTML, CSS y JS para crear interfaces de usuario web

limpias y totalmente adaptables a todo tipo de dispositivos y tamaños de pantalla.

Bootstrap al ser un framework evita perder el tiempo reescribiendo código repetitivo

una y otra vez, ahorrando tiempo (Ovando, 2019).

Es la última versión del framework. versiones anteriores de Bootstrap han usado

jQuery, una librería de JavaScript que está diseñada para hacer el código de JavaScript

más fácil y rápido (Foreman, 2021).

Según (Ovando, 2019) la ventaja más genérica es que permite simplificar el proceso de

maquetación, sirviendo de guía para aplicar las buenas prácticas y los diferentes

estándares. Los puntos a favor son:

• Permite tener una web organizada de forma visual, la curva de aprendizaje hace

que su manejo sea asequible y rápido.

• Permite un diseño adaptable a cualquier dispositivo, escala o resolución.

29
• Permite utilizar muchos elementos web, como iconos desplegables, y además se

integra de manera adecuada a las principales librerías de JavaScript.

2.3.3 MySQL

Finalmente, la herramienta para el almacenamiento de datos será MySQL que se

define como un sistema de administración de base de datos con acceso desde páginas

web dinámicas (Cobo, 2005), ofrece algunas ventajas frente a otros gestores como:

• Tiene licencia pública, lo que permite la utilización libre en consultas y

personalización de su código fuente.

• Es un sistema cliente/servidor, controla el acceso simultáneo de un gran número

de usuarios a los datos y asegurando el acceso solo a usuarios autorizados.

• Dispone de un sistema sencillo de ayuda en línea y de un monitor que permite

realizar todas las operaciones desde la línea de comandos del sistema.

2.3.4 CodeIgniter

CodeIgniter es un framework PHP, creado para desarrolladores que necesitan un

conjunto de herramientas simple y elegante para crear aplicaciones web con todas las

funciones (CodeIgniter, s.f.).

Para (Vergara J. , 2016) las ventajas de usar a CodeIgniter como framework para un

desarrollo web son:

• Las páginas se procesan más rápido, el núcleo de CodeIgniter es bastante ligero.

• Es sencillo de instalar, basta con subir los archivos al ftp y tocar un archivo de

configuración para definir el acceso a la base de datos.

30
• Existe abundante documentación en la red.

• Facilidad de edición del código ya creado.

• Facilidad para crear nuevos módulos, páginas o funcionalidades.

• Estandarización del código

• Separación de la lógica y arquitectura de la web, el MVC.

• Cualquier servidor que soporte PHP+MySQL sirve para CodeIgniter.

• CodeIgniter se encuentra bajo una licencia open source, es código libre.

2.3.5 Node.js

Es un entorno de ejecución para JavaScript construido con V8, motor de JavaScript de

Chrome (nodejs, s.f.). Las ventajas que destacan al implementar esta herramienta en el

desarrollo web según (Vergara A. , 2016) son:

• Permite utilizar el mismo lenguaje (javascript), tanto en el cliente como en el

servidor.

• Ofrece muy buena gestión de paquetes gracias a NPM. Detrás de Node hay una

gran comunidad documentando, haciendo tutoriales y creando nuevos módulos.

• Con Node.js es posible hacer en el servidor: acceso a ficheros, a bases de datos,

conexiones de clientes, entre otros.

• Está basado en eventos, así que toda la filosofía asíncrona que ya se utiliza con

AJAX para el cliente, se puede pasar al servidor.

31
CAPÍTULO III: Análisis y Diseño del sistema

3.1 Análisis del sistema

Se va a iniciar el desarrollo del software con el levantamiento de requerimientos, a

través de lo coordinado con el Coordinador Técnico Cultural quien está a cargo del

Direccionamiento Técnico de la Casa de la Cultura Ecuatoriana.

Lo que se obtiene como resultado es, la identificación de los procesos que pretende

realizar el sistema y que se cumpla con las necesidades de la organización de la cultura.

Los usuarios que pueden acceder y/o manejar el sistema web son: el coordinador

técnico, como administrador y el técnico, como usuario.

Para finalizar, se define con la información obtenida la preparación del diseño del

sistema web, mediante el proceso de ingeniería de software.

3.2 Diseño del sistema

3.2.1.1 Diagrama de casos de uso

32
3.1.1.1.1 Diagrama general

Mediante la modelación, se explicará la funcionalidad del sistema expuesto en cada

rol asignado.

Ilustración 4 Diagrama general de casos de uso

(Viera, 2022)

Como se muestra en la ilustración 10, el administrador puede ingresar al sistema y

tendrá acceso a la Administración de usuarios, Administración de establecimientos,

Administración de categorías, Administración de productos genéricos, Administración

de productos específicos y Administración de reparaciones. Mientras que, el técnico

33
puede ingresar al sistema y tendrá acceso a la Administración de productos genéricos,

Administración de productos específicos y Administración de reparaciones.

Siguiente nivel

Funcionalidad 1: Administración de usuarios

Ilustración 5 Funcionalidad 1 Administración de usuarios

(Viera, 2022)

A detalle

F1.1: Crear usuarios

Descripción: El administrador será capaz de crear dos tipos de usuario para que

accedan al sistema: administrador y técnico.

Actores: Administrador

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Usuarios”

34
3) El sistema despliega la vista de usuarios.

4) El actor llena la información de un nuevo usuario.

Flujo alterno:

4) El actor modifica la información de un usuario existente.

F1.2: Editar usuarios

Descripción: El administrador será capaz de editar la información de cualquier usuario.

Actores: Administrador

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Usuarios”

3) El sistema despliega la vista de usuarios.

4) El actor baja a la lista de usuarios existentes.

5) El actor ubica el usuario a editar y da clic en el ícono del lápiz.

6) El actor cambia la información que necesita.

Flujo alterno:

7) El actor crea un nuevo usuario.

F1.3: Eliminar usuarios

Descripción: El administrador será capaz de eliminar cualquier tipo de usuario.

35
Actores: Administrador

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Usuarios”

3) El sistema despliega la vista de usuarios.

4) El actor ubica el usuario a eliminar y da clic en el ícono del basurero.

5) El actor elimina al usuario.

Flujo alterno:

5) El actor modifica la información de un usuario existente.

Funcionalidad 2: Administración de establecimientos

Ilustración 6 Funcionalidad 2 Administración de establecimientos

(Viera, 2022)

36
A detalle

F2.1: Crear establecimientos

Descripción: El administrador será capaz de crear establecimientos, los cuales son las

salas y teatros de la CCE.

Actores: Administrador

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Establecimientos”

3) El sistema despliega la vista de establecimientos.

4) El actor llena la información de un nuevo establecimiento.

Flujo alterno:

5) El actor modifica la información de un establecimiento existente.

F2.2: Editar establecimientos

Descripción: El administrador será capaz de editar la información de cualquier

establecimiento.

Actores: Administrador

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

37
2) En la barra menú da clic en “Establecimientos”

3) El sistema despliega la vista de establecimiento.

4) El actor baja a la lista de establecimientos existentes.

5) El actor ubica el establecimiento a editar y da clic en el ícono del lápiz.

6) El actor cambia la información que necesita.

Flujo alterno:

6) El actor crea un nuevo establecimiento.

F2.3: Eliminar establecimientos

Descripción: El administrador será capaz de eliminar cualquier establecimiento.

Actores: Administrador

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Establecimientos”

3) El sistema despliega la vista de establecimientos.

4) El actor ubica el establecimiento a eliminar y da clic en el ícono del basurero.

5) El actor elimina al establecimiento.

Flujo alterno:

6) El actor modifica la información de un establecimiento existente.

38
Funcionalidad 3: Administración de categorías

Ilustración 7 Funcionalidad 3 Administración de categorías

(Viera, 2022)

A detalle

F3.1: Crear categorías

Descripción: El administrador será capaz de crear categorías, los cuales son de audio y

video.

Actores: Administrador

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Categorías”

3) El sistema despliega la vista de categorías.

4) El actor llena la información de una nueva categoría.

39
Flujo alterno:

5) El actor modifica la información de una categoría existente.

F3.2: Editar categorías

Descripción: El administrador será capaz de editar la información de cualquier

categoría.

Actores: Administrador

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Categorías”

3) El sistema despliega la vista de categorías.

4) El actor baja a la lista de categorías existentes.

5) El actor ubica la categoría a editar y da clic en el ícono del lápiz.

6) El actor cambia la información que necesita.

Flujo alterno:

7) El actor crea una nueva categoría.

F3.3: Eliminar categorías

Descripción: El administrador será capaz de eliminar cualquier categoría.

Actores: Administrador

40
Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Categorías”

3) El sistema despliega la vista de categorías.

4) El actor ubica la categoría a eliminar y da clic en el ícono del basurero.

5) El actor elimina la categoría.

Flujo alterno:

6) El actor modifica la información de una categoría existente.

Funcionalidad 4: Administración de productos genéricos

Ilustración 8 Funcionalidad 4 Administración de productos genéricos

(Viera, 2022)

41
A detalle

F4.1: Crear productos genéricos

Descripción: El administrador será capaz de crear productos genéricos, que son los

equipos tecnológicos categorizados en equipos de audio y video.

Actores: Administrador

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Catálogo”

3) El sistema despliega la vista de productos genéricos.

4) El actor llena la información de un nuevo producto genérico.

Flujo alterno:

5) El actor modifica la información de un producto genérico existente.

F4.2: Editar productos genéricos

Descripción: El administrador y el técnico serán capaces de editar la información de

cualquier producto genérico.

Actores: Administrador y técnico

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

42
2) En la barra menú da clic en “Catálogo”

3) El sistema despliega la vista de productos genéricos.

4) El actor baja a la lista de productos genéricos existentes.

5) El actor ubica los productos genéricos a editar y da clic en el ícono del lápiz.

6) El actor cambia la información que necesita.

Flujo alterno:

7) El actor crea un nuevo producto genérico.

F4.3: Eliminar productos genéricos

Descripción: El administrador será capaz de eliminar cualquier producto genérico.

Actores: Administrador

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Catálogo”

3) El sistema despliega la vista de productos genéricos.

4) El actor ubica el producto genérico a eliminar y da clic en el ícono del basurero.

5) El actor elimina el producto genérico.

Flujo alterno:

6) El actor modifica la información de un producto genérico existente.

43
Funcionalidad 5: Administración de productos específicos

Ilustración 9 Funcionalidad 5 Administración de productos específicos

(Viera, 2022)

A detalle

F5.1: Crear productos específicos

Descripción: El administrador y el técnico serán capaces de crear productos

específicos, que son los equipos tecnológicos previamente categorizados y ahora

seleccionados en el establecimiento que correspondan.

Actores: Administrador y técnico

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Productos”

3) El sistema despliega la vista de productos específicos.

44
4) El actor llena la información de un nuevo producto específico.

Flujo alterno:

5) El actor modifica la información de un producto específico existente.

F5.2: Editar productos específicos

Descripción: El administrador y el técnico serán capaces de editar la información de

cualquier producto específico.

Actores: Administrador y técnico

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Productos”

3) El sistema despliega la vista de productos específicos.

4) El actor baja a la lista de productos específicos existentes.

5) El actor ubica los productos específicos a editar y da clic en el ícono del lápiz.

6) El actor cambia la información que necesita.

Flujo alterno:

7) El actor crea un nuevo producto específico.

45
F5.3: Eliminar productos específicos

Descripción: El administrador y el técnico serán capaces de eliminar cualquier

producto específico.

Actores: Administrador y técnico

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Productos”

3) El sistema despliega la vista de productos específicos.

4) El actor ubica el producto específico a eliminar y da clic en el ícono del

basurero.

5) El actor elimina el producto específico.

Flujo alterno:

6) El actor modifica la información de un producto específico existente.

46
Funcionalidad 6: Administración de reparaciones

Ilustración 10 Funcionalidad 6 Administración de reparaciones

(Viera, 2022)

A detalle

F6.1: Crear reparaciones

Descripción: El administrador y el técnico serán capaces de crear reparaciones, que son

los equipos tecnológicos en el establecimiento que correspondan y con el estado de

reparación.

Actores: Administrador y técnico

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Reparaciones”

3) El sistema despliega la vista de reparaciones.

4) El actor llena la información de una reparación.

47
Flujo alterno:

5) El actor modifica la información de una reparación existente.

F6.2: Editar reparaciones

Descripción: El administrador y el técnico serán capaces de editar la información de

cualquier reparación.

Actores: Administrador y técnico

Flujo principal:

1) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

2) En la barra menú da clic en “Reparaciones”

3) El sistema despliega la vista de reparaciones.

4) El actor baja a la lista de reparaciones existentes.

5) El actor ubica las reparaciones a editar y da clic en el ícono del lápiz.

6) El actor cambia la información que necesita.

Flujo alterno:

7) El actor crea una nueva reparación.

F6.3: Eliminar reparaciones

Descripción: El administrador y el técnico serán capaces de eliminar cualquier

reparación.

48
Actores: Administrador y técnico

Flujo principal:

8) El actor ingresa al sistema y da clic en el ícono del candado para escribir sus

credenciales.

9) En la barra menú da clic en “Reparación”

10) El sistema despliega la vista de reparaciones.

11) El actor ubica la reparación a eliminar y da clic en el ícono del basurero.

12) El actor elimina la reparación.

Flujo alterno:

13) El actor modifica la información de una reparación existente.

49
3.2.2 Modelo Conceptual UML

Ilustración 11 Modelo Conceptual UML

(Viera, 2022)

50
3.2.3 Modelo lógico

Ilustración 12 Modelo Lógico

(Viera. 2022)

51
3.2.4 Modelo físico

Ilustración 13 Modelo Físico

(Viera, 2022)

52
3.2.5 Diagrama de secuencia

Actor: administrador

Ilustración 14 Diagrama de secuencia: administrador

(Viera, 2022)

Actor: técnico

Ilustración 15 Diagrama de secuencia: técnico

(Viera, 2022)

53
3.2.6 Diagrama de actividades

Ilustración 16 Diagrama de actividades

(Viera, 2022)

54
3.2.7 Requerimientos funcionales

Se definió los siguientes requerimientos funcionales para el sistema a realizar:

• F1. Administración de usuarios

• F2. Administración de establecimientos

• F3. Administración de categorías

• F4. Administración de producto genérico

• F5. Administración de producto especifico

• F6. Administración de reparaciones

3.2.8 Requerimientos no funcionales

Se definió los siguientes requerimientos no funcionales para el sistema a realizar:

• El lenguaje empleado para el desarrollo de este sistema es PHP.

• La arquitectura del sistema será en dos capas: BackEnd y FrontEnd.

• El FrontEnd para el desarrollo de este sistema es en Bootstrap 3.

• Se utiliza la validación de los usuarios a través de un usuario y contraseña para

garantizar seguridad de la información.

55
3.3 Diseño de la base de datos

El diseño de la base de datos es la síntesis de las necesidades que han sido coordinadas

junto al representante de la CCE, el Coordinador Técnico Cultural. Se lo interpreta

como el diseño físico donde se encontrarán los datos del sistema, está representado por

tablas relacionadas donde se vinculan a través de atributos.

Ilustración 17 Modelo Conceptual

(Viera, 2022)

Como se muestra en la ilustración 11, la base de datos está diseñada en base a 6 tablas

de las cuales 5 están relacionadas entre sí. La tabla usuario recibe la información del

usuario que se va a crear, la tabla categoría recibe la información de las categorías que

puede crear el usuario que ya se encuentra dentro de la base de datos, la tabla

establecimiento recibe la información de los nuevos lugares donde se va a realizar los

controles o mantenimientos por parte del usuario, la tabla producto genérico recibe la

información de los equipos o artefactos que se encuentran en el inventario de la CCE y

56
dependen de la tabla categoría para elegir una que haya sido creada previamente, la

tabla producto específico recibe la información de los equipos y artefactos que existen

previamente en el inventario de la CCE por lo que depende de la tabla producto

genérico pero que se encuentran registradas en el establecimiento que ha sido agregado

previamente por lo que depende de la tabla establecimiento; y por último la tabla

reparación recibe la información de las órdenes de trabajo que depende de la tabla

producto específico.

El script de la base de datos se encuentra en la sección de Anexos como: Script

3.4 Diseño de BackEnd

Se determinó usar la arquitectura REST, que es una interfaz entre sistemas de acceso a

cualquier cliente que permita el uso de HTTP. Este tipo de arquitectura es ideal para el

desarrollo de sistemas en la web; permitiendo la realización de los métodos de petición

(POST, GET, PUT, DELETE) sobre los datos de la base de datos en todos los formatos

posibles. Considerado esta arquitectura como la solución más sencilla para la

manipulación de datos.

Ventajas de REST para el desarrollo de software

• El protocolo REST realiza la separación total de la interfaz de usuario del

servidor y el almacenamiento de datos.

• Permite mejorar la portabilidad de la interfaz a otras plataformas, es decir,

permite la escalabilidad de los proyectos.

• La API REST es adaptable a cualquier sintaxis y plataformas, es independiente a

la hora de migrar a otros entornos de desarrollo.

57
3.5 Diseño de FrontEnd

3.5.1 Diseño de ingreso al sistema

Ilustración 18 Ingreso al Sistema

(Viera, 2022)

El usuario que desee ingresar al sistema debe iniciar sesión dando clic en la figura del

candado, e ingresar su usuario y clave, las cuales deben ser creadas previamente por el

administrador.

58
3.5.2 Diseño del formulario para Iniciar Sesión

Ilustración 19 Formulario Login

(Viera, 2022)

El usuario debe digitar su usuario y clave asignados y luego dar clic en “Ingresar”

para pasar a la siguiente pantalla.

3.5.3 Diseño tablero principal (Administrador)

Ilustración 20 Vista del Administrador

(Viera, 2022)

59
El administrador del sistema web tiene acceso a manejar y a observar los datos de todas

las tablas del sistema.

3.5.4 Diseño de la vista principal (Usuario final)

Ilustración 21 Vista Principal del Usuario

(Viera, 2022)

El administrador del sistema web tiene acceso a manejar y no va a observar los datos de

todas las tablas del sistema.

60
3.5.5 Diseño visualización datos usuario

Ilustración 22 Vista del formulario Usuario y lista de Usuarios

(Viera, 2022)

La vista de usuario permite registrar al usuario como un administrador o un técnico del

sistema. Además, permite la visualización de la lista de usuarios registrados.

3.5.6 Diseño visualización datos categorías

Ilustración 23 Vista del formulario Categorías y lista de Categorías

(Viera. 2022)

61
La vista de categorías permite registrar al usuario que entra como administrador o

técnico del sistema. Además, permite la visualización de la lista de categorías que ya

han sido registrados.

3.5.7 Diseño visualización datos establecimiento

Ilustración 24 Vista del formulario Establecimiento y lista de Establecimientos

(Viera, 2022)

La vista de establecimiento permite registrar al usuario que entre como administrador

o técnico del sistema. Además, permite la visualización de la lista de establecimientos

que ya han sido registrados.

62
3.5.8 Diseño visualización datos catálogo productos

Ilustración 25 Vista del formulario Catálogo Productos y lista de Catálogo Productos

(Viera,2022)

La vista de catálogo productos permite registrar al usuario que entre con permisos de

administrador o técnico a nuevos catálogos productos llenando la información que se

solicita. Además, permite la visualización de la lista de catálogo de productos que ya

han sido registrados.

63
3.5.9 Diseño visualización datos productos

Ilustración 26 Vista del formulario Productos y lista de Productos

(Viera, 2022)

La vista de productos permite registrar al usuario que entre con permisos de

administrador o un técnico del sistema a nuevos productos llenando la información que

se solicita. Además, permite la visualización de la lista de productos que ya han sido

registrados.

64
3.5.10 Diseño visualización datos reparaciones

Ilustración 27 Vista del formulario Reparaciones y lista de Reparaciones

(Viera, 2022)

La vista de reparaciones permite registrar al usuario que entre con permisos de

administrador o técnico del sistema a nuevas reparaciones llenando la información que

se solicita. Además, permite la visualización de la lista de reparaciones registradas.

65
3.5.11 Diseño visualización reporte

Ilustración 28 Vista del Reporte y lista de Reportes

(Viera. 2022)

La vista del reporte de reparación permite que el usuario elija según el estado una

visualización de la lista de productos que han sido seleccionados para realizarse una

reparación. Además, permite exportar la información que se encuentra en una lista a un

archivo de Excel.

66
CAPÍTULO IV: Desarrollo del sistema web e implementación

4.1 Implementación de la metodología XP

Planificación inicial

Descripción:

Historias previstas para el desarrollo del proyecto.

Historia de Usuario
Número: 1 Usuario: Administrador

Nombre historia: Ingreso de usuarios al sistema

Prioridad en negocio: Riesgo en desarrollo:


Alta (Alta / Media / Baja)

Puntos estimados: 3 Iteración asignada: 1

Programador responsable: Kerlly Viera

Descripción:
La orden de trabajo se genera a partir de una verificación de datos donde se haya
asignado todas las características del lugar en donde debe ser atendido.

Observaciones:
Confirmado con el cliente
Tabla 1 Historia de usuario 1

(Viera, 2022)

67
Historia de Usuario
Número: 2 Usuario: Técnico

Nombre historia: Selección de reparaciones

Prioridad en negocio: Riesgo en desarrollo:


Alta (Alta / Media / Baja)

Puntos estimados: 2 Iteración asignada: 1

Programador responsable: Kerlly Viera

Descripción:
El técnico accede al sistema y genera su orden de trabajo.

Observaciones:
Tabla 2 Historia de usuario 2

(Viera, 2022)

Planificación inicial de las iteraciones:

Ideas iniciales acerca del desarrollo, planificación inicial de las historias a realizar por

cada iteración, plan de entrega e incidencias encontradas.

Retraso en la
3 Pruebas y entrega entrega

Iteraciones 2 Desarrollo e implementación Revisión de la base de datos

1 Levantamiento de requerimientos
0 0,5 1 1,5 2 2,5 3
Semanas

Tabla 3 Planeación iteración 1

(Viera, 2022)

68
Iteración 1

Primera iteración del proyecto


Historia de Usuario
Número: 1 Usuario: Administrador

Nombre historia: Creación de órdenes de trabajo

Prioridad en negocio: Riesgo en desarrollo:


Alta (Alta / Media / Baja)

Puntos estimados: 2 Iteración asignada: 1

Programador responsable: Kerlly Viera

Descripción:
Se genera una orden de trabajo después de registrar quién, dónde y qué se va a reparar.

Observaciones:
Tabla 4 Historia de usuario 1 Iteración 1

(Viera, 2022)

Historia de Usuario
Número: 2 Usuario: Técnico

Nombre historia: Selección de catálogo de productos

Prioridad en negocio: Riesgo en desarrollo:


Media (Alta / Media / Baja)

Puntos estimados: 2 Iteración asignada: 1


Programador responsable: Kerlly Viera

Descripción:
El técnico está en la capacidad de identificar cada producto en su respectiva categoría
y/o añadir otra.

Observaciones:
Tabla 5 Historia de usuario 2 Iteración 1

(Viera, 2022)

69
Tarea

Tarea

Número tarea: 1 Número historia: 1

Nombre tarea: Comprobación de la base de datos

Tipo de tarea: Desarrollo Puntos estimados: 0.5

Fecha inicio: 06 diciembre 2020 Fecha fin: 10 diciembre 2020

Programador responsable: Equipo XP

Descripción:
Comprobación que la definición establecida para la base de datos admite los campos
establecidos.

Tabla 6 Tarea 1 Historia de usuario 1

(Viera, 2022)

Tarea

Número tarea: 1 Número historia: 2

Nombre tarea: Diseño de la interfaz del sistema web

Tipo de tarea: Desarrollo Puntos estimados: 0.5

Fecha inicio: 10 febrero 2021 Fecha fin: 20 febrero 2021

Programador responsable: Desarrollo

Descripción:
Diseño de la ventana que muestre el listado de usuarios, establecimientos y categorías.

Tabla 7 Tarea 1 Historia de usuario 2

(Viera, 2022)

70
Iteración 2

Segunda iteración del proyecto


Historia de Usuario
Número: 3 Usuario: Técnico

Nombre historia: Generación de reporte

Prioridad en negocio: Riesgo en desarrollo:


Alta (Alta / Media / Baja)

Puntos estimados: 3 Iteración asignada: 1

Programador responsable: Kerlly Viera

Descripción:
El administrador o usuario al finalizar las elecciones de todas las características del
producto a reparar, está en la capacidad de generar un reporte que se descargue en Excel.

Observaciones:
El reporte puede descargarse por cada estado de la orden de trabajo.
Tabla 8 Historia de usuario 3 Iteración 2

(Viera, 2022)

Tarea

Tarea

Número tarea: 1 Número historia: 3

Nombre tarea: Sincronización de los datos de la base de datos

Tipo de tarea: Desarrollo Puntos estimados: 0.5

Fecha inicio: 08 marzo 2021 Fecha fin: 15 marzo 2021

Programador responsable: Equipo XP

Descripción:
El reporte debe contener los elementos nuevos registrados en todas las tablas de la base
de datos.

Tabla 9 Tarea 1 Historia de usuario 3

(Viera, 2022)

71
Diario de actividades

Manager

FECHA ACTIVIDAD REALIZADA T(h) OBSERVACIONES


09/11/20 Reunión con representante de la Casa de la 1 Primer contacto con el personal
Cultura Ecuatoriana involucrado
23/11/20 Creación de órdenes de trabajo 3
06/12/20 Comprobación de la base de datos 5
10/02/21 Diseño de la interfaz del sistema web 2
24/02/21 Generación de reporte 3
08/03/21 Sincronización de los datos de la base de 3
datos
12/04/21 Presentación de la iteración 1 1,5
14/06/21 Presentación de la iteración 2 1,5
13/09/21 Correcciones por parte del representante de 1
la Casa de la Cultura Ecuatoriana
15/04/22 Presentación del proyecto al representante 2
de la Casa de la Cultura Ecuatoriana
24/02/22 Entrega final del proyecto 1 Enviado por correo
Tabla 10 Diario de actividades, Manager

(Viera, 2022)

Programador

FECHA ACTIVIDAD REALIZADA T(h) OBSERVACIONES


09/11/20 Reunión con representante de la Casa de la 1 Primer contacto con el personal
Cultura Ecuatoriana involucrado
20/11/20 Revisión de las historias de usuario 0,25 Primeras historias
21/11/20 Arquitectura del proyecto 4
23/11/20 Creación de órdenes de trabajo 3
05/12/20 Nueva revisión de las historias usuario para 0,5 Historias de usuario con cambios
comprobar que se ajustan a las necesidades
explicadas por el representante
06/12/20 Comprobación de la base de datos 5

72
10/02/21 Diseño de la interfaz del sistema web 2
23/02/21 Reunión con el representante para mostrarle
los avances realizados sobre las historias de
usuario
24/02/21 Generación de reporte 3
08/03/21 Sincronización de los datos de la base de 3
datos
14/06/21 Detección e identificación de errores 10
11/10/21 Finalización de las tareas de la historia y 4
preparación de la presentación del proyecto
Tabla 11 Diario de actividades, Programador

(Viera, 2022)

Tracker/ Tester

FECHA ACTIVIDAD REALIZADA T(h) OBSERVACIONES


09/11/20 Reunión con representante de la Casa de la 1 Primer contacto con el personal
Cultura Ecuatoriana involucrado
23/11/20 Creación de órdenes de trabajo 3
06/12/20 Comprobación de la base de datos 5
11/01/21 Pruebas de la base de datos 1
10/02/21 Diseño de la interfaz del sistema web 2 Diseño de todas las vistas del
sistema
24/02/21 Generación de reporte 3
08/03/21 Sincronización de los datos de la base de 3
datos
20/09/21 Pruebas unitarias 2
29/09/21 Pruebas de instalación 3 Pruebas en equipos terceros
Tabla 12 Diario de actividades, Tracker

(Viera, 2022)

73
4.2 Desarrollo de backend

Los programas que aportaron para la ejecución de este trabajo de desarrollo son:

• DBeaver

• XAMPP

• Visual Studio Code

• CodeIgniter

• Node.js

4.2.1 Modelos

Los modelos son archivos PHP creados con la funcionalidad de enlace con la base de

datos del sistema, su objetivo es realizar las consultas que pida el usuario.

Cada modelo del sistema consta de funciones tradicionales para la administración de

las relaciones entre las tablas y las consultas SQL.

Ilustración 29 Modelos

(Viera, 2022)

Como se muestra en la ilustración 23, se presenta los modelos creados por cada tabla

de la base de datos y adicional un modelo de la validación de la información para el

ingreso al sistema.

74
Un ejemplo del modelo de creado: UsuarioModel, donde se visualizará las funciones

creadas necesarias para la relación entre las tablas y las consultas SQL.

Ilustración 30 Modelo estudiante

(Viera, 2022)

Como se muestra en la ilustración 24, en el archivo del modelo del usuario se aprecia

como en cada modelo contiene las funciones requeridas para gestionar la interrelación

adecuada.

4.2.2 Controladores

Los controladores son archivos PHP creados con la funcionalidad de agrupar la lógica

de las peticiones de HTTP agrupadas. Los controladores son los que reciben las

peticiones del frontend y devuelve el resultado después de delegar cada petición que

realice el usuario.

75
Ilustración 31 Controladores

(Viera, 2022)

Como se muestra en la figura 25, se presenta un controlador donde se crea las

funciones necesarias para cada tabla de la base de datos.

Un ejemplo de un controlador creado: Admin, donde se visualizará las funciones

creadas.

Ilustración 32 Controlador usuario

(Viera, 2022)

76
Como se muestra en la ilustración 26, en el archivo del controlador del usuario se

aprecia como en cada modelo contiene las funciones requeridas para gestionar la

interrelación adecuada.

4.2.3 Vistas

Los controladores son archivos PHP creados con la funcionalidad de separar la lógica

de la presentación donde se receptan datos y se devuelve información.

Ilustración 33 Vistas

(Viera, 2022)

Como se muestra en la ilustración 27, se presentan las vistas creadas por cada tabla de

la base de datos y adicional de las vistas que se mostrarán para la página web.

77
Un ejemplo de una vista creada: usuario, donde visualiza las funciones creadas.

Ilustración 34 Vista usuario

(Viera, 2022)

Como se muestra en la ilustración 28, en el archivo de la vista del usuario se aprecia

las líneas de código que implementan el contenido que se va a visualizar en la página

web.

78
CAPÍTULO V: Evaluación del sistema

5.1. Cuadro comparativo de la funcionalidad del sistema web

La funcionalidad de un producto software es la capacidad de suministrar el conjunto

de funciones que deben satisfacer las necesidades implícitas y/o explicitas de los

usuarios. En la siguiente tabla se analizará bajo las siguientes subcategorías que abarcan

los aspectos relevantes en relación con la funcionalidad de un producto software.

Categorías Pésimo Malo Normal Bueno Excelente

Apropiabilidad X

Exactitud X

Interoperabilidad X

Seguridad X

Conformidad en X
la funcionalidad

Tabla 13 Cuadro comparativo de la funcionalidad

(Viera, 2022)

79
5.2. Pruebas del sistema web por personal de la Casa de la Cultura Ecuatoriana

Según lo coordinado con el Coordinador Técnico, el conjunto de personas que están a

cargo del control y mantenimiento de los equipos de audio y video que se encuentran en

las salas y teatros de la CCE, son 18. A continuación un ejemplo de cómo se realizaron

las pruebas a través de localtunnel (exponer el servidor de desarrollo en local al mundo

real).

Ilustración 35 Desarrollo a través de localtunnel

(Viera, 2022)

Utilizando PHPUnit, entorno para realizar pruebas unitarias en el lenguaje de

programación PHP; se realizaron pruebas unitarias y pruebas de integración a las rutas y

los componentes.

80
5.2.1 Pruebas unitarias

Ilustración 360 Pruebas unitarias por PHP Unit con el módulo TestUnit

(Viera, 2022)

5.2.2 Pruebas de integración

Ilustración 371 Pruebas de integración por PHP Unit con el módulo TestUnit

(Viera, 2022)

81
5.3. Encuesta de satisfacción del sistema web

La encuesta de satisfacción se realizó en los formularios gratuitos que permite Google,

con 5 preguntas, que buscan conocer la opinión de los usuarios que van a manejar el

sistema.

Preguntas del formulario de Google Tipo de pregunta

¿Qué tan satisfecho está con el proceso Escala del 1 al 5.

digitalizado de reparaciones para la CCE? Donde 1 es “Totalmente insatisfecho”

y 5 es “Totalmente satisfecho”

¿Está de acuerdo en que se reemplace este Varias opciones, una sola respuesta.

sistema por el proceso tradicional que maneja (Sí, No, Tal vez)

la CCE para las órdenes de reparaciones?

¿Qué tan de acuerdo está al evitar consumir Escala del 1 al 5.

papel en la documentación como se hacía con Donde 1 es “Totalmente en

el antiguo proceso de la CCE? desacuerdo” y 5 es “Totalmente de

acuerdo”

¿Cree que todo el personal administrativo y Varias opciones, una sola respuesta.

técnico a cargo de los teatros y salas de la CCE (Sí, No, Tal vez)

posean un celular con acceso a internet?

¿Qué tan complicado fue manejar el sistema Escala del 1 al 5.

web para el Control y Mantenimiento de los Donde 1 es “Muy difícil” y 5 es

equipos de audio y video para los teatros y “Muy fácil”

salas de la CCE?

Tabla 14 Explicación de las preguntas en la encuesta

(Viera, 2022)

82
5.4. Resultados de la encuesta de satisfacción

El número de personas a encuestar serán las 18 ya que, al ser un universo pequeño, al

aplicar la fórmula de la muestra no hace una reducción en el número de personas a

encuestar.

• Primera pregunta

Ilustración 32 Pregunta 1 de la encuesta de satisfacción

(Viera, 2022)

Como se muestra en la ilustración 32, los resultados de las encuestas realizadas

arrojan que en la primera pregunta en una escala donde 1 es “Totalmente insatisfecho” y

5 es “Totalmente satisfecho”, la mayoría del equipo técnico votó por el número 4 que se

consideraría como solamente “satisfecho”.

83
• Segunda pregunta

Ilustración 33 Pregunta 2 de la encuesta de satisfacción

(Viera, 2022)

Como se muestra en la ilustración 33, los resultados de las encuestas realizadas

arrojan que, en la segunda pregunta entre varias opciones y una sola respuesta, la

mayoría del equipo técnico votó que se encuentra de acuerdo con reemplazar el proceso

tradicional de reparaciones.

84
• Tercera pregunta

Ilustración 384 Pregunta 3 de la encuesta de satisfacción

(Viera, 2022)

Como se muestra en la ilustración 34, los resultados de las encuestas realizadas

arrojan que en la tercera pregunta en una escala donde 1 es “Totalmente en desacuerdo”

y 5 es “Totalmente de acuerdo” la mayoría del equipo técnico votó por el número 5 que

se considera como “Totalmente de acuerdo”.

• Cuarta pregunta

Ilustración 395 Pregunta 4 de la encuesta de satisfacción

(Viera, 2022)

85
Como se muestra en la ilustración 35, los resultados de las encuestas realizadas

arrojan que, en la cuarta pregunta entre varias opciones y una sola respuesta, la mayoría

del equipo técnico votó que sí creen que todo el personal administrativo y técnico a

cargo de los teatros y salas de la CCE posean un celular con acceso a internet.

• Quinta pregunta

Ilustración 406 Pregunta 5 de la encuesta de satisfacción

(Viera, 2022)

Como se muestra en la ilustración 36, los resultados de las encuestas realizadas

arrojan que en la quinta pregunta en una escala donde 1 es “Muy difícil” y 5 es “Muy

fácil” la mayoría del equipo técnico votó por el número 3 y por el número 4 que se

considera como “Normal” y “Fácil”, respectivamente.

86
CAPÍTULO V: Conclusiones y Recomendaciones

5.1 Conclusiones

1) Se concluye que el desarrollo y la implementación del sistema web CRM se ha

completado correctamente de tal manera que permite mantener el control y

mantenimiento de los equipos de audio y video.

2) Se concluye que el desarrollo de este sistema web analizó los procesos

tradicionales de la Casa de la Cultura Ecuatoriana, lo que permitió optimizar el

control y mantenimiento de los equipos de audio y video.

3) Para el desarrollo de la aplicación se utilizó la metodología ágil XP, que facilitó

la organización de cada punto a definir durante el proceso hasta la

implementación.

4) Siguiendo la metodología de desarrollo seleccionada para el desarrollo de la

aplicación, se inició con el levantamiento de requerimientos con el apoyo directo

del responsable del proceso de la CCE, para el sistema web CRM para el control

y mantenimiento de equipos de audio y video.

5) La validación de la funcionalidad de la aplicación se evaluó a través de

encuestas aplicadas a los usuarios técnicos de la CCE, lo que garantizó que la

implementación del sistema web para el control y mantenimiento de equipos de

audio y video, enfocado para el equipo técnico de la CCE, se haya realizado con

éxito, cumpliendo los objetivos trasados.

87
5.2 Recomendaciones

1) Previo el inicio del ciclo de desarrollo de software de una aplicación, es de vital

importancia seleccionar una metodología de desarrollo, para generar

progresivamente los entregables y exigencias de la metodología seleccionada.

2) La participación del usuario es imprescindible para el levantamiento de los

requerimientos funcionales.

3) Establecer un procedimiento para la validación de la funcionalidad del sistema

web es definir los requerimientos funcionales lo más claro posible, para su

correcto desarrollo e implementación.

4) Se recomienda incrementar la funcionalidad del sistema para que realice los

controladores y mantenimientos de equipos de iluminaria o de los mismos

establecimientos.

5) Se recomienda almacenar un respaldo del código fuente en aplicaciones de

versionamiento en la nube, una vez adquirido por la institución para que no se

pierda la versión original en cada de alterar incorrectamente el sistema web.

88
Referencias

Bibliografía
BBVA Api Market. (23 de Marzo de 2016). Obtenido de BBVA Api Market:
https://www.bbvaapimarket.com/es/mundo-api/api-rest-que-es-y-cuales-son-sus-
ventajas-en-el-desarrollo-de-
proyectos/#:~:text=Buscando%20una%20definici%C3%B3n%20sencilla%2C%20REST,p
osibles%2C%20como%20XML%20y%20JSON.

Carrión, C. B. (2012). REGLAMENTO ORGÁNICO DE GESTIÓN ORGANIZACIONAL POR PROCESOS.


Quito.

CARRION, C. D. (2018). ESTATUTO ORGANICO POR PROCESOS DE LA CASA.

CCE Benjamín Carrión. (2019). Obtenido de CCE Benjamín Carrión:


https://casadelacultura.gob.ec/

Cobo, Á. (2005). PHP y MySQL: Tecnología para el desarrollo de aplicaciones web. Ediciones
Díaz de Santos.

CodeIgniter. (s.f.). codeigniter. Recuperado el 5 de Mayo de 2022, de codeigniter:


https://www.codeigniter.com/

Developer. (8 de Diciembre de 2020). Obtenido de Developer:


https://developer.mozilla.org/es/docs/Web/HTTP/Overview

diplomadogestioncalidadsoftware2015. (2015). Recuperado el 5 de Mayo de 2022, de


diplomadogestioncalidadsoftware2015:
https://diplomadogestioncalidadsoftware2015.wordpress.com/norma-iso-
9126/calidad-interna-y-
externa/funcionalidad/#:~:text=Se%20refiere%20a%20la%20capacidad,ser%20utilizad
o%20bajo%20condiciones%20espec%C3%ADficas.

EDIX. (19 de Agosto de 2021). Recuperado el 4 de Mayo de 2022, de EDIX:


https://www.edix.com/es/instituto/framework/#:~:text=Un%20framework%20es%20
un%20esquema,organizaci%C3%B3n%20y%20desarrollo%20de%20software.

Foreman, D. (2021). Bootstrap 3 Foundations. The Random Knowledge Enthusiast.

García, M. (30 de Mayo de 2020). NETTIX. Obtenido de NETTIX:


https://www.nettix.com.pe/blog/web-blog/que-es-xampp-y-como-puedo-
usarlo/#:~:text=XAMPP%20es%20una%20herramienta%20de,de%20tener%20acceso%
20a%20internet.

Granollers, T. (s.f.). Curso de Interacción Persona-Ordenador. Recuperado el 4 de Mayo de


2022, de Curso de Interacción Persona-Ordenador: https://mpiua.invid.udl.cat/fases-
mpiua/diseno/modelo-mental-y-modelo-
conceptual/#:~:text=El%20modelo%20conceptual%20de%20un,la%20Memoria%20a%
20Largo%20Plazo.

IBM. (9 de Marzo de 2021). IBM. Recuperado el 4 de Mayo de 2022, de IBM:


https://www.ibm.com/docs/es/elm/6.0.3?topic=requirements-defining-use-cases

89
Letelier, P. (2006). cyta. Recuperado el 18 de Septiembre de 2021, de cyta:
http://www.cyta.com.ar

Martínez, E. (16 de Agosto de 2017). Slideshare. Obtenido de Slideshare:


https://es.slideshare.net/ErickAguilaMartnez/versionamiento-de-software

Molina, J., & Zea, M. (2017). Metodologías de desarrollo en aplicaciones web. Revista Arjé,
246.

Navarro, C., & Martínez, A. (2013). Revisión de metodologías ágiles para el desarrollo de
software. PROSPECTIVA, 30-39.

nodejs. (s.f.). nodejs. Recuperado el 5 de Mayo de 2022, de nodejs: https://nodejs.org/es/

Ovando, D. (2019). Bootstrap y Laravel, herramientas para el desarrollo de aplicaciones web.


Sinaloa: Universidad Politécnica de Sinaloa.

Paz, E. (8 de Mayo de 2020). Tipos de CRM: 3 enfoques para satisfacer al cliente, aumentar la
rentabilidad y los ingresos. Recuperado el 3 de Mayo de 2022, de
https://youtu.be/XJCScfuZliE

Pérez, S., Quispe, J., Mullicundo, F., & Lamas, D. (2021). Herramientas y tecnologías para el
desarrollo web desde el frontend al backend. Workshop de Investigadores en Ciencias
de la Computación, 347-348.

Quintero, J., & Sánchez, J. (2006). La cadena de valor: Una herramienta del pensamiento
estratégico. Maracaibo: Telos.

Ramos, M., & Aguilera, V. (2013). Ciencias de la Ingeniería y Tecnología (Vol. I). Guanajuato:
ECORFAN. Recuperado el 15 de Septiembre de 2021

Vergara, A. (2016). facilcloud. Recuperado el 5 de Mayo de 2022, de facilcloud:


https://www.facilcloud.com/noticias/5-ventajas-de-usar-node-js/

Vergara, J. (3 de NOVIEMBRE de 2016). coriaweb. Obtenido de coriaweb:


https://www.coriaweb.hosting/codeigniter-cuales-algunas-ventajas/

90
Anexos

Script base de datos

-- MySQL dump 10.13 Distrib 5.7.26, for Win64 (x86_64)


--
-- Host: codesoft-ec.com Database: reparaciones
-- ------------------------------------------------------
-- Server version 5.6.48

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT


*/;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS
*/;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION
*/;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0
*/;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,
FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE,
SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `usuario`
--

DROP TABLE IF EXISTS `usuario`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `usuario` (

91
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nombres` varchar(500) DEFAULT NULL,
`apellidos` varchar(500) DEFAULT NULL,
`correo` varchar(100) DEFAULT NULL,
`cargo` varchar(100) DEFAULT NULL,
`estado` varchar(1) DEFAULT NULL,
`usuario` varchar(100) DEFAULT NULL,
`clave` varchar(100) DEFAULT NULL,
`tipo` varchar(25) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `usuario`
--

LOCK TABLES `usuario` WRITE;


/*!40000 ALTER TABLE `usuario` DISABLE KEYS */;
INSERT INTO `usuario` VALUES
(4,'Administrador','Admin','admin@gmail.com','gerente','A','admi
n','1234','Administrador'),
(6,'Viera','Andrés','aviera@casadelacultura.gob.ec','Coordinador
Técnico',NULL,'aviera','1234','Administrador'),
(7,'Perez','Jesus','jperez@casadelacultura.gob.ec','Técnico de
teatro',NULL,'jperez','123','Técnico'),
(8,'Moreno','Jonathan','jmoreno@casadelacultura.gob.ec','Técnico
de teatro',NULL,'jmoreno','123','Técnico'),
(9,'Ayala','Marcelo','mayala@casadelacultura.gob.ec','Técnico de
teatro',NULL,'mayala','123','Técnico'),
(10,'Patiño','Miguel','mpatino@casadelacultura.gob.ec','Sonidist
a Conjunto',NULL,'mpatino','123','Técnico'),
(11,'Suntaxi','Patricio','psuntaxi@casadelacultura.gob.ec','Técn
ico de teatro',NULL,'psuntaxi','123','Técnico'),
(12,'Benavidez','Ramiro','rbenavidez@casadelacultura.gob.ec','Té
cnico de teatro',NULL,'rbenavidez','123','Técnico'),

92
(13,'Farinango','Rina','rfarinango@casadelacultura.gob.ec','Técn
ico de teatro',NULL,'rfarinango','123','Técnico'),
(14,'Chicaiza','Eduardo','echicaiza@casadelacultura.gob.ec','Jef
e Técnico',NULL,'echicaiza','123','Administrador'),
(15,'Llanganate','Pablo','pllanganate@casadelacultura.gob.ec','J
efe Técnico',NULL,'pllanganate','123','Administrador'),
(16,'Quezada','Alejandro','aquezada@casadelacultura.gob.ec','Téc
nico de teatro',NULL,'aquezada','123','Técnico'),
(17,'Guaman','Carlos','cguaman@casadelacultura.gob.ec','Técnico
de teatro',NULL,'cguaman','123','Técnico'),
(18,'Haro','Christian','charo@casadelacultura.gob.ec','Técnico
de teatro',NULL,'charo','123','Técnico'),
(19,'Tuarez','Diego','dtuarez@casadelacultura.gob.ec','Técnico
de teatro',NULL,'dtuarez','123','Técnico'),
(20,'Lopez','Hector','hlopez@casadelacultura.gob.ec','Técnico de
teatro',NULL,'hlopez','123','Técnico'),
(21,'Cabezas','Hugo','hcabezas@casadelacultura.gob.ec','Técnico
de teatro',NULL,'hcabezas','123','Técnico');
/*!40000 ALTER TABLE `usuario` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `establecimiento`
--

DROP TABLE IF EXISTS `establecimiento`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `establecimiento` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nombre` varchar(100) DEFAULT NULL,
`estado` varchar(1) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

93
--
-- Dumping data for table `establecimiento`
--

LOCK TABLES `establecimiento` WRITE;


/*!40000 ALTER TABLE `establecimiento` DISABLE KEYS */;
INSERT INTO `establecimiento` VALUES (1,'Sala Jorge Icaza','A'),
(2,'Teatro Ágora','A'),
(3,'Teatro Nacional','A'),
(4,'Demetrio Aguilera Malta','A'),
(5,'Sala Benjamín Carrión','A'),
(6,'Teatro Prometeo','A'),
(7,'Jorge Carrera Andrade','A');
/*!40000 ALTER TABLE `establecimiento` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `categoria`
--

DROP TABLE IF EXISTS `categoria`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `categoria` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nombre` varchar(100) DEFAULT NULL,
`estado` varchar(1) DEFAULT NULL,
`descripcion` varchar(500) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--

94
-- Dumping data for table `categoria`
--

LOCK TABLES `categoria` WRITE;


/*!40000 ALTER TABLE `categoria` DISABLE KEYS */;
INSERT INTO `categoria` VALUES (1,'Audio','A','Elementos de
sonido para salas y teatros'),
(2,'Video','A','Elementos de video para salas y teatros');
/*!40000 ALTER TABLE `categoria` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `producto_generico`
--

DROP TABLE IF EXISTS `producto_generico`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `producto_generico` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`codigo` varchar(100) DEFAULT NULL,
`descripcion` varchar(500) DEFAULT NULL,
`estado` varchar(1) DEFAULT NULL,
`id_categoria` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `producto_generico_FK` (`id_categoria`),
CONSTRAINT `producto_generico_FK` FOREIGN KEY (`id_categoria`)
REFERENCES `categoria` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `producto_generico`

95
--

LOCK TABLES `producto_generico` WRITE;


/*!40000 ALTER TABLE `producto_generico` DISABLE KEYS */;
INSERT INTO `producto_generico` VALUES (1,'12345','Yamaha DSR
112','A',1),
(2,'23456','SONY HVR-Z7E','A',2),
(3,'34567','Canon XA11','A',2);
/*!40000 ALTER TABLE `producto_generico` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `producto_especifico`
--

DROP TABLE IF EXISTS `producto_especifico`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `producto_especifico` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`codigo_especifico` varchar(100) DEFAULT NULL,
`id_producto_generico` bigint(20) NOT NULL,
`id_establecimiento` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `producto_especifico_FK` (`id_producto_generico`),
KEY `producto_especifico_FK_1` (`id_establecimiento`),
CONSTRAINT `producto_especifico_FK` FOREIGN KEY
(`id_producto_generico`) REFERENCES `producto_generico` (`id`),
CONSTRAINT `producto_especifico_FK_1` FOREIGN KEY
(`id_establecimiento`) REFERENCES `establecimiento` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--

96
-- Dumping data for table `producto_especifico`
--

LOCK TABLES `producto_especifico` WRITE;


/*!40000 ALTER TABLE `producto_especifico` DISABLE KEYS */;
INSERT INTO `producto_especifico` VALUES (2,'PD981',2,2),
(4,'MLG123',3,4),
(5,'TN0001',3,3),
(6,'JI0002',1,1);
/*!40000 ALTER TABLE `producto_especifico` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `reparacion`
--

DROP TABLE IF EXISTS `reparacion`;


/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `reparacion` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`fecha_ingreso` date DEFAULT NULL,
`estado` varchar(1) DEFAULT NULL,
`observaciones` varchar(500) DEFAULT NULL,
`id_producto_especifico` bigint(20) NOT NULL,
`nombre_tecnico` varchar(512) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `reparacion_FK` (`id_producto_especifico`),
CONSTRAINT `reparacion_FK` FOREIGN KEY
(`id_producto_especifico`) REFERENCES `producto_especifico`
(`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

97
--
-- Dumping data for table `reparacion`
--

LOCK TABLES `reparacion` WRITE;


/*!40000 ALTER TABLE `reparacion` DISABLE KEYS */;
INSERT INTO `reparacion` VALUES (8,'2022-05-12','R','Cambio de
batería',5,'Paula Vásquez'),
(9,'2022-05-16','R','Cambio de batería',6,'Cabezas Hugo');
/*!40000 ALTER TABLE `reparacion` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Dumping routines for database 'reparaciones'
--
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;


/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS
*/;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

98
Aceptación del sistema web por parte del representante de la Casa de la Cultura

Ecuatoriana

99
Aprobación de las encuestas por parte del representante de la Casa de la Cultura

Ecuatoriana

100
101
Aprobación de las pruebas del sistema por parte del representante de la Casa de la

Cultura Ecuatoriana

102
103
Glosario de términos

1. Apropiabilidad: Es la capacidad del software para suministrar un conjunto

apropiado de funciones que cumplan tareas específicas y objetivos del usuario

(Funcionalidad, 2015).

2. Casos de uso: Un caso de uso es un artefacto que define una secuencia de

acciones que da lugar a un resultado de valor observable. Los casos de uso

proporcionan una estructura para expresar requisitos funcionales en el contexto

de procesos empresariales y de sistema (IBM, 2021).

3. CCE: Casa de la Cultura Ecuatoriana

4. Conformidad en la funcionalidad: Capacidad del software para ajustarse a los

estándares, convenciones y regulaciones relacionadas con la correcta

implementación de especificaciones durante todo el proceso de análisis y

construcción (Funcionalidad, 2015).

5. CRUD: (Create, Read, Update, Delete) es un acrónimo para las maneras en las

que se puede operar sobre información almacenada. Es un nemónico para las

cuatro funciones del almacenamiento persistente (Developer, 2020).

6. DELETE: Método para eliminar un recurso

7. Exactitud: Capacidad del software para proveer los resultados correctos y los

efectos pactados, con un adecuado grado de precisión (Funcionalidad, 2015).

8. Framework: Un framework es un esquema o marco de trabajo que ofrece una

estructura base para elaborar un proyecto con objetivos específicos, una especie

de plantilla que sirve como punto de partida para la organización y desarrollo de

software (Framework, 2021).

9. GET: Método para obtener un recurso

104
10. HTTP: HyperText Transfer Protocol, en español, Protocolo de Transferencia de

Hiper Textos. Es el nombre de un protocolo el cual nos permite realizar una

petición de datos y recursos, como pueden ser documentos HTML (Developer,

2020).

11. Interoperabilidad: Capacidad del software para interactuar con uno o más

sistemas específicos. Esto depende, en gran parte, de la necesidad de interacción

con los demás sistemas (Funcionalidad, 2015).

12. Modelo conceptual: El modelo conceptual de un sistema software constituye

una abstracción externa que describe mediante diagramas y notaciones con

distinto grado de formalidad el conocimiento que debe poseer una persona

acerca de un sistema, conocimiento que se encuentra almacenado en la memoria

a largo plazo (Granollers, s.f.).

13. POST: Método para insertar un recurso

14. PUT: Método para actualizar un recurso

15. REST: Representational State Transfer - Transferencia de Estado

Representacional. Es cualquier interfaz entre sistemas que use HTTP para

obtener datos o generar operaciones sobre esos datos en todos los formatos

posibles, como XML y JSON (BBVA Api Market, 2016).

16. Script: Documentos de fragmentos de código que contienen diversas

instrucciones para su ejecución.

17. Seguridad: Hace referencia a la capacidad del software para proteger los datos y

la información, con el fin de que personas no autorizadas nunca puedan ingresar

al sistema, leer o modificar los datos (Funcionalidad, 2015).

18. Versionamiento: El versionamiento de software es la manera de etiquetar el

código de software en el que se está trabajando de forma que se puedan

105
identificar los cambios realizados, tanto por complejidad o compatibilidad

(Martínez, 2017).

19. Xampp: Es una herramienta de desarrollo que te permite probar tu desarrollo

web basado en PHP en tu propio ordenador sin necesidad de tener acceso a

internet. XAMPP es una distribución de Apache que incluye diferentes

softwares libres. El nombre es un acrónimo compuesto por las iniciales de los

programas que lo constituyen: Linux, Apache, MyDQL/MariaDB, PHP, Perl

(García, 2020).

106

También podría gustarte