UNIVERSIDAD ESTATAL DEL SUR DE MANABÍ
FACULTAD DE CIENCIAS TÉCNICAS
CARRERA DE TECNOLOGÍAS DE LA INFORMACIÓN
PROYECTO DE TITULACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE
INGENIERA EN TECNOLOGÍAS DE LA INFORMACIÓN
TEMA
ESTUDIO DE FACTIBILIDAD DE UN SISTEMA WEB DE CONTROL Y RESERVA DE EQUIPOS PARA LABORATORIOS DE COMPUTACIÓN
AUTORA
PINCAY MUÑOZ ELISA GABRIELA
TUTOR
ING. JOSÉ NEVARDO PALADINES MORÁN. PhD.
JIPIJAPA – MANABÍ – ECUADOR
2022
ii
iii
iv
v
vi
DEDICATORIA
Indudablemente este logro se lo dedico a María Elisa Muñoz, mi mamá, mujer de un temple de acero, y a mi hermano Luis, quienes me impulsaron y me motivaron para a seguir adelante.
A mi enamorado, familia y amigos, quienes me han demostrado su apoyo incondicional y a los que quiero infinitamente.
Elisa Gabriela Pincay Muñoz
vii
AGRADECIMIENTO
Cuando inicié esta etapa solamente seguí mi corazón lleno de inquietudes, pero consiente de que a veces se gana o se pierde, perdí sueños, a veces hasta mi estabilidad emocional, pero ahora estoy segura de que gané mucho más, gané una historia más para mi colección.
Hoy agradezco la persona en la que me convertí, hecha de cambios y muchos sueños, segura y con un carácter reforzado, también agradezco a los medios que me permitieron llegar hasta aquí, a las personas, a los amores, apoyos incondicionales y a los apoyos inesperados.
Brindo por más momentos junto a estas personas y por nuevas historias.
Elisa Gabriela Pincay Muñoz
viii RESUMEN
Los estudios de factibilidad son una herramienta importante detrás de un desarrollo o una implementación, pues, toman los aspectos más relevantes del proyecto con el fin de determinar su viabilidad, El propósito de realizar este proyecto de investigación fue analizar herramientas de desarrollo y aspectos relevantes para la posterior construcción de todo tipo de sistema web y en particular para un control y reserva de equipos de laboratorios de computación. El análisis de la información recopilada permitió evaluar y recomendar metodologías y herramientas tecnológicas que apoyen el desarrollo de sistemas web informativos. En este proyecto se utilizó la técnica de encuesta, en la misma que participaron 175 estudiantes de la carrera Tecnologías de la Información, obteniendo resultados óptimos que fueron utilizados para el desarrollo de la propuesta. Como instancia final se presentó la propuesta en la cual se definió un estudio de factibilidad que consistió en un análisis comparativo de diferentes herramientas y metodologías investigadas a fin de establecer recomendaciones de aquellas que tuvieron características relevantes y que apoyan el desarrollo de sistemas web.
Palabras clave: control, desarrollo, factibilidad, herramientas, metodologías, sistemas web, viabilidad.
ix ABSTRACT
Feasibility studies are an important tool behind a development or implementation, they take the most relevant aspects of the project in order to determine its viability. The purpose of this research project was to analyze development tools and relevant aspects for the subsequent construction of a web system for control and reservation of computer laboratory equipment, the analysis of the information collected allowed to evaluate and recommend methodologies and tools that support the development of informative web systems. The survey technique was used in this project, in which 175 students of the Information Technologies career participated, obtaining optimal results that were used for the development of the proposal. As a final instance, the proposal was presented in which each of the tools and methodologies investigated were analyzed and compared in order to recommend those that had relevant characteristics and support the development of web systems.
Key words: control, development, feasibility, methodologies, tools, viability, web systems.
x
INDICE
APROBACIÓN DEL TUTOR ... ii
APROBACIÓN DEL TRIBUNAL ... iii
DECLARACIÓN DE AUTORÍA ... iv
RENUNCIA DE DERECHOS ... v
DEDICATORIA ... vi
AGRADECIMIENTO ... vii
RESUMEN ... viii
ABSTRACT ... ix
INDICE DE TABLAS ... xiv
INDICE DE GRÁFICOS ... xv
INTRODUCCIÓN ... 1
I. TITULO DEL PROYECTO ... 3
II. PROBLEMA DE INVESTIGACIÓN ... 4
2.1. Definición del problema ... 4
2.2. Formulación del problema ... 5
III. OBJETIVOS ... 6
3.1. Objetivo general ... 6
3.2. Objetivos específicos ... 6
IV. JUSTIFICACIÓN ... 7
V. MARCO TEORICO ... 8
5.1. Antecedentes ... 8
5.2. Bases teóricas ... 10
5.2.1. Estudios de factibilidad ... 10
Tipos de estudios de factibilidad ... 11
5.2.2. Aspectos relevantes para el desarrollo de una aplicación web ... 12
5.2.3. Entorno de desarrollo ... 14
xi
Niveles del entorno de desarrollo ... 14
Aptana Studio ... 14
Visual Studio Code ... 15
5.2.4. Herramientas de desarrollo ... 15
Front End ... 15
Back End ... 15
Full Stack ... 16
GitHub ... 16
Bootstrap ... 17
Archivos primarios de boopstrat ... 17
5.2.5. Framework ... 18
5.2.6. HTML5 ... 19
5.2.7. Lenguajes de Programación ... 20
¿Qué es un lenguaje de programación? ... 20
Lenguaje de programación de bajo nivel ... 20
Lenguaje de programación de alto nivel ... 21
5.2.8. Java ... 22
5.2.9. PHP ... 23
5.2.10. HTML ... 24
5.2.11. Sistemas gestores de base de datos ... 25
Sistemas Gestores de bases de datos Relacionales (SQL) ... 25
Base de datos MySQL ... 26
Sistema de gestión de base de datos MariaDB ... 28
Base de datos SQLite ... 28
Oracle ... 29
Sistemas Gestores de bases de datos No Relacionales (NoSQL) ... 29
MongoDB ... 30
xii
Redis ... 30
5.2.12. Servidor Local ... 31
XAMPP ... 32
5.2.13. Servidor Web ... 32
Apache ... 32
5.2.14. Metodologías de desarrollo ... 32
¿Qué es una metodología de desarrollo de software? ... 32
Metodologías de desarrollo de software tradicionales ... 33
Metodología en cascada ... 33
Metodología de prototipo o prototipado ... 34
Metodología modelo espiral ... 35
Modelo incremental ... 36
Metodología RAD ... 37
Metodología RUP ... 38
Metodologías de desarrollo de software ágiles ... 39
Metodología Kanban ... 39
Metodología Scrum ... 40
Metodología XP ... 40
5.2.15. Sistemas web ... 41
¿Qué es un sistema web? ... 41
¿Qué es una API? ... 42
¿Qué es un dominio? ... 43
5.3. MARCO CONCEPTUAL ... 44
VI. HIPOTESIS Y VARIABLES ... 46
6.1. Hipótesis ... 46
6.2. Variable independiente ... 46
6.3. Variable dependiente ... 46
xiii
VII. METODOLOGÍA DE LA INVESTIGACIÓN ... 47
7.1. Métodos ... 47
7.2. Técnicas ... 48
7.2.1. Encuesta ... 48
7.2.2. Instrumento ... 48
7.3. Población y Muestra ... 48
7.3.1. Población ... 48
7.3.2. Muestra ... 49
7.4. Recursos ... 50
VIII. PRESUPUESTO ... 52
IX. ANALISIS DE RESULTADOS ... 53
X. CRONOGRAMA DE ACTIVIDADES ... 63
XI. PROPUESTA ... 64
I. TÍTULO DE LA PROPUESTA ... 64
II. DESCRIPCIÓN DE LA PROPUESTA ... 64
III. OBJETIVOS ... 64
3.1. Objetivo general ... 64
3.2. Objetivos específicos: ... 64
IV. DESARROLLO DE LA PROPUESTA ... 65
V. METODOLOGÍA ... 65
5.1. Factibilidad técnica ... 65
5.2. Factibilidad operativa ... 75
5.3. Factibilidad Económica ... 75
5.4. Recomendaciones para Front End de un sistema web ... 76
XII. CONCLUSIONES Y RECOMENDACIONES ... 77
12.1. Conclusiones ... 77
12.2. Recomendaciones ... 77
xiv
INDICE DE TABLAS
Tabla 1 Datos de la población ... 49
Tabla 2 Presupuesto ... 52
Tabla 3 Herramientas de desarrollo web ... 53
Tabla 4 Nivel de conocimiento sobre las herramientas de desarrollo web ... 54
Tabla 5 Tipo de desarrollo de aplicaciones ... 55
Tabla 6 Herramientas de software libre... 56
Tabla 7 Herramientas de desarrollo web que favorecen el desarrollo de un sistema ... 57
Tabla 8 Metodologías de desarrollo ... 58
Tabla 9 Metodología de desarrollo indicada para el desarrollo de un sistema web ... 59
Tabla 10 ¿Qué sistema gestor de base de datos utilizaría en el desarrollo de un sistema web? ... 60
Tabla 11 Contar con un estudio de factibilidad para el desarrollo de un sistema web... 61
Tabla 12 Importancia de realizar un estudio de factibilidad de un sistema web de control y reserva de computadora para laboratorios de computación ... 62
Tabla 13 Cronograma de actividades ... 63
Tabla 14 Cuadro comparativo de las metodologías de desarrollo ... 66
Tabla 15 Cuadro comparativo de las herramientas de desarrollo... 70
Tabla 16 Cuadro comparativo de hardware ... 74
Tabla 17 Presupuesto de las herramientas analizadas ... 75
xv
INDICE DE GRÁFICOS
Gráfico 1 Herramientas de desarrollo web ... 53
Gráfico 2 Nivel de conocimiento sobre las herramientas de desarrollo web ... 54
Gráfico 3 Tipo de desarrollo de aplicaciones ... 55
Gráfico 4 Herramientas de software libre ... 56
Gráfico 5 Herramientas de desarrollo web que favorecen el desarrollo de un sistema ... 57
Gráfico 6 Metodologías de desarrollo ... 58
Gráfico 7 Metodología de desarrollo indicada para el desarrollo de un sistema web ... 59
Gráfico 8 ¿Qué sistema gestor de base de datos utilizaría en el desarrollo de un sistema web? ... 60
Gráfico 9 Contar con un estudio de factibilidad para el desarrollo de un sistema web ... 61
Gráfico 10 Importancia de realizar un estudio de factibilidad de un sistema web de control y reserva de computadora para laboratorios de computación ... 62
1
INTRODUCCIÓN
El constante avance tecnológico hace que se haya convertido en una necesidad incluir el uso de las Tecnologías de la Información en múltiples ámbitos. De manera que se tenga que realizar estudios que determinen la factibilidad de los proyectos, consistiendo esta tarea en la recopilación de información, la cual es analizada y seleccionada a fin de establecer las sugerencias debidamente evaluadas.
En los estudios de factibilidad comúnmente se realiza un análisis desde un enfoque técnico, operativo y económico, dentro de los cuales se va a determinar si existe el recursos humano y técnico para el desarrollo e implementación de proyectos tecnológicos como los sistemas web, puesto que, son beneficiosos en su fácil uso y velocidad de respuesta.
Este proyecto de investigación está organizado por doce secciones, en cada una de estas se tratan sus puntos más importantes. En la segunda sección, se muestra la problemática dentro de la cual se expone la falta de automatización en laboratorios de computación, además, que tampoco hay un estudio factibilidad que lo respalde, En la tercera sección, se presentan los objetivos del proyecto de investigación los cuales conllevan a realizar un estudio de factibilidad analizando y recomendando las herramientas idóneas para el desarrollo de sistemas web, En la cuarta sección se muestra la justificación del problema.
En la quinta sección se muestra el marco teórico en el que se definen los antecedentes investigativos, bases teóricas y marco conceptual. En la sexta sección se presenta la hipótesis y las variables. La séptima sección se muestra la metodología de investigación utilizada en el desarrollo del proyecto investigativo, La octava sección se presenta el presupuesto con el recurso financiero para desarrollar este proyecto. La novena sección expone los resultados
2
obtenidos con las encuestas que fueron aplicadas a 175 estudiantes de la carrera Tecnologías de la Información de la universidad Estatal del Sur de Manabí. En la décima sección se presenta el cronograma de actividades con el cual fue dirigido este proyecto de investigación.
La decimoprimera sección muestra la propuesta de solución del proyecto que fue realizar el estudio de factibilidad contemplando los aspectos técnicos, operativos y económicos para determinar la viabilidad de este proyecto. En la última sección se mostraron las conclusiones y recomendaciones que surgieron del proyecto de investigación.
3
I. TITULO DEL PROYECTO
Estudio de factibilidad de un sistema web de control y reserva de equipos para laboratorios de computación
4
II. PROBLEMA DE INVESTIGACIÓN
2.1. Definición del problema
El uso de diversas herramientas tecnológicas ha generado una evolución en el desarrollo de procesos automatizados brindando cada día grandes ventajas en la eficiencia de las organizaciones y generando una significativa reducción de costos. Dada la efectividad de las herramientas para desarrollar aplicaciones conviene hacer una elección que brinde las facilidades necesarias para desarrollar los sistemas y que a su vez generen controles efectivos que manejen grandes cantidades de información y la disminución de errores de desempeño.
Un considerable número de instituciones de Ecuador se apoyan en herramientas tecnológicas flexibles para automatizar procesos y satisfacer las necesidades de sus usuarios. Entre las instituciones ecuatorianas, también se suman las educativas, específicamente las universidades, las mismas que, cada vez están implementando sistemas informatizados que apoyen y dinamicen los controles manuales, creando así un ambiente óptimo y eficiente.
No obstante, en la actualidad se encuentran algunas instituciones que manejan sus procesos apoyándose en recursos humanos, de los cuales, es posible la aparición de errores de precisión y pérdidas de tiempo que inciden negativamente en estas instituciones.
En las carreras de la Universidad Estatal del Sur de Manabí se ha podido evidenciar que los laboratorios de cómputo son administrados por técnicos responsables que muchas veces no brindan el mejor servicio al momento de atender los requerimientos de los estudiantes y/o docentes. Además, la gestión de reserva de equipos es un poco engorrosa, pues, se necesita que el estudiante o docente se acerque al técnico del laboratorio para separar un computador para tareas personales o desarrollar trabajos de las diferentes asignaturas. Aunque esta situación sería
5
fácil de resolver si se contara con un sistema informático probablemente de tipo web que cubra estas necesidades de los estudiantes, tampoco se dispone de un estudio de factibilidad que evalúe y recomiende las metodologías y herramientas idóneas para el desarrollo de un sistema web que faciliten la posible construcción de una aplicación web que resuelva la situación antes citada.
2.2.Formulación del problema
¿Qué aporte brindará el estudio de factibilidad en la implementación de un sistema web de control y reserva de equipos?
6
III. OBJETIVOS
3.1. Objetivo general
Realizar un estudio de factibilidad de un sistema web de control y reserva de equipos para laboratorios de computación.
3.2. Objetivos específicos
• Analizar las herramientas y metodologías utilizadas para el desarrollo de un sistema con acceso web
• Comparar las características, funcionalidad y costos de las herramientas investigadas en el análisis
• Determinar las herramientas y tecnologías óptimas para la construcción de un sistema web de control y reserva de equipos de cómputo.
7
IV. JUSTIFICACIÓN
Actualmente, la mayoría de instituciones optan por determinar la viabilidad de un proyecto por medio de estudios que demuestren la factibilidad de su implementación o desarrollo.
Analizar la información relevante con respecto a un proyecto demuestra que con un estudio de respaldo se puede decretar éxito en el mismo, por lo cual este proyecto de investigación representa un estudio de factibilidad en el cual se va a recopilar información relevante que apoye el posterior desarrollo de un sistema web.
Con la realización de este estudio de factibilidad se va a obtener información técnica sobre herramientas y metodologías asociadas al desarrollo de software o sistemas web ayudando a verificar los beneficios y facilidad de operación que presenta cada una de las herramientas para el desarrollo de este tipo de proyectos. Además, este estudio también presenta un análisis económico el cual va a determinar si la organización o institución cuenta con los recursos financieros para costear el desarrollo del proyecto.
Por otro lado, el resultado de este estudio es considerado factible, de manera que, respalda el desarrollo de sistemas web por el estudio minucioso que se ha realizado a las herramientas idóneas para la creación de proyectos de tipo web para las organizaciones que no cuentan con grandes presupuestos para la implementación, ya que el estudio considera herramientas con licencias gratuitas, no obstante, también tienen licencia profesional las cual requiere pago mensual o anual.
8
V. MARCO TEORICO
5.1. Antecedentes
Un estudio de factibilidad va a ayudar a saber si la realización del proyecto es viable o no. Esto se ratifica con lo expresado por (Quiroa, Economipedia, 2020) que dice: “Un estudio de factibilidad es el que hace una empresa para determinar la posibilidad de poder desarrollar un negocio o un proyecto que espera implementar”, con esto se evita los riesgos, de manera que se puedan tener alternativas para lograr los objetivos propuestos. Para un mejor análisis, a continuación, se presentan algunos trabajos asociados a esta temática.
Según (Tumbaco Chilan, 2018), en su trabajo de titulación “Análisis de factibilidad de la implementación de una aplicación móvil para el proceso de reserva de los servicios de turismo en la empresa Arrecife Marino S.A”, identificó una oportunidad para proponer un aplicativo móvil, involucrando las TICS, dado a que en la empresa mencionada no se utilizaban las tecnologías para promover sus servicios, en el desarrollo de este proyecto se analizó el impacto social, económico, tecnológico y ambiental de manera detallada, logrando finalmente generar una propuesta innovadora con la aplicación móvil, la cual cambiaría de manera drástica la manera de promover los servicios de la empresa.
La autora (Gallego Heredia) sostiene en su proyecto de titulación “Sistema web de agendamiento de citas y control de tratamientos dentales del consultorio odontológico ODESIN” que la utilización de la metodología de desarrollo XP permite la construcción de sistemas web que ayuden a controlar y administrar grandes cantidades de datos.
Por otro lado, el autor (Sarzosa Sanchez) en su examen complexivo práctico previo a la obtención del título de Ingeniero en Sistemas con el tema de “Estudio de factibilidad para el
9
desarrollo de un sistema web para el almacén Baratodo” sostiene en su análisis que un sistema web optimizaría e impulsaría los procesos administrativos, logrando un eficiente control de la información, dado a que la tienda no contaba con un sistema que le permitiera automatizar los procesos, pero el análisis de factibilidad realizado garantizó que el almacén puede contar con un sistema que respalde los procesos de manera automática logrando de la misma manera que se conviertan en competencia para negocios más grandes que ofrecen el mismo servicio.
Asimismo, la autora (Loor Muñiz) en su proyecto de titulación previo a la obtención del título de Ingeniero en Sistemas Computacionales con el tema “Estudio de factibilidad para el control automatizado de equipos informáticos en el laboratorio número 12 de la carrera ingeniería en sistemas computacionales de la Universidad Estatal del Sur de Manabí”, analizó una serie de contras, dado a la falta de seguridad que se evidenciaba en el laboratorio, por lo que se consideró importante la implementación de un sistema de seguridad con lector RFID que permita controlar los recursos que allí se encuentran.
Finalizando con los antecedentes nacionales, en la investigación de (Núñez Freire, y otros, 2019), titulada “Estudio de factibilidad de un diseño web para el registro, control y seguimiento de los sílabos académicos en las Universidades”, el análisis realizado permitió conocer que la revisión de los sílabos de manera manual tardaba mucho, por lo cual se propuso la utilización de una herramienta tecnológica que ayudara a optimizar el proceso que se realizaba con respecto a los sílabos, de esta manera automatizaron el proceso y a su vez aplicaron políticas de seguridad que mantendrían la información a salvo, disminuyendo el margen de vulnerabilidad de la información.
10
El proyecto “Estudio de factibilidad para la implementación de un sistema de gestión de incidencias en una pyme bogotana del sector TIC”, realizado por (Ospina Acosta & Romero Diaz, 2016), el cual fue realizado en un empresa desarrolladora de software como un estudio pionero, bajo el análisis de factibilidad se revelo que la empresa está en las condiciones de implementar un sistema de gestión de incidencias y a su vez herramientas que apoyen el cumplimiento de los estándares planteados dentro del marco de trabajo.
Los autores (Navas Lenis & Zapata Florez, 2009), en su proyecto “Estudio de factibilidad de la integración de software para la gestión de procesos enfocado en empresas de telecomunicaciones”, determinan que evaluar los aspectos administrativos, operativos y financieros, demuestra que la implementación de un BPM es una solución que ayudara a mantener orden con respecto a la documentación manejada dentro de la empresa de manera que estos mismos evitaran sanciones, además la implementación resulta beneficiosa con respecto a los bajos costos que son requeridos y factibilidad que presenta tener esta herramienta.
5.2. Bases teóricas
5.2.1. Estudios de factibilidad
Para (Bastis, 2020) un estudio de viabilidad es un análisis que tiene en cuenta todos los factores relevantes del proyecto. Incluidas consideraciones financieras, técnicas, legales y de programación.
El enfoque del estudio de factibilidad es ayudar a responder la pregunta básica "¿Debemos continuar implementando el concepto de proyecto propuesto?" Todas las actividades de aprendizaje están diseñadas para ayudar a responder esta pregunta.
11
Un estudio de factibilidad puede identificar obstáculos potenciales que pueden obstaculizar las operaciones y determinar la cantidad de fondos necesarios para iniciar el proyecto. Por ejemplo, pueden apuntar a estrategias de marketing que ayuden a convencer a los inversores. Al realizar un estudio de viabilidad, es mejor tener un plan de contingencia probado para garantizar que sea una alternativa viable en caso de que falle el primer plan.
Tipos de estudios de factibilidad
Según la autora (Quiroa, Economipedia, 2020), estos son los tipos de estudios de factibilidad:
Factibilidad operativa
El enfoque de este tipo de factibilidad es analizar los recursos productivos y los recursos humanos, con respectos a estos últimos se hace más énfasis porque son los encargados de supervisar que todas las actividades se cumplan, para esto se someten a evaluaciones que comprueben si tienen los requisitos para llevar a cabo un buen proyecto.
Factibilidad económica
En la factibilidad económica se realiza un estudio íntegro sobre los recursos financieros que son necesarios para realizar el desarrollo del proyecto, de manera que, si los costos son más elevados que el beneficio que obtendría el proyecto lo mejor es no implementar, pero si es el caso contrario los costos son mínimos y el beneficio es mayor es considerado un proyecto viable por lo que no existen riesgos.
Factibilidad técnica
Un punto importante en el desarrollo de este análisis factible es la evaluación de la infraestructura técnica, es decir si el proyecto posee los recursos necesarios para respaldarse,
12
aunque también en necesaria la evaluación a los recursos humanos para saber si tienen los conocimientos técnicos para manipular el equipo y software necesario.
Factibilidad comercial
Este análisis factible apunta directamente al mercado de consumo, es decir permite obtener información puntual del éxito del proyecto con respecto a los consumidores, como si están dispuestos o no a utilizar el producto que se pretende ofrecer.
Factibilidad política y legal
Este tipo de factibilidad permite verificar si el proyecto a desarrollar no incumple leyes, porque de lo contrario no estaría apto para desarrollar e implementar.
Factibilidad de tiempo
En este punto este análisis va a permitir saber si el tiempo de planificación del proyecto coincide con el tiempo en el que se necesita realizar su implementación.
5.2.2. Aspectos relevantes para el desarrollo de una aplicación web
En la página web de (BambuMobile, 2020), se encuentran aspectos que sugieren tomar en cuenta al momento de realizar un desarrollo web.
Plataforma
En este punto hay dos opciones, la primera es realizar un diseño desde cero y la segunda es utilizar a herramientas que ya poseen base para la creación de desarrollos web, lo cual queda a criterio de la organización dependiendo de sus recursos financieros.
13 Presupuesto
El costo de los desarrollos web depende de los requerimientos solicitados, un aspecto positivo y económico es realizar el desarrollo en fases, lo cual permite regular costos y obtener más beneficios.
Tecnologías
Para los desarrollos que se inician desde cero es casi imposible no contar con las tecnologías apropiadas, generalmente son consideradas HTML5, CSS3, JavaScript, Node JS, Python.
Servidor
Se trata del lugar donde se va a alojar el sistema, por lo que es recomendable analizar los proveedores servidores, y que se trate de uno que se mantenga estable.
Arquitectura y tipo de documentación
Es de suma importancia mantener orden en la distribución del sitio web, por lo que la experiencia del usuario es el objetivo final a cumplir, para que todo el desarrollo sea exitoso se debe de tener en cuenta este punto.
Equipo de trabajo
Tener un equipo de trabajo completo y profesional en cada área asegura un desarrollo exitoso por lo que cada uno va a desempeñarse en áreas específicas demostrando confiabilidad y eficiencia.
14 5.2.3. Entorno de desarrollo
Como indica (Ekon, 2020) un entorno de desarrollo se compone de las herramientas utilizadas por el desarrollador para ejecutar programas.
Niveles del entorno de desarrollo
• Entorno de desarrollo: Inicialmente en este nivel se realizan las primeras pruebas y la ejecución del programa.
• Entorno de integración: Comúnmente los proyectos se realizan en equipo, por lo que en este nivel se juntan los avances que se realizaron individualmente para comprobar que no haya similitudes.
• Entorno de pruebas: El entorno de pruebas permite que los desarrolladores y usuarios interactúen con el programa realizando test para reducir el margen de errores.
• Entorno de producción: Este nivel cuenta con la configuración completa, una vez revisado por el usuario no debería mostrar errores.
Aptana Studio
Según (Innovate & Go Digital;, 2021) Aptana Studio es apto para desarrolladores web, dado a la personalización y adaptación que presta al desarrollador, además se ser un entorno gratuito y multiplataforma, contiene conexión FTP, que permite subir y descargar archivos desde el servidor de producción, y cuenta con soporte para librerías como Adobe Spry, Adobe AIR, etc.
Convirtiéndolo en un entorno completo, no obstante, también presenta factores desfavorables como que solo es recomendado para ordenadores con características especiales dado a la cantidad de memoria que consume este programa.
15 Visual Studio Code
Como nos indica (AITANA;, 2018) Visual Code es un editor de texto, que cuenta con características personalizadas, además de ser código abierto y una herramienta gratuita, permite al desarrollador gestionar sus propios atajos. Capaz de proporcionar extensiones que permiten un ambiente de trabajo aún más dinámico como Beautify que permite facilidad en la lectura, o Better Haml extensión que permite el autocompletado de Halm.
5.2.4. Herramientas de desarrollo
Para (Ravoof, 2021) las herramientas de desarrollo web permiten que el proyecto se ejecute de manera óptima, permitiendo cumplir los objetivos, no obstante, es importante tener en consideración ciertos aspectos.
Front End
Front End es utilizada en el desarrollo web, siendo esta la parte frontal o diseño de un sitio web.
De tal manera que, es la parte con la que los usuarios interactúan, siendo así el código el cual puede ejecutarse en el navegador de preferencia del usuario.
Para el desarrollo de Front End se trabaja con lenguajes de programación, los cuales están del lado del usuario, tales como:
• HTML
• CSS
• JavaScript
Back End
La ejecución del Back End dará a conocer el tipo de experiencia que tendrá el usuario, brindándole dinamismo al sitio web y al mismo tiempo adaptando funciones como: conexión
16
con bases de datos, elaboración de funciones para reducir el tiempo de desarrollo. Al mismo tiempo, dando seguridad y optimizando recursos para que el sitio web sea más ligero.
(Hernández, 2021)
Full Stack
Es un programador con un perfil informático profesional que cumple habilidades hibridas.
Además, responsable del desarrollo de la codificación la cual integra los dos sistemas (Front End – Back End).
Así mismo, tiene la función de desarrollar el código que establece la conexión con la base de datos, con la finalidad de que los usuarios obtengan la información solicitada. (De Souza, 2020)
GitHub
El autor (Fernández, 2019) nos dice que la plataforma fue creada para que los desarrolladores carguen código para sus aplicaciones y herramientas. Git es uno de estos sistemas de control y le permite comparar código en archivos para ver diferencias entre versiones, volver a versiones anteriores si algo sale mal y fusionar cambios de diferentes versiones. También le permite trabajar con diferentes ramas del proyecto, como desarrollo para agregar nuevas funciones al programa o producción para depurar errores. Las principales características son que este tipo de servicio es multiplataforma y cuenta con una gran interfaz de usuario sin perder la sencillez.
Por lo tanto, Github es el portal para administrar aplicaciones que usan el sistema Git. Además de permitirle ver el código y descargar diferentes versiones de la aplicación, la plataforma actúa como una red social que conecta a los desarrolladores con los usuarios para que puedan colaborar en la mejora de la aplicación.
17 Bootstrap
La autora (Deyimar, 2021) describe la definición de la herramienta Bootstrap con sus archivos primarios.
Es un marco de interfaz de usuario de código abierto para un desarrollo web más rápido y fácil.
Contiene varias plantillas de diseño basadas en HTML y CSS para diversas características y componentes, como navegación, sistema de cuadrícula, carrusel de imágenes y botones. Si bien Bootstrap ahorra tiempo a los desarrolladores al repetir las plantillas de administración, su objetivo principal es crear sitios receptivos. Permite que la interfaz de usuario de un sitio web funcione de manera óptima en todos los tamaños de pantalla, ya sea en teléfonos móviles de pantalla pequeña o dispositivos de escritorio de pantalla grande.
Archivos primarios de boopstrat Bootstrap.css
Es un marco CSS para organizar y administrar el diseño de sitios web. HTML administra el contenido y la estructura de las páginas web, mientras que CSS maneja el diseño del sitio web.
Por lo tanto, ambas estructuras deben coexistir para poder realizar una operación específica.
Debido a su poder, CSS le permite crear una apariencia uniforme en cualquier cantidad de páginas web. Puedes despedirte de horas de edición manual solo para cambiar el ancho del borde.
Bootstrap.js
Este archivo es la parte principal de Bootstrap. Consiste en archivos JavaScript responsables de la interactividad del sitio web.
18
Para ahorrar tiempo al escribir la sintaxis de JavaScript varias veces, los desarrolladores tienden a usar jQuery. Es una popular biblioteca de JavaScript multiplataforma de código abierto que le permite agregar varias funcionalidades a su sitio web.
Glyphicons
Los iconos son una parte integral de la interfaz del sitio web. Suelen estar asociados con determinadas operaciones y datos en la interfaz de usuario. Bootstrap usa Glyphicons para satisfacer esta necesidad.
Bootstrap incluye el conjunto Glyphicons Halflings que se ha desbloqueado para uso gratuito.
La versión gratuita tiene una apariencia estándar, pero es suficiente para las funciones básicas.
Si desea encontrar íconos más hermosos, Glyphicons vende varios paquetes premium, que sin duda se verán mejor en sitios web específicos de nichos.
También puede descargar íconos personales y específicos del tema de forma gratuita desde varios sitios web como Flaticon, GlyphSearch e Icons8.
5.2.5. Framework
El framework es una herramienta de desarrollo que brinda plantillas que sirven como punto de inicio para la elaboración de proyectos, su utilización reduce procesos, asimismo, hace el que proyecto se vuelva colaborativo con el fin de simplificar errores y obtener resultados óptimos.
(Edix, 2021)
Ventajas y desventajas de utilizar un framework
(TiThink, 2018) toma a consideración las siguientes ventajas y desventajas de los Frameworks Ventajas
• Organización del código predeterminado.
19
• Agilidad en el desarrollo de reutilización de códigos.
• Simplificación de costo en el desarrollo del proyecto y en la monetización.
• Permite colaborar con otros desarrolladores.
Desventajas
• La familiarización con el manejo de los framework es amplia.
• Las constantes actualizaciones de los frameworks provocan inestabilidad en los proyectos si se utilizan librerías no compatibles.
• El consumo de recursos de los frameworks conlleva menor rendimiento.
5.2.6. HTML5
(Pérez Jiménez, 2019), define HTML5 como un estándar que determina el contenido y la estructura de la aplicación o página web, además de ser la última versión de HTML, con respecto al funcionamiento no varía del proceso ya conocido, el cual consiste en realizar la petición a un desde el navegador hacia el servidor, de manera que este recupera la página solicitada desde su disco duro y finalmente muestra lo solicitado.
Principales usos
En la página web de (Aulaformativa, 2020), encontramos descritos los principales usos de HTML5
• Páginas web con elementos multimedia: sin la necesidad de utilizar adobe flash o plugin de terceros, ahora se puede añadir audios y videos por medio de las etiquetas
<audio> <video> de HTML5, lo que disminuye considerablemente el tamaño del archivo final de la página, por otro lado, los desarrolladores tienen acceso a una API que determinara como serán presentadas estas nuevas etiquetas a los usuarios.
20
• Funciones de geolocalización: esta característica permite saber la ubicación exacta del usuario que ingresa al sitio web, esto con el fin de que el usuario tenga una excelente experiencia en el sitio, como por ejemplo esta función estaría presente como para ofrecer opciones de idiomas de la página, o si el usuario entra a la página de alguna marca poder redireccionarlo al sitio de su país.
• Aplicaciones web una ventaja notable de desarrollar aplicaciones en HTML5 es la posibilidad de adaptación de pantalla de la aplicación, cosa que es favorable porque brinda una mejor experiencia para el usuario.
5.2.7. Lenguajes de Programación
En el bloc escrito por (RockContent, 2019) describe la definición de un lenguaje de programación, su clasificación y su subclasificación.
¿Qué es un lenguaje de programación?
Son un conjunto de instrucciones mediante la cual se escriben acciones u ordenes en sentidos de algoritmos de manera que se crean programas que permiten controlar el comportamiento de una máquina. Asimismo, permite la comunicación entre el hombre y la máquina.
Se clasifican en dos tipos: Lenguaje de bajo nivel y Lenguaje de alto nivel.
Lenguaje de programación de bajo nivel
Este lenguaje está completamente orientado a la máquina, ejerciendo un control total sobre la misma, el programador deberá tener conocimiento completo con respecto al hardware; y se subdividen en dos tipos: Lenguaje Máquina y Lenguaje Ensamblador.
Lenguaje máquina
21
Considerado un lenguaje pionero, el lenguaje maquina está basado en números binarios, es decir (0 y 1) convirtiendo esto en el único lenguaje que las computadoras interpretan.
Lenguaje ensamblador
El lenguaje ensamblador es un intento de reemplazar el lenguaje máquina por un lenguaje natural, que sea más entendible por las personas.
Lo cual implica realizar una serie de instrucciones en forma de un flujo ordenado, para que la máquina sea capaz de ejecutarlas; sin embargo, para leer correctamente las instrucciones del lenguaje ensamblador se necesita convertir las instrucciones a lenguaje maquina por medio del programa “Ensamblador” lo que genera códigos rápidos, brindándole al programador control total del ordenador.
Lenguaje de programación de alto nivel
Los lenguajes de programación de alto nivel simplifican el trabajo del programador, permitiendo un entendimiento más eficiente. Se subdividen en: Lenguaje Traductor y Lenguaje Compilador.
Traductor
El lenguaje traductor permite traducir los programas escritos en lenguajes de programación a lenguaje máquina de manera que al paso que se va traduciendo la computadora va ejecutando.
Compilador
El lenguaje compilador simplifica aún más las cosas para los programadores, permite traducir completamente los programas logrando una ejecución y almacenamiento rápido para su posterior uso, pasando ese proceso una vez.
22 5.2.8. Java
Java es un lenguaje de programación desarrollado en 1995 por Sun Microsystems, considerándose el lenguaje más utilizado puesto que ha mantenido durante años.
Su versatilidad es su punto fuerte, así como la independencia que tiene del hardware, la estabilidad y seguridad que brinda son otro punto fuerte para su fácil aprendizaje. (Pascual Estapé, 2020)
Ventajas y desventajas de java
A continuación, el autor (Martinez, 2021) menciona las ventajas y las desventajas que se pueden encontrar en el lenguaje de programación Java.
Presencia y comunidad
Es utilizado por empresas con renombre corporativo, su impacto es duradero, debido a que cuenta con una amplia gama de recursos para desarrolladores.
Actualizaciones frecuentes
La evolución de Java es notoria, se encarga de lazar actualizaciones constantemente, por ejemplo, la actualización lanzada en 2019, hace énfasis en la administración automática de memoria.
Seguridad
La seguridad para los usuarios es desde la máquina virtual, de modo que desde allí se controla que se ejecuta y el modo de ejecución, con el seguimiento del proceso se puede decir que el proyecto es seguro.
Contras Desempeño
23
Tomando a comparación otros lenguajes de compilación nativa con Java, este es lento, siendo este un punto a tener en cuenta al momento de trabajar.
Memoria
Por otro lado, un inconveniente que también se debe tener presente es la cantidad de memoria que requiere.
Apariencia general
La disponibilidad de herramientas suele ser un problema, si se está desarrollando una app en Android, hay disponibilidad de interfaces como Android Studio, pero si es por lo contrario y es una aplicación de escritorio, es casi imposible encontrar herramientas acordes.
5.2.9. PHP
¿Qué es el lenguaje PHP?
Es un lenguaje de código abierto, muy popular por su flexibilidad al permitir que se incruste a HTML, y es conveniente para el desarrollo web. (Tapia, 2021)
Ventajas y desventajas de PHP
El autor (Tapia, 2021) considera las siguientes conveniencias e inconvenientes de la siguiente manera
Ventajas:
• PHP es de fácil instalación, incluyendo paquetes autoinstalables, permitiendo a su vez una configuración fácil.
• Es un lenguaje multiplataforma, considerado un lenguaje con mayor usabilidad
24
• Orientado al desarrollo de aplicaciones web dinámicas y/o páginas web con acceso a una Base de Datos.
Desventajas:
• El código está seguro mientras sea ejecutado en un servidor propio, de lo contrario una vez que lo requiere un cliente deja una brecha de manera que se deja el código fuente sin seguridad.
• En el caso de que la configuración no se ejecute de manera correcta se dejan abiertas brechas de seguridad que provocarían problemas a largo plazo.
• Se necesita exclusivamente un servidor web para su optimo funcionamiento.
5.2.10. HTML
¿Qué es y para qué sirve el HTML?
La creación de HTML estuvo a cargo de Tim Berners-Lee, conocido también por hacer parte de los inventores del World Wide Web.
Este lenguaje es utilizado para la creación de páginas web por medio de marcadores y atributos, lo cual es la manera en la que se visualiza el contenido en los navegadores web, desde su implementación ha pasado por constantes actualizaciones que hasta hoy lo han convertido en una base para blogs, redes sociales y todo tipo de páginas con accesibilidad desde un navegador web. (Mousinho, 2019)
Ventajas y desventajas de HTML
En el sitio web (EasyWayz, 2017) se mencionan las siguientes afirmaciones a manera de clasificar los pros y contras que se encuentran en HTML
Ventajas:
25
• No requiere gran conocimiento si se cuenta con un editor de páginas web o WYSIWYG, la visualización es de forma estructurada creando un ambiente agradable.
• Los archivos son pequeños, lo cual hace que el despliegue sea rápido.
• Es un lenguaje de fácil aprendizaje y admitido por todos los navegadores.
Desventajas:
• Es un lenguaje estático, por lo que la interpretación de cada navegador puede variar.
• Almacena muchas etiquetas que pueden convertirse en “basura” dificultando la corrección de errores, además las etiquetas también suelen ser limitadas.
• El diseño es lento.
5.2.11. Sistemas gestores de base de datos
Según nos indica (Marín, 2019) los sistemas gestores de bases de datos permiten la administración y manejo de datos, para el posterior almacenamiento y organización de la información, simplificando procesos de búsqueda, lo que lleva a clasificar estos sistemas en Relacionales y No relacionales.
Sistemas Gestores de bases de datos Relacionales (SQL)
Desde 1970 se comenzó a utilizar este modelo de bases de datos relacionales han tenido una serie de cambios lo que los han llevado a convertirse en el modelo más utilizado para la administración de las bases de datos.
Este modelo establece vínculos entre los datos a manera de una tabla además por cada relación existen sus propios registros y atributos. (Marín, 2019)
A continuación, los modelos de bases de datos relacionales más populares
26 Base de datos MySQL
MySQL es un sistema de gestión de bases de datos relacionales de código abierto respaldado por Oracle, cuenta con el modelo cliente-servidor, también es utilizado para crear y administrar las bases de datos. (Bustos, 2022)
Ventajas y desventajas de MySQL
Ventajas:
• MySQL es gratis y de uso libre, tiene licencia GPL, no se necesita de disponer de un equipo de alto rendimiento para ejecutar el programa
• Brinda facilidad para la configuración e instalación, baja probabilidad en corrupción de datos, además es un entorno seguro.
Desventajas:
• Una contra de que sea de software libre es que no presenta documentación oficial para soluciones ni utilidades.
• Necesita control para ver el rendimiento de las aplicaciones buscando fallos, no es de uso optimo en programas que requieran de constante actualización de escritura de bases de datos. (Alojamiento Web, 2019)
SQL Server
Es uno de los sistemas de gestión de datos más importantes, principalmente en desarrollos web que impliquen el registro de usuarios, ya que, administra los datos de manera eficiente sin presentar complicaciones debido a las herramientas que posee y a su interfaz visual intuitiva.
(Darías Pérez, 2021)
Características de SQL Server
27
• Permite que se consulten todos los datos desde SQL Server hasta Oracle sin que sea necesario realizar una duplicación.
• El cifrado de datos que tiene SQL Server lo ha convertido en el sistema de gestión de bases de datos más seguro.
• Da la facilidad de integrar los sistemas de bases de datos en cualquier tipo de dispositivos permitiendo mejorar la utilidad y análisis de los datos.
Navicat
Comúnmente se conoce a Navicat como una herramienta que permite el desarrollo de bases de datos, además también permite la conexión simultanea con sistemas gestores de bases de datos como MySQL, MongoDB, SQL Server, entre otras, con solo una aplicación, su diseño de interfaz intuitiva facilita la gestión de bases de datos logrando que se realice este proceso de forma rápida. (Danysoft, 2014)
Características de Navicat
En la página principal del producto se exponen las siguientes características (Navicat, s.f.)
• Navicat permite que se realice una migración de datos rápida, de todas formas, respaldada con seguridad, y menos sobrecarga
• Permite exportar datos, tablas, entre otros aspectos a formatos como Access, Excel, etc.
• La herramienta SQL Builder permitirá editar, crear o ejecutar las sentencias sin tener en cuenta la sintaxis o si están bien utilizado los comandos
• Permite transformar las bases de datos en graficas con solo utilizar las herramientas de diseño y modelado
• Incluye una herramienta de generación de datos la cual permite generar datos en masa para testing
28
• Permite activar el modo oscuro, protegiendo la visión del desarrollador, activar esta opción no cambiara en nada el aspecto de la interfaz
Sistema de gestión de base de datos MariaDB
MariaDB es un sistema de gestión de bases de datos que está vinculada con MySQL, este sistema permite a los desarrolladores realizar cambios con solo mover un archivo, sin que exista la necesidad de cambiar todo el código, lo que permite su ejecución y visualización de cambio en toda la red de datos. (Felipe, 2020)
Ventajas y desventajas de MariaDB
El autor (Guerrero, 2016) menciona las siguientes ventajas y desventajas:
Ventajas:
MariaDB cuenta con un óptimo almacenamiento, muestra ventaja en rendimiento y la eficacia compitiendo con MySQL, adicionalmente muestra grandes avances con respecto a la seguridad y asistencia al usuario.
Desventajas:
Muestra inconformidad con respecto a la migración de datos no suele ser muy fiable, aunque cumple con compatibilidad y estabilidad al momento de realizar el proceso.
Base de datos SQLite
Considerada una de las bases de datos relacionales más popular, desarrollada en lenguaje C.
Ejerce la función de un servidor independiente, de manera que su biblioteca gestiona de forma directa en el archivo de la base de datos.
29
Dado a su uso practico es recomendable para aplicaciones sencillas, páginas estáticas que no contengan muchos recursos y sitios con pocas visitas. (HostGator México, 2021)
Ventajas y desventajas SQLite
• Ventajas: SQLite es multiplataforma, de código abierto, mantiene compatibilidad con versiones anteriores, además permite que se guarde la base de datos en un solo archivo.
• Desventajas: Administrar un gran volumen de datos causa ralentización en el proceso, restringe ciertos formatos de archivos. (HostGator México, 2021)
Oracle
Oracle es una interfaz de desarrollo, basada en el modelo cliente/servidor, utiliza lenguaje de programación de quinta generación, dado a sus novedosas características y su comercialización de software. (Valentín, 2019)
Ventajas y Desventajas de Oracle
• Ventajas: Oracle cuenta con sistema de seguridad optimo en la administración de la información, su fácil aprendizaje y diseños de softwares lo colocan entre los favoritos en el ámbito empresarial, otra de sus ventajas es su funcionalidad y compatibilidad con cualquier tipo de procesador.
• Desventajas: Por otro lado, tiene en su contra la poca información que existe sobre su uso, y sus altos costos, por lo cual es algo inaccesible para las pequeñas empresas.
(Nuñez, 2020)
Sistemas Gestores de bases de datos No Relacionales (NoSQL)
Según el autor (Marín, 2019) las bases de datos no relacionales administran grandes volúmenes de datos, por lo que están diseñadas para analizar datos semiestructurados.
30 Sus principales gestores son:
MongoDB
MongoDB es un gestor de base de datos desarrollado en C++, su almacenamiento de datos es ejecutado en un esquema dinámico, es decir en documentos y los mismos son guardados en BSON.
MongoDB: Ventajas y desventajas
Según lo escrito por el autor (Robledano, 2019)considera las siguientes afirmaciones como:
Ventajas:
• Validación de documentos
• Motores de almacenamiento integrado
• Menor tiempo de recuperación ante fallos Desventajas:
• No es una solución adecuada para aplicaciones con transacciones complejas
• No tiene un reemplazo para las soluciones de herencia
• Aún es una tecnología joven
Redis
Redis es un sistema que se utiliza como un almacén de datos y a su vez se maneja como una base de datos, su acceso rápido lo ha convertido en el sistema más utilizado en videojuegos online, donde se presentan múltiples solicitudes por segundo, así mismo como en servicios bancarios, salas de chat, y el internet de las cosas. (Felipe, 2021)
31 5.2.12. Servidor Local
Es un entorno controlado que permite desarrollar sitios web o aplicaciones de manera online y offline, permitiendo a su vez realizar pruebas sin el temor de correr algún tipo de riesgo.
Este entono permite trabajar con los recursos que brinda el ordenador, facilitando y optimizando procesos. (Ingeniería y Tecnología, 2021)
Ventajas y desventajas de tener un servidor local
Un servidor local posee pros y contras, de manera que a continuación, se analizaran. (Borges, 2020)
Ventajas:
• Conexión óptima, la ubicación del servidor siempre será un punto importante a tener en cuenta.
• Seguridad, cargar información importante a un lugar donde no se tiene acceso físicamente puede ser un problema, por lo que tener un servidor local es una idea indispensable para tener control sobre el mismo.
Desventajas:
Por supuesto el disponer de un server local tiene ciertas desventajas, no todo va a ser color de rosas.
• Alto consumo de energía, para su funcionamiento optimo se va a necesitar un excesivo consumo eléctrico y de internet, por lo que se verá obligado a obtener una dirección IP dedicada al servidor.
• Pocos técnicos experimentados, los profesionales dedicados a este ámbito suelen ser escasos y costosos.
32 XAMPP
Es un servidor independiente de software libre, su acción principal es de un sistema gestor de base de datos con compatibilidad en múltiples sistemas operativos, su uso es gratuito.
(Ancheita, 2021)
5.2.13. Servidor Web
Es un equipo de gran potencia que siempre esta contado a internet y es el responsable de la comunicación entre el servidor y el usuario. Una de sus funciones es almacenar los recursos de las páginas web para su posterior transmisión a los usuarios por medio del protocolo HTTP.
(De Souza, 2019)
Apache
Es un servidor web de código abierto, gratuito y multiplataforma, sin embargo, las constantes actualizaciones han sacado al mercado más tipos de servidores web, no obstante Apache hasta la actualidad se impone como un servidor popular y de referencia, el cual en su apogeo lidero el 70% del mercado y albergo alrededor de 100 millones de sitios web. (De León, 2021)
5.2.14. Metodologías de desarrollo
¿Qué es una metodología de desarrollo de software?
Las metodologías de desarrollo de software son técnicas de organización que permiten tener control en el equipo de trabajo. Mantener este tipo de organización va a permitir que dar respuesta a los usuarios sea optimo, y a su vez tener una estructura, planificación y control sobre el proyecto evitando errores.
33
Metodologías de desarrollo de software tradicionales
Las metodologías de desarrollo de software tradicionales se definen por no realizar cambios, su organización de trabajo es lineal, de manera que no se puede empezar con otra etapa si no se ha culminado la anterior asimismo no permite retroceder una vez que se ha cambiado la etapa (Santander Universidades, 2020)
Metodología en cascada
La metodología de cascada también conocida como metodología waterfall, desarrolla proyectos de manera secuencial, es decir de arriba hacia abajo. Esta metodología organiza el trabajo en un conjunto de etapas que deben ejecutarse una tras otra. (Digital Agency, 2018)
Etapas de la metodología en cascada
• Análisis
En esta etapa se va a iniciar con la recolección de requerimientos de parte del cliente además de acordar el plazo de entrega entre el equipo y el cliente.
• Diseño
La etapa de diseño es donde se saca a flote la creatividad, organizando las ideas y empezando con la elaboración del sistema, utilizando todos los recursos posibles y disponibles para llevar a cabo el proyecto y agilizar el tiempo de entrega.
• Implementación
Desde esta etapa se lleva a cabo la programación utilizando herramientas tecnológicas con el fin de cumplir los objetivos trazados.
• Verificación
Como su nombre lo indica, en esta etapa se realizan las respectivas verificaciones, supervisando que todo en el proyecto sea funcional, y cumpla con todos los requerimientos propuestos anteriormente.
34
• Instalación y mantenimiento
Finalmente se llega a la última etapa, en primera instancia se realiza la instalación para su posterioridad recibir constante mantenimiento, cabe recalcar que para este último proceso se requiere de recursos económicos y personal, garantizando un proyecto estable y funcional.
(Carranza, 2021)
Metodología de prototipo o prototipado
Esta metodología se aplica en el desarrollo de nuevos negocios, prototipado de sistemas o aplicaciones, su proceso consiste en diseñar y ajustan el plan al equipo de trabajo, logrando resultados óptimos
Etapas de la metodología de prototipo o prototipado
• Define los requerimientos y variables.
Una de las primeras cosas en tener en cuenta es cual es el propósito del proyecto, y verificar el tipo de elementos que se requieren.
• Define las herramientas para el diseño y testeo.
Tener claro cuál es la intención del prototipo facilita la identificación de lo elemento a utilizar, en el caso de ser un prototipo de un sistema web se puede utilizar inVision o de ser una aplicación se puede utilizar Marvel App.
• Diseña el prototipo de tu idea.
Para tener el diseño ideal del prototipo de deben de evaluar varios aspectos como la ergonomía, la usabilidad, materiales, etc.
• Testea el prototipo.
En esta etapa se muestran los avances del prototipo, visualizando el desempeño y permitiendo al cliente aportar con ideas para el proyecto.
35
• Analiza los resultados y aprendizajes.
Una vez superadas las etapas anteriores se puede decir que esta es la etapa final, mostrando el desempeño del prototipo, aunque aún queda una brecha para perfeccionar el proyecto.
(Sánchez & Gerea, 2021)
Metodología modelo espiral
El modelo espiral es un prototipo del desarrollo de aplicaciones, el ciclo que sigue es iterativo es decir se repite hasta alcanzar los objetivos trazados, lo cual a su vez lo capacita para manejar una gran cantidad de riesgos a medida que avanza el desarrollo. El número de ciclos es variable y depende únicamente del proyecto.
Etapas de la metodología de modelo espiral
• Determinar objetivos, alternativas y restricciones
En esta etapa que es la inicial se debe de tener mucho detalle en los requerimientos, desde los objetivos, definiendo a su vez la implementación en caso de que se construya algo nuevo o tener la posibilidad de reutilizar, comprar los recursos solicitados, de igual manera se especifican las restricciones del proyecto.
• Evaluación de riesgos
Se ponen en consideración todas las alternativas propuestas, identificando riesgos que estropeen el proyecto, finalmente se utilizarán estrategias con mayor rentabilidad y menor riesgo.
• Desarrollo y prueba
En esta etapa se visualiza una mejora por cada iteración creando una versión optima y funcional, sin importar cuantas veces se rescriba el código el objetivo es cumplir con una mejor versión de aplicación, lo que servirá de base para futuros proyectos.
36
• Planificación del próximo ciclo
Siendo la etapa final, se comienza a pensar en la siguiente etapa, si el objetivo tuvo éxito se puede pasar al siguiente ciclo, de lo contrario se utilizarán las estrategias antes definidas o se utilizarán unas nuevas. (Sy Corvo, 2020)
Modelo incremental
El objetivo principal de este modelo de desarrollo es el crecimiento de la funcionalidad. Es decir que se visualiza la evolución en cada entrega hasta llegar al resultado final para el cliente.
Las entregas se realizan parcialmente en plazos y en cada una el producto debe de mostrar evolución
Fases del modelo incremental
• Requerimientos
Son los objetivos específicos propuestos para el proyecto.
• Definición de las tareas y las iteraciones
En esta etapa se debe de realizar una lista de objetivos para cada iteración, dado a que cada una de ellas debe ser cumplida, mostrando un proceso evolutivo, sin dar lugar a la aleatoriedad.
• Diseño de los incrementos
Una vez especificadas las iteraciones del proyecto, estas deben ser evolutivas, ninguna igual que la anterior.
• Desarrollo del incremento
Posteriormente se desarrolla cada una de los requerimientos propuestos en las etapas anteriores.
• Validación de incrementos
En el caso de que las iteraciones realizadas no muestren avances, se deberá de retroceder y buscar la causa de aquello.
37
• Integración de incrementos
Si las iteraciones son favorables al proyecto, se da lugar a la línea incremental contribuyendo directamente al resultado final.
• Entrega del producto
Las iteraciones favorables y validadas con los requerimientos iniciales dan lugar a la entrega del proyecto.(Pérez, 2016)
Metodología RAD
Esta metodología de desarrollo ágil, da prioridad a las iteraciones rápidas, principalmente se destaca por tener en cuenta el uso del software, los requerimientos puntuales de los usuarios y el registro detallado de los requisitos propuestos con antelación. (Singh & Peláez, 2020)
Fases de la metodología RAD
• Planificación de necesidades
Para iniciar con la creación de prototipos, primero se debe de especificar las necesidades del proyecto.
• Diseño y feedback con el usuario
El aporte del cliente será determinante en esta etapa, dado a que con el feed se creara el diseño inicial, esta etapa se podrá repetir las veces que sean necearías.
• Construcción
En esta etapa está presente la parte compleja del proyecto como la codificación y pruebas que se realicen, al igual que en la etapa anterior el proceso iterativo tendrá lugar las veces que sean necesarias.
38
• Transición
Esta última fase también se la conoce como cutover, donde se realizarán todas las pruebas que se crean necearías para el éxito del proyecto. (Castro, 2019)
Metodología RUP
La metodología de desarrollo RUP, utilizada en distintos ámbitos, preferencialmente en la ingeniería y desarrollo de software, dado a su estructura organizada, principalmente su utilización se ajusta a las necesidades del proyecto, asegurando una producción optima en un tiempo estimado. (Buenaventura, 2021)
Etapas de la metodología RUP
• Fase de inserción
En esta etapa se inician las iteraciones, se identifican los aspectos a llevar a cabo, la propuesta por parte del usuario y el análisis desde su punto de vista, creando de esta manera el modelamiento correspondiente para comenzar con el desarrollo del proyecto.
• Fase de elaboración
Una vez desarrollado el modelamiento en esta fase se analiza y se construye la estructura para el proyecto en pie.
• Fase de construcción
Una vez realizadas las iteraciones correspondientes se define el análisis y diseño para su posterior proceso de pruebas e implementación
• Fase de transición
En esta etapa final, la metodología luego del proceso de pruebas avala la entrega del proyecto al usuario, siendo algo utilizable y ajustado a los requerimientos inicialmente propuestos.
(Cerron Fabian, 2017)
39 Metodologías de desarrollo de software ágiles
La agilidad y flexibilidad que presentan estas metodologías de desarrollo las han convertido en las más utilizadas en la actualidad, dado a los beneficios que trae, a su vez esta metodología es de incremental, es decir que en cada iteración se agregan nuevas funciones, lo que hace que el proyecto tenga más éxito, además los procesos son cortos y se optimiza el tiempo, los equipos de trabajo son autosuficiente, aun así como en las demás metodologías las opinión del cliente está presente en todo momento. (Santander Universidades, 2020)
Metodología Kanban
La metodología Kanban se basa en el progreso continuo, encontrando el equilibrio y la disponibilidad del equipo para el proyecto. Principalmente esta metodología esta implementada por medio de tableros, los cuales contienen una gestión visual del trabajo, obteniendo mejores resultados, dado que este tablero les permite ver el avance y si existe trabajo pendiente.
Fases de la metodología Kanban
• Diseño del sistema Kanban
En esta etapa está presente el trabajo en equipo, dado que los tiempos estarán ajustados y la presión que conlleva cada proyecto será elevada.
• La herramienta Kanban
Esta etapa está presente en las líneas de producción que tienen una carga elevada de actividades, en las cuales se suelen encontrar más errores.
• Implementación la herramienta Kanban
El criterio del equipo de trabajo estará muy presente en esta etapa, dado a que ellos conocen perfectamente el proceso del sistema y de existir errores serán solucionado, pasando la etapa de pruebas.