Modelos de Proceso de Software
Nicolas Álvarez Cuenca, Ecuador
Escuela de Ingeniería de Sistemas y Telemática
Universidad del Azuay Alexander Gonzales
Cuenca, Ecuador Escuela de Ingeniería de Sistemas y Telemática
Universidad del Azuay
Jaime Panata Cuenca, Ecuador
Escuela de Ingeniería de Sistemas y Telemática
Universidad del Azuay Martín Lañón
Cuenca, Ecuador Escuela de Ingeniería de Sistemas y Telemática
Universidad del Azuay
Bayron Gutiérrez Cuenca, Ecuador
Escuela de Ingeniería de Sistemas y Telemática
Universidad del Azuay
Resumen
El siguiente trabajo pretende presentar una comparativa entre cinco modelos de proceso de software: Cascada,
prototipos, espiral, scrum y dirigido por modelos. Además, busca exponer a breves rasgos, en que consiste
cada uno de ellos, y así saber cual es la mejor opción, según el proyecto, que se desee implementar.
Palabras clave: Software, modelo, desarrollo, análisis.
Abstract
The following work intends to present a comparison between five software process models: Cascade,
prototypes, spiral, scrum, and model-driven. It also seeks to briefly expose what each one of them consists of,
and thus know which is the best option, depending on the project, that you want to implement.
Keywords: Software, model, development, analysis.
I. INTRODUCCION
La ingeniería del software fue creada con el fin de que el desarrollo de un sistema sea viable ya que
anteriormente no se tenía un control sobre el desarrollo de un software adecuado, lo cual provocaba que los
costos excedan el presupuesto propuesto, además la creación de aplicaciones era algo muy complejo, todos
estos problemas ayudaron a la creación de nuevas técnicas, las cuales en la actualidad son considerablemente
utilizadas, técnicas como: modelos, paradigmas y filosofías de desarrollo, a los que se les conoce como ciclos
de vida del desarrollo de software, esto se extiende desde la idea sobre el sistema hasta la entrega del mismo.
El desarrollo de software en los últimos años ha sido de gran necesidad puesto que, ayuda a realizar proyectos
de gran tamaño en un menor tiempo posible y ha demostrado que con la documentación se puede llegar a
tener una mayor efectividad en dichos sistemas [10]. Elegir un modelo de desarrollo ayuda a crear software
más eficiente, según las circunstancias, pero, se deben tomar en cuenta varios factores para saber cuál es el
más adecuado [11]. Por ello, en este trabajo se compararon 5 modelos de desarrollo de software para que un
desarrollador pueda seguir el modelo que cumpla con sus necesidades, además de analizar las ventajas y
desventajas de cada modelo.
En la ingeniería del software existen modelos para el desarrollo del sistema, Un modelo es una descripción
simplificada de un proceso del software que presenta una visión de este proceso[4]. Algunos de los modelos
que se pueden seguir son: Modelo cascada, Modelo en espiral, Modelo scrum, Modelo de prototipos, Modelo
MDD-MDA.
Esta investigación está organizada de la siguiente forma en el apartado 2 se mostrarán los trabajos
relacionados con investigaciones de las comparaciones de los modelos, en el apartado 3 se especificará la
metodología utilizada, en el apartado 4 se mostrarán los resultados y en el apartado 5 se mostrarán las
conclusiones hechas de las comparaciones.
II. TRABAJOS RELACIONADOS
La ingeniera de software ha logrado llevar a cabo enfoques sistemáticos y disciplinados para el desarrollo
de software esto se ha logrado mediante los modelos y metodologías que nos ayudan a llevar a cabo una serie
de prácticas para la correcta utilización de tiempo y recursos. Existen varios trabajos relacionados en el
ámbito de modelos de proceso de desarrollo de software, algunos de estos trabajos enfocándose en los
modelos ya seleccionados haciendo una comparativa entre los diferentes modelos para encontrar el que más
se adapte a las necesidades del usuario y así mismo encontrar el mejor modelo para desarrollar un sistema. En
este contexto se han encontrado los siguientes trabajos.
En la investigación de Gómez [7], presenta la importancia de tener medidas y procesos para el desarrollo
de software atendiendo a las dificultades y aplicar ciertas medidas que lleven a cabo hasta el proceso final,
tomando medidas como la intangibilidad y mayor dificultad de estandarizar, simultaneidad entre el proceso de
realización y la entrega final al cliente, y la calidad del servicio.
En la investigación desarrollada por Muños y Gasca [8], presentan un análisis comparativo de algunos
modelos para el desarrollo de software, ya que se presenta una carencia en la implementación de procesos o
modelos que nos ayuden a la hora del desarrollo de software, mediante su investigación con los modelos
estudiados se logró determinar que mediante la implantación de modelos en empresas se logró una mejora en
ámbitos como: procesos de software, tanto como en la planificación de proyectos como en la gestión de
requisitos, gestión de configuración y gestión de riesgos. Con esto se logró determinar que modelos para el
desarrollo de software ayudan a las empresas a tener ventajas estratégicas frente a sus competidores, sin
embargo, no todas las empresas tienen el conocimiento para llevar a cabo estos modelos.
Por otro lado, se puede ver que en [9] plantean un análisis de los modelos de desarrollo de software para
su estudio, esto ya que el desarrollo de software está asociado con problemas asociados con los resultados, ya
que se suele presentar discordancias con lo esperado por el usuario, además de los inconvenientes que pueden
llegar a presentarse, por lo que establecer modelos orientados en el desarrollo de software de una manera
económica y fiable es de gran importancia. Mediante un análisis de los modelos de prototipado, desarrollo
basado en componentes, desarrollo en espiral, modelo RAD y modelo en cascada, para la comparativa se
tomaron valores como funcionamiento con requisitos y arquitectura no predefinidos, software altamente
fiable, gestión de riesgos, permite correcciones sobre la marcha, visión del progreso por el cliente y el jefe del
proyecto.
Por último, en el estudio de [4], nos presenta una descripción de los diferentes tipos de modelos para el
desarrollo de software describiendo las técnicas y herramientas que brinda cada modelo con el fin de llevar a
cabo tareas como la organización de actividades del proceso para así lograr que el desarrollo sea más efectivo,
nombrando al modelo cascada como uno de los más comunes ya que es de los primeros modelos propuestos.
A) Modelo cascada o ciclo de vida clásico
El modelo de cascada o ciclo de vida clásico tiene que como origen el año 1970 con el ingeniero Winston w.
que creó esta metodología para dar seguimiento al desarrollo de un software, con la idea de encontrar fallos
que se podrían dar en la creación del diseño. Este modelo evolucionó en un corto lapso de tiempo, por el
avance de nuevas tecnologías que también impulsaron el desarrollo de conceptos para ser aplicados en
necesidades organizacionales [1].
Características del modelo Ciclo de vida clásico
El modelo de cascada tiene como particularidad una secuencia lineal, la cual se desenvuelve en etapa
determinadas la cuales siguen un orden establecido, ya que se deben ir implementando adecuaciones
oportunas y pruebas para corregir errores que puedan surgir, este es un proceso sistemático, analítico y
técnico para el desarrollo de software, lo que implica enfatizar en la solución de los problemas particulares
que se detecten en el momento de desarrollar software [3].
FIG.1 Modelo cascada
Definición de etapas:
1.Definición de requerimientos: El modelo comienza con una fase de análisis que contiene un estudio de
viabilidad y una definición de los requisitos. En el estudio de viabilidad se evalúan los costes, la rentabilidad
y la factibilidad del proyecto de software, lo que da como consecuencia una descripción completa de los
requisitos, una apreciación financiera del proyecto y una propuesta para el cliente. Además, se realiza una
definición detallada de los requisitos, en donde se describe la problemática, el concepto a definir qué
funciones y que características que debe ofrecer el producto [1].
2.Diseño del software y del sistema: Esta fase sirva para formular una solución concreta en base a los
requerimientos, tareas y estrategias definidas en la fase anterior, se diseña la arquitectura de software, un plan
de diseño detallado del mismo, centrándose en componentes concretos.
3.Implementación y prueba de unidades: La siguiente fase del modelo de cascada tiene como objetivo se
empieza la programación del software, la búsqueda de errores y las pruebas unitarias. Los diversos
componentes se desarrollan por separado y se comprueban a través de las pruebas unitarias y se integran
lentamente a el producto final.
4.Integración y prueba del sistema: En esta fase los productos software se envían en primer lugar a los
usuarios finales seleccionados en versión beta, esto permita determinar si el software cumple con los
requerimientos establecidos con anterioridad.
5.Operación y mantenimiento: Al finalizar las etapas anteriores de pruebas del sistema, y constatar que el
sistema está funcionando correctamente, este se instala y se pone en funcionamiento práctico. Generalmente,
al poner el sistema en funcionamiento en el entorno práctico, se detectan errores se descubrieron en las
pruebas realizadas en las fases anteriores. Estos errores son corregidos en esta fase final de mantenimiento del
sistema, en la cual se mejora la integración de las unidades del sistema y se le brinda mayor robustez,
adaptando el software para enfrentar el entorno práctico [2].
B) Modelo de desarrollo dirigido por modelos
Dentro de la industria de software, nuevas tecnologías se inventan y se hacen populares cada año, donde son
empresas de toda índole, la que, por diversas razones, necesitan realizar nuevas implementaciones todo el
tiempo. Es así que, en estas circunstancias, problemas de interoperabilidad, mantenimiento y documentación
empiezan a aparecer.
Es así que la Arquitectura Dirigida por Modelos (MDA) nace para dar solución a estos problemas, dándole
mayor importancia al proceso de análisis del sistema y la lógica de negocios, y automatizar la codificación.
Esto permite a los equipos de desarrollo gastar menos tiempo en tareas de codificación y asignarlo a tareas de
análisis del problema y el planteamiento de la solución.
Para esto, MDA consta de un ciclo de vida, que difiere del ciclo de vida tradicional, como se puede observar
en la Fig. 2 a continuación:
Fig. 2 Comparativa entre el ciclo de vida de desarrollo de software tradicional y MDA.
El primer modelo que define MDA es un modelo con un alto nivel de abstracción que es independiente de
cualquier tecnología de implementación. Esto se denomina Modelo Independiente de Plataforma (PIM). Se
usa un PIM para modelar desde el punto de vista de cómo el sistema ayuda a mejorar el negocio, he ignorado
en gran medida la implementación/codificación.
A su vez, este PIM se transforma en uno o más Modelos Específicos de Plataforma (PSM). Un PSM busca
especificar su sistema en términos de las plataformas en donde el sistema va a ser implementado (para cada
plataforma tecnología, se genera su PSM especifico).
Por último, se requiere, que el PSM se transforme en código, sin embargo, este paso tiende a ser relativamente
sencillo, ya que el PSM representa y se ajusta bastante bien a su respectiva tecnología.
El desarrollo dirigido por modelos, permite mejorar la productividad del equipo: cambiando el enfoque de
tener a la codificación como la actividad principal, a la tarea de análisis y diseño como la actividad más
importante. Por otro lado, MDA aumenta la portabilidad de un sistema, pues los PIM son generados con una
definición de muy alto nivel, e independiente de la plataforma, pues para cada base de implementación
necesaria, se genera su propio PSM. Por último, esta metodología de desarrollo mejora el mantenimiento y la
documentación: gracias a que el ciclo de vida de MDA se centra en el PIM (el que se encuentra en un nivel de
abstracción muy alto), para generar el código; el modelo siempre tiene una representación exacta del código.
Esto permite tener una documentación de alto nivel, siempre actualizada, tal y como se necesita en cualquier
sistema software.
C) Prototipos
El modelo de prototipos se centra en ayudar a comprender los requisitos que el usuario plantea, este modelo
nos ayuda si el usuario no tiene una idea muy acabada de lo que desea o también es muy utilizada cuando el
Ingeniero de Software tiene dudas de la viabilidad [12], también se emplea para dar una idea concreta de
cómo va funcionar el sistema [13].
Las Metodologías de Desarrollos de Sistemas por Prototipos, “nos señalan en realidad varios métodos para
que funjan como herramientas útiles para agilizar el proceso de obtención de una solución de sistemas
requerida por cualquier organización, en especial, si la organización no cuenta con mucho tiempo [14].
La funcionalidad del modelo de prototipos comienza con la recolección de requisitos en esta sección los
encargados son el cliente y los desarrolladores, se definen los objetivos globales, seguido pasan al diseño
rápido centrado en aspectos visibles para el cliente, después se evalúa el prototipo y se utilizan para refinar los
requerimientos.[13]
Se clasifica en enfoques de desarrollo de software, emplean prototipos que se basan en uno de los siguientes
objetivos:
Exploración
Prototipos evolutivos
Prototipos experimentales
Los enfoques de tipo exploratorio son aquellos que se realizan para obtener o clasificar usuario, requisitos,
este ayuda a los desarrolladores a construir una perspectiva de las tareas, problemas y a solventar las
percepciones confusas del usuario y los requisitos para el estado inicial del sistema.[13]
Prototipos experimentales es cuando al usuario se da distintas alternativas y posibilidades; evalúa la viabilidad
del futuro sistema en términos de rendimiento y otros aspectos técnicos. [14]
Por otra parte, el prototipo evolutivo es un enfoque que permite flexibilidad en el software el desarrollo de
procesos para adaptación a diferentes contextos de la organización.[14]
FIG. 3 Modelo Prototipos
Características del modelo de prototipos.
El prototipo es una aplicación que funciona
Los prototipos se crean con rapidez
Los prototipos evolucionan a través de un proceso iterativo
Los prototipos tienen un costo bajo de desarrollo
Permiten que se cree correctamente el sistema deseado
D) Espiral
El modelo espiral diseñado por Barry Boehm en el año de 1986, publicado por primera vez en “A Sprial
Model of Sotware Development and Enhancement”. Este es un modelo meta donde mezcla de una forma
iterativa la construcción de prototipos con aspectos controlados y sistemáticos del modelo cascada [5]. Este
modelo nos ayuda a detectar e ir analizando los diferentes procesos con los que se puede llevar a cabo el
diseño del software donde se selecciona el menor riesgo posible, el desarrollo del software se lo realiza
mediante una serie de entregas iterativas, cada una de las actividades se trabajó se representan como un
segmento de la ruta de la espiral donde cada ciclo iterativo genera madurez al producto final.
FIG.4 Modelo espiral
Cada ciclo del modelo se puede dividir en cuatro sectores:
1. Definición de objetivos: En esta fase se procede a definir los objetivos específicos que tendrá el
software, así mismo se identifican las restricciones del proceso y el producto, para poder definir un
plan detallado de cómo se gestionará el desarrollo, para esto se identifican los posibles riesgos del
proyecto, según esto se plantean las alternativas que se tomarán.
2. Evaluación y reducción de riesgos: Una vez identificados los posibles riesgos se procede a realizar
un análisis detallado de cada uno, con el fin de definir y planificar los pasos que se tomarán para la
reducción de dichos riesgos.
3. Desarrollo y validación: Posterior a la evaluación de los riesgos, se procede a elegir el modelo para
el desarrollo del sistema, en esta fase se construye, prueba y se facilita el soporte para el usuario.
4. Planificación: En esta etapa se revisa los avances del proyecto y se toma la decisión de si se deberá
continuar con un ciclo posterior de la espiral y así continuar con los planes para las siguientes fases
del proyecto.
El modelo en espiral en comparación con otros modelos es que considera de una manera primordial el
riesgo, ya que estos originan problemas en el proyecto, como la alteración de la agente y excesos en los costos
por lo tanto se considera que la disminución de los riesgos es una tarea fundamental en la gestión de los
proyectos. El modelo en espiral brinda diferentes ventajas como pueden ser adaptarse y aplicarse a lo largo de
la vida del software, además de que mediante el desarrollo del software el desarrollador y el cliente tienen una
mejor perspectiva de los riesgos en cada uno de los niveles iterativos. Permite al desarrollador aplicar
prototipos en cualquier etapa de evolución del producto, reduce riesgos antes de que se conviertan en
problemáticos [6]. Así mismo este modelo puede tener algunas desventajas que puede ser mostrar los avances
al cliente mostrando el enfoque evolutivo del desarrollo del software, así mismo se necesita de habilidades y
experiencia a la hora de valorar y determinar el riesgo de cada fase [11].
E) Scrum
Scrum es denominado como un marco de trabajo de fácil adaptación interativa además de ser incremental,
rápido, flexible y eficaz, scrum fue diseñado con el objetivo de ofrecer un valor significativo de forma rápida
durante la ejecución de todo el proyecto[1]. El nacimiento de Scrum se da por manos de Ken Swaber en 1995,
Scrum tiene mucha relación con la metodología Ágil ya que contiene los mismos conceptos Ágil[2].Scrum
actualmente tiene una gran acogida debido a la velocidad con la que las empresas quieren unirse a la era de la
digitalización, ya que la razón por la que scrum fue desarrollado era principalmente para la gestión y el
desarrollo de los productos[1]. Durante el paso de los años Scrum comenzó a ser mas popular y ser usado en el
desarrollo de software, hardware, software embebido, redes de funciones interactivas, vehículos autónomos,
escuelas, gobiernos, mercadeo, también ayuda mucho en la gestión de las operaciones dentro de una
organización, actualmente scrum está demostrando ser de mucha utilidad cuando se quiere realizar una
transferencia iterativa e incrementa de conocimiento. Es importante saber que Scrum no es una metodología
Ágil, Scrum es considerado un marco de trabajo que hace uso de la metodología Ágil.
Para esto vamos a definir lo que son las metodologías Ágiles, estas nacen como una alternativa a las
metodologías tradicionales. Esto a partir a que las metodologías tradicionales presentan una gran dificultad de
entregar productos de calidad en lapsos de tiempo cortos. La metodología ágil esta centrado en tres principios;
la interacción, comunicación y en reducir elementos intermedios. Para lograr llegar a su objetivo es de suma
importancia desarrollar interacciones en periodos de tiempo significativamente cortos y desarrolladas por un
equipo multidisciplinar y autoorganizado. Además, la importancia de fomentar la comunicación entre todos los
miembros del equipo[3]. Una de las características que dentro de estas nuevas metodologías se esta
implementado es que reconocen a la persona como el principal valor esto con el fin de que el proyecto llegue a
culminar de la mejor manera. “El factor más importante en el desarrollo de software no son las técnicas y las
herramientas que emplean los programadores, sino la calidad de los programadores” (Robert. L. Class).
Como se menciono Scrum no es mas que un marco de trabajo y para que este marco de trabajo cumpla su
propósito hace uso de la metodología ágil, es de suma importancia tener en claro esto. Para lograr que una
persona se adapte fácilmente a esta metodología para el desarrollo de un proyecto es importante saber lo que
nos dice el manifiesto del mismo, en este menciona que “La agilidad es un comportamiento persistente o
habilidad, de entidad sensible, que presenta flexibilidad para adaptarse a los cambios esperado o inesperados,
rápidamente; persigue la duración más corta en tiempo, usa instrumentos económicos; y utiliza los
conocimientos y experiencias previos para aprender tanto del entorno interno como del externo.” (Quomer y
Henderson Seller).
Scrum es una metodología que se adapta a muchas empresas como se menciono es de suma importancia
que sea iterativo esto ya que scrum se basa en la teoría de control de procesos empírica o empirismo. Lo que el
empirismo nos asegura es que el conocimiento procede de la experiencia y de la forma de tomar decisiones en
base a lo que se conoce anteriormente, con el objetivo de optimizar la predictibilidad y el control de riesgo es
necesario el enfoque iterativo e incremental.[1].
FIG.5 Modelo iterativo Scrum
Para que durante el desarrollo de un producto se realice de la mejor manera Scrum tiene definido 3
importantes papeles de los cuales hace uso.
Trasparencia: Al ser una metodología enfocada en el trabajo en equipo todo aspecto durante el
proceso debe ser visible para todo responsable del resultado.
Inspección: Es importante la inspección frecuente a los artefactos de Scrum y como se va des
envolviendo el progreso para llegar a su objetivo para lograr detectar variaciones negativas.
Adaptación: Es importante hacer uso de la retroalimentación para hacer un ajuste al producto de
trabajo que se encuentra actualmente en desarrollo.
Además de todo esto dentro de SCRUM existen valores de suma importancia que durante el trabajo en los
eventos se van aprendiendo y explorando en este apartado tenemos; compromiso, coraje, foco, apertura,
respeto.
Teniendo claro lo anterior vamos a definir cual es la esencia del Scrum o como se define, “ Scrum es un
pequeño equipo de personas. El equipo individual es altamente flexible y adaptativo. Estas fortalezas
continúan operando en un equipo, en varios, en muchos y en redes de equipos que desarrollan, liberan,
operan y mantienen el trabajo y los productos de trabajo de miles de personas”[3].
Una característica que define a scrum son los roles que maneja para esto definen un conjunto cohesivo de
responsabilidades que pueden ser cumplidas por una o más personas. Para esto se manejan tres roles de Scrum
el Product Owner, Scrum Master y Development Team, además de esto, es de mucha importancia los famosos
Stakeholders que son de gran ayuda para lograr el objetivo ya que, al ser una persona, un grupo u organización
que se puede ver afectado por las acciones de una organización, podemos dividirlos en Cliente, Usuarios y
Patrocinador.
Para que todo esto sea posible además de tener a las personas correctas y al equipo correcto es necesario
hacer uso de varios artefactos que representa el trabajo o valor y en diversas formas son útiles para poder tener
transparencia a la hora de dar una inspección y una adaptación. Cada artefacto es necesario ya que es necesario
dar la máxima trasparecía de la información clave.
IV.RESULTADOS Y DISCUSION
Después de revisar e ir comparando los modelos y conociendo la funcionalidad de los mismos y conocer la
factibilidad hemos llegado a la conclusión que los modelos de cascada se pueden implementar cuando los
requisitos entregados por el cliente son claros y no se va tener modificaciones en el futuro, este modelo es
fácil de implementar por su documentación, este también emplea un cronograma en cual se va observando los
avances del sistema con el cliente.
Sin embargo, el modelo de prototipos es un modelo que se basa en desarrollo evolutivo, se emplea cuando el
cliente no tiene del todo las ideas claras o cuando el Ingeniero de Software tiene dudas de la viabilidad del
sistema, este modelo es fácil de implementar ya que consiste en pasos, en primer lugar, recoger
requerimientos esto se encarga el desarrollador junto con el cliente, después se realiza un prototipo de como
va terminar el sistema, este modelo es muy usado cuando la organización no dispone de mucho tiempo.
El modelo espiral se mezcla de una forma iterativa, la de prototipos y la de cascada, este modelo ayuda a
detectar e ir analizando los diferentes procesos seleccionando el menor riesgo posible, este modelo se
representa como segmentos en la ruta espiral donde genera la madurez del producto, este modelo le brinda
una gran versatilidad al desarrollador en cuanto a la aprobación de requisitos y la corrección de conflictos
presentados en cada iteración lo cual reduce significativamente los riesgos.
Por otro lado, la metodología ágil o scrum pueden implementarse a proyectos poco complejos en los que los
requerimientos no están bien definidos o exista incertidumbre en los objetivos y el plan de trabajo.
V. CONCLUSIONES
El objetivo del trabajo fue presentar una noción de cada una de las metodologías, esto con el objetivo de
demostrar que existen diferentes formas de llegar a presentar un proyecto de calidad. Sin embargo, no podemos
definir una sola metodología capaz de dar una solución a todos los proyectos que se puedan ir presentando.
Para saber cuál es las metodologías que necesitamos es importante tener claro que se va a realizar y definir
varias métricas, toda metodología tiene una forma de respuesta diferente y para esto es de suma importancia
como iremos definiendo cada una de nuestras métricas, a su vez la especificación de requisitos es un paso de
suma importancia. Cada uno de las metodologías nos puede dar una solución diferente, sin embargo, definimos
que la mejor metodología de trabajo es Scrum al ser una metodología que se centra en las personas y a su vez
toma al usuario final como parte fundamental dentro del desarrollo del proyecto. Otra característica importante
que maneja Scrum es la comunicación dentro del equipo y como al compartir conceptos con la metodología
Ágil da mucha ayuda para que el equipo de trabajo además de ser auto organizativo sea transparente en su
trabajo y logre sacar productos auto incrementales para dar funcionalidades útiles al usuario.
Bibliografía
[1] F. González, S. Castañeda, and D. Buitrago, “Comparación de las metodologías cascada y
ágil para el aumento de la productividad en el desarrollo de software,” Repos. Inst. - Univ.
Santiago Cali, pp. 1–11, 2019.
[2] L. Garcés and L. M. Egas, “Evolución de las Metodologías de desarrollo de la Ingeniería de
software en el proceso la Ingeniería de Sistemas Software.,” Rev. Científica y Tecnológica
UPSE, vol. 1, no. 3, 2013, doi: 10.26423/rctu.v1i3.29.
[3] J. Zumba Gamboa and C. Arreaga, León, “Evolución de las Metodologías y Modelos
utilizados en el Desarrollo de Software. Evolution of the Methodologies and Models used in
Software Development,” INNOVA Res. J., vol. 3, no. 10, pp. 20–33, 2018, [Online].
Available: https://dialnet.unirioja.es/descarga/articulo/6777227.pdf.
[4] J. A. Gómez, Guía para la aplicación de UNE-EN ISO 9001:2015. 2016.
[5] M. Muñoz, G. Gasca, y C. Valtierra, “Caracterizando las Necesidades de las Pymes para
Implementar Mejoras de Procesos Software: Una Comparativa entre la Teoría y la Realidad”, RISTI - Rev.
Iber. Sist. e Tecnol. Inf., núm. E1, pp. 1–15, 2014, doi: 10.4304/risti.e1.1-15.
[6] C. Delgado Olivera y D. Alonso, “Modelos de Desarrollo de Software Software Development
Models”, Rev. Cuba. Ciencias Informáticas, vol. 15, núm. 1, pp. 37–51, 2021.
[7] R. L. Glass, “Software Engineering Theory in Practice”, IEEE Softw., vol. 22, núm. 2, p. 96, 2005,
doi: 10.1109/MS.2005.47.
[8] J. Zumba Gamboa y C. Arreaga, León, “Evolución de las Metodologías y Modelos utilizados en el
Desarrollo de Software. Evolution of the Methodologies and Models used in Software Development”,
INNOVA Res. J., vol. 3, núm. 10, pp. 20–33, 2018, [En línea]. Disponible en:
https://dialnet.unirioja.es/descarga/articulo/6777227.pdf.
[9] A. Fl, “Procesos De Ingeniería De Software”, Procesos Ing. Softw., vol. 6, núm. 1, pp. 26–39, 2009,
doi: 10.14483/2322939X.4141.
[10] Canós, J. H., Letelier, P., & Penadés, M. C. (2003). Metodologías ágiles en el desarrollo de
software. Universidad Politécnica de Valencia, Valencia, 1-8.
[11] M. F. Burdino, C. Salgado, M. Peralta, A. Sánchez, y Á. Ruiz, “Guía para la aplicación de
la Norma ISO 9001:2015 en el desarrollo ágil de software”, Dep. Informática Fac. Ciencias Físico-
Matemáticas y Nat. Univ. Nac. San Luis, vol. 62, núm. 52, pp. 37–47, 2013.
[12] Z. Cataldi, F. Lage, R. Pessacq, and R. García Martínez, “INGENIERIA DE SOFTWARE,”
1999.
[13] G. Méndez, “Proceso Software y Ciclo de Vida Conceptos importantes,” 2009
[14] Suárez, E. C. (2012). Prototipo, El Contexto y La Ingeniería del Software.
[15] I. Pilar Alexandra Moreno, I. Alexandra Aparicio Revisado Editado, and I. Jairo Martínez,
“Ingeniería de Software Última Actualización: Ingeniería de Software,” 2012.