Herramientas para el desarrollo de software. Una revisión.

Tools for software development. A review

 

 

Manuel William Villa Quishpe

Universidad Técnica de Cotopaxi

manuel.villa@utc.edu.ec

Latacunga, Ecuador

 

Carlos Steve Centeno Atavallo

Universidad Técnica de Cotopaxi

carlos.centeno@utc.edu.ec

Latacunga, Ecuador

 

Angel Rodrigo Gavilanez Guanoluisa

Universidad Técnica de Cotopaxi

 angel.gavilanez@utc.edu.ec

 

José Augusto Cadena Moreano

Universidad Técnica de Cotopaxi

 jose.cadena@utc.edu.ec

Latacunga, Ecuador

 

 

 



Resumen: En la investigación presente se manifiesta las metodologías de desarrollo de software mediante el análisis y lectura comprensiva de artículos científicos y tecnológicos, con el objetivo de definir qué metodologías de desarrollo de software son adecuadas para cada campo computacional que constantemente se actualizan. Desde el punto de vista académico la aplicación teórica de metodologías de desarrollo de software permite elaborar un sistema computacional de calidad y que cumpla con los estándares requeridos por el cliente, de este modo se obtienen resultados positivos debido a las amplias referencias de documentaciones verídicas que complementan los conocimientos tecnológicos.

 

Palabras Claves: Metodologías de desarrollo de software, Metodologías tradicionales, Metodologías ágiles, Metodologías actuales, Metodologías eficientes.

 

 

Abstract: In the present investigation, the software development methodologies are manifested through the analysis and comprehensive reading of scientific and technological articles, with the aim of defining which software development methodologies are suitable for each computational field that are constantly updated. From the academic point of view, the theoretical application of software development methodologies allows the elaboration of a quality computational system that meets the standards required by the client, in this way positive results are obtained due to the extensive references of true documentation that complement technological knowledge.

 

Keywords: Software development methodologies, Traditional methodologies, Agile methodologies, Current methodologies, Efficient methodologies.


1.    Introducción

Las metodologías de desarrollo de software permiten desarrollar proyectos tecnológicos de alta calidad con procesos funcionales innovados que permiten a los desarrolladores aplicar todos sus conocimientos y herramientas para conseguir evolucionar la tecnología computacional e informática en los programas, procedimientos y documentos relacionados al sistema computacional.

2.    Definición metodología de desarrollo de software. 

Para comprender mejor el desarrollo de software, es fundamental definir el concepto de metodología en el ámbito informático. Según se concluye, una metodología de desarrollo implica el estudio y la determinación del método más adecuado para mejorar algo, en este caso, el software (Paciencia E. M., 2015, págs. 14,19). En la actualidad, el desarrollo de software se centra en los procesos de fabricación, creación, actualización o modificación del sistema computacional, es decir, del software.

3.    Aplicación de modelos de desarrollo de software.

La utilización de modelos metodológicos de desarrollo de software es con el fin de ayudar a investigar fuentes correctas y verídicas que indiquen y demuestren actualmente cuales son las mejores metodologías de desarrollo de software que se utiliza en el mundo y por qué se las debería aplicar ya sea en campos profesionales, académicos e incluso por el hecho de aprender de las nuevas tecnologías en este caso teóricas.

Toda metodología nos brinda ventajas y desventajas, dependiendo del proyecto que sea desea realizar y los estándares que deberá cumplir para satisfacer las necesidades del cliente según sea el caso dado, y como el cuerpo de desarrolladores aplique sus conocimientos tecnológicos (López G. , 2018).

Por lo tanto, existen varias dimensiones de metodologías de desarrollo de software que nos deberá permitir alcanzar el objetivo planteado, en este caso un software completo y correcto que cumpla con las reglas de los clientes..

4.    Tipos de metodologías de desarrollo de software

En la actualidad, se emplean diversas metodologías en el desarrollo de software, como las clásicas, las dirigidas por responsabilidades, las orientadas a objetos, las ágiles, las formales y las destinadas a la web, las cuales conforman el conjunto principal utilizado por los desarrolladores de software (Paciencia E. M., 2015) No obstante, se están implementando nuevos enfoques y tipos de desarrollo de software que se ajustan a los estándares emergentes de las empresas, según el tipo de software que se esté analizando y desarrollando.

 

5.    Metodologías actuales de desarrollo de software

Las metodologías actuales o futuras incluyen la reingeniería, el enfoque ganar-ganar, la ingeniería de software distribuido y la ingeniería de software educativo. Cada una de estas metodologías busca optimizar, acelerar y garantizar un funcionamiento completamente correcto, dependiendo del ámbito y la aplicación específica. Por lo tanto, para llevar a cabo este estudio, se requiere un alto nivel de investigación, así como bases teóricas que permitan relacionar los requisitos de análisis, diseño, desarrollo e implementación del sistema computacional.

 

6.    Etapa de Mantenimiento

            Esta fase confirma el funcionamiento del software en términos de más eficiencia y menos errores. Si se requiere, los usuarios se forman, o se les presta documentación sobre como operar y como mantenerlo en funcionamiento.
 

Tabla 1 Resumen de trabajos relacionados

Autores

Artículo

Metodologías

Análisis

Tradicionales

Ágiles

(Paciencia E. M., 2015).

Metodologías de desarrollo de software

 

Waterfall

Prototyping

Spiral 

Incremental

Rad

Programación extrema                                           

Scrum                                                                                       

Cristal

Kanban

Desarrollo basado en funcionalidades (feature driven development (FDD))                                  

Desarrollo adaptativo de software (adaptive software development (ASD)                                        

 

En este artículo se da a conocer las principales metodologías de desarrollo de software tanto tradicional y ágiles.

 (López G. , 2018).

Metodologías ágiles frente a las tradicionales en el proceso de desarrollo de software

Modelo en cascada

Scrum (Muy popular en emprendimientos) Programación extrema (XP) Crystal Clear Mobile-D (ágil y extrema para móviles)

La información del artículo se centra principalmente en los tipos de metodologías ágiles que se trabajan mayormente para el desarrollo de softwares.

(H. Vite, J. Dávila y B. Molina, 2018, págs. 8,12).

Estudio comparativo de metodologías tradicionales y ágiles para proyectos de Desarrollo de Software

PMI                                                                         PRINCE2

Scrum                                                                              XP                                                                                      DSDM ( Dynamic Systems Development Method)

La información del artículo da a detalle cada descripción de las metodologías de desarrollo de software además de dar una comparación y cada punto como sus características, ventajas y desventajas.

(Sanhueca, H. Valdéz, L. Reyes y F. Flores, 2021, págs. 23,34).

Metodologías ágiles: un análisis de los desafíos organizacionales para su implementación

 

Kanban                                                                           Scrum

El siguiente informe presenta información acerca de los conflictos que se dan al implementar las metodologías ágiles de desarrollo de software como Kanban y Scrum.

 (‘V. Corona, J. Gutiérrez, L. Fernádez y C. Rivas, 2015, págs. 4,7).

Metodologías actuales de desarrollo de software

Cascada, Incremental, Evolutivo, Espiral, Prototipos, Desarrollo basado en componentes

Programación extrema, Crystal, Evolutionary Project Management (Evo)

Actualmente, las empresas operan en un entorno

global que cambia rápidamente; en ese sentido,

deben responder a nuevas oportunidades y

metologías de desarrollo de software.

 (Delgado E. , 2016, págs. 19,28).

Metodologías de desarrollo de software. ¿Cuál es el camino?

 

Programación extrema, Metodología 3P

Las características del software que no pueden ser demostradas mediante pruebas

simplemente no existen.

 (Noriega R. , 2017, págs. 34,35).

El Procesos de Desarrollo de Software

Cascada, Modelo en fuente, Espiral,

El Ciclo de Desarrollo Ágil

Los procesos ágiles utilizan feedback, en lugar de la planificación como su mecanismo de control primario.

 (Laínez J. , 2015, págs. 11,29) .

Desarrollo de software Ágil

 

Incremental, Programación extrema, Scrum

No se debe intentar prever el futuro, ya que raramente se consigue acertar. Al evitar especular sobre lo que sucederá, se gana tiempo, permitiendo que el cliente tenga acceso a la funcionalidad rápida.

 (C. Gamboa, A. León y J. Zumba, 2018, págs. 22,38).

Evolución de las Metodologías y Modelos utilizados en el Desarrollo de Software

Modelo de cascada, cascada en V, Espiral, modelo de Desarrollo Evolutivo por Prototipos, desarrollo evolutivo iterativo, modelo basado en componentes.

Xp, Scrum

Las metodologías Agiles, más que un marco de procedimientos y herramientas se

conciben como una filosofía, una práctica orientada a las personas no a los procesos.

 (M. Moreno, J. Aranda, L. Parra, J. Ruedas, J. Cruz y M. Navarro, 2017, págs. 9,22).

Selección de Metodologías Ágiles e Integración de Arquitecturas de Software en el Desarrollo de Sistemas de Información

 

ICONIX, SCRUM

Las metodologías ágiles son metodologías adaptativas, que permite llevar a cabo, proyectos de desarrollo de software, adaptándolo a los cambios como una oportunidad para mejorar el sistema e incrementar la satisfacción del cliente.

 (Y. Fernández, R. Peña, A. Leyva y C. Madariaga, 2016, págs. 16,44).

Propuesta metodológica para desarrollo de software educativo en la Universidad de Holguín

 

Xp, Scrum, Crsytal, Dynamic Systems Development Method (DSDM), Feature Driven Development (FDD)

XP es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, que promueva el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y proporcione un buen clima de trabajo.    

 (L. Diaz, 2017, págs. 292,307) .

Metodología de desarrollo de software para plataformas educativas robóticas usando ROS-XP

 

XP, SCRUM, Crystal Methodologies, Dynamic Systems Development Method (DSDM), Feature- Driven Development (FDD) y Lean Development (LD).

La programación extrema (XP por las siglas en inglés) es un proceso ágil de desarrollo de software, enfocada a las buenas prácticas de codificación, una clara comunicación y al trabajo en equipo. Está concebida para proyectos medianos y pequeños donde los requisitos son cambiantes.

 

7.    Análisis de resultados.

         A través de la investigación se ha identificado la historia de las metodologías de software desde sus inicios y sus aportes en la evolución y creación del software funcional, la metodología tradicional ha sido el impulso para que se actualice a una metodología ágil con características que cumplen con los requisitos del usuario. Por otra parte, las metodologías ágiles se enfocan en el buen ambiente de trabajo y apoyo laboral entre compañeros, ya que deducen que con este tipo de método los trabajadores pueden rendir mejor en sus tareas y tener un resultado final óptimo. 
Las metodologías agiles se adaptan mejor al entorno actual, reduce gastos y se enfocan en trabajar en muchos de los casos de manera directa con el usuario final y los clientes, teniendo en cuenta las ideas, necesidades, generando competitividad y mayores beneficios en sus servicios.
Dentro de las fuentes bibliográficas indagadas se reflejó que las metodologías ágiles más utilizadas actualmente son: XP que se enfoca en las buenas relaciones laborales que benefician en el aprendizaje de los desarrolladores para dar su mejor potencial al momento de realizar o ejecutar los proyectos, también la metodología Scrum que con su modelo de análisis y diseño brindan una metodología competitiva en el desarrollo de software, cabe recalcar que la metodología ASD también cuenta con puntos a favor ya que se enfoca en adaptarse al cambio con un ciclo definido de planificación diseño y construcción.
 
Tabla 2 Comparación de metodologías (Paciencia E. M., 2015)
 
Conforme a lo analizado identificamos que una metodología es eficiente cuando se enfocan en el trabajo en equipo colaborativo, ya que deducen que con dicho método se pude sacar provecho de los desarrolladores respecto a un buen trabajo en el desarrollo del software y además comparten conocimientos lo que genera una productividad alta y es por ello que determinamos las metodologías elegidas como las óptimas para implementarse.
Gráfico 1: tipos de metodologias
 

8.     Conclusión

         Conforme con la indagación se identificó que las metodologías ágiles son las que cumplen con las características y vigencia para el desarrollo de software, además que brinda soluciones factibles enfocándose en el trabajo en equipo y el buen ambiente laboral para tener un mejor desempeño.
Es importante interactuar con el usuario para identificar todas las necesidades que necesita para satisfacer al cliente en la prestación de su servicio, además resulta beneficioso ya que el cliente puede ver los avances del proyecto y puede realizar cambios mientras se desarrolla el mismo, sin tener mucha pérdida de tiempo y llegando a un consenso mutuo. 
Se debe tener en cuenta la clasificación de las metodologías de desarrollo de software en una lista que permita identificar sus características, forma de trabajo y vigencia, que permitan al usuario alinearse a una metodología para el desarrollo del proyecto.

9.    Referencias

‘V. Corona, J. Gutiérrez, L. Fernádez y C. Rivas. (2015). Metodologías actuales de desarrollo de software.

Alvaro Muñoz, Leonardo Bernóm. (2014). Análisis de herramientas software para el modelado de procesos de software. NOVUM, 56.

B. Molina, H. V. (2018). Metodologías ágiles frente a las tradicionales en el proceso de desarrollo de software. S.n: Grupo Compás.

C. Gamboa, A. León y J. Zumba. (2018). Evolución de las Metodologías y Modelos utilizados en el Desarrollo de Software. INNOVA.

Carlos Rivas, V. C. (2015). Metodologías actuales de desarrollo de software. México: S.n.

Delgado, E. (2016). Metodologías de Desarrollo de Software. ¿Cuál es el camino? Cuba: S.n.

Diego Ramírez, J. B. (2019). Metodologías de desarrollo de software para plataformas educativas robóticas usando ROS-XP. Colombia: S.n.

Evelyn, M. A. (2009). Herramientras case para el proceso de desarrollo de software. Monografía, 1, 18.

Fernando Flores, V. S. (2021). Metodologías ágiles: un análisis de los desafíos organizacionales para su implementación. Chile: S.n.

Gonzalez Marin, G. A. (2014). SOFTWARE PARA EL CONTROL Y MANEJO DEL FLUJO DE DATOS EN EL. UNIVERSIDAD LIBRE, I, 48-53.

Grave Peralta, J. J. (s.f.). Herramienta para la administración del proceso de desarrollo de. I(1), 09-14.

H. Vite, J. Dávila y B. Molina. (2018). Metodologías ágiles frente a las tradicionales en el proceso de desarrollo de software. Grupo Compás.

Haustein, M. C., & Pallioto, D. (2016). Herramientas Software Para Una Optima Gestión del Proceso de desarrollo de software, a utilizarse en las Empresas de Software. Parana, I, 3.

Isaias David Vivas Flores, Andreé Héctor Salvador Herrera. (2021). Estudio de tendencias y herramientas metodológicas para el desarrollo de software en Guayaquil. Ecuadorian Science Journal, 5(1), 9.

Johanna Zumba, C. G. (2018). Evolución de las Metodologías y Modelos utilizados en el Desarrollo de Software. Ecuador: INNOVA Research Journal.

Juan David Vahos, Ana Alexandra Pino Martinez, John Castro Maldonado. (2019). Desarrollo de una herramienta de software para la gestión del mantenimiento de infraestructura en el SENA regional Antioquia. Revista Cintex, 24(1), 7.

Julio C. Caiza, Danny S. Guamán, Gabriel R. López. (2015). Herramientas de desarrollo con soporte colaborativo en Ingeniería de Software. Enfoque UTE, 6(2), 15.

Laínez, J. (2015). Desarrollo de software ágil. Reino Unido: S.n.

López, G. (2018). Estudio comparativo de metodologías tradicionales y ágiles para proyectos de Desarrollo de Software. España: S.n.

Luis Días, Yanisbel Navallo, Raciel Yera. (2017). SISTEMA INFORMÁTICO PARA EL APOYO A LA GESTIÓN ESTRATÉGICA EN LA UNIVERSIDAD DE CIEGO DE ÁVILA. Universidad&Ciencia, 6(Especial UNICA), 16.

M. Moreno, J. Aranda, L. Parra, J. Ruedas, J. Cruz y M. Navarro. (2017). Selección de Metodologías Ágiles e Integración de Arquitecturas de Software en el Desarrollo de Sistemas de Información.

Mirta Navarro, M. M. (2017). Selección de Metodologías Ágiles e Integración de Arquitecturas de Software en el Desarrollo de Sistemas de Información. Argentina: S.n.

Noriega, R. (2017). El Proceso de Desarrollo de Software. España: Spanish Edition.

Oscar Cárdenas, Jorge Armijos, Jimmy Molina, Cristian Sancho, Silvia Cabrera. (2018). HERRAMIENTAS PARA EL ANÁLISIS-DISEÑO DE SOFTWARE: UN ESTUDIO COMPARADO. REVENCYT, 8.

Paciencia, E. M. (2015). Metodologías de desarrollo de software. Argentina: UCA.

Rustam A. Burnashev, Alberto V. Guabaydullin, Arslan I. Enikeey. (2020). Construcción de herramientas especializadas de ingeniería de software asistida por. Tecnología 3C, 9(1), 17.

Sanchez, J. (2015). Pruebas de software.Fundamentos y tecnicas. Madrid: Universidad Tecnica de Madrid.

Valentina P. Castro Rivera, Raúl A. Herrera Acuña, Marco A. Villalobos Abarca. (2020). Desarrollo de un software web para la generación de planes de gestión de riesgos de software. Información Tecnológica, 31(3), 14.

Y. Fernández, R. Peña, A. Leyva y C. Madariaga. (2016). Propuesta metodológica para desarrollo de software educativo en la Universidad de Holguín.