República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Universitaria
I.U.P. “Santiago Mariño”
Cabimas, Edo. Zulia
Modelos de desarrollo
de software
Realizado por: Alejandro Silva
V-29.679.468
Ing. de Sistemas
Fecha: julio de 2020
Introducción
Los modelos de desarrollo de software representan un enfoque común, que puede
ser modificado y adaptado según las necesidades del software en proceso de
desarrollo. Existen varios modelos para el proceso de desarrollo, cada uno con pros y
contras. Se recomienda elegir el más adecuado a las necesidades del proyecto, sin
embargo, a veces conviene utilizar una combinación de varios modelos.
Modelo en cascada
Define estas etapas que deben cumplirse
sucesivamente:1. Especificación de los requerimientos
2. Diseño del software
3. Implementación o construcción
4. Integración
5. Pruebas o validación
6. Despliegue o instalación
7. Mantenimiento
Al seguir este modelo estrictamente, una fase comienza solamente si la anterior ha
terminado. A veces se hace una revisión antes de comenzar la siguiente fase, lo cual
da lugar a un proceso de control formal de cambio. Con ellas también se asegura la
finalización completa de la fase previa; los criterios para completar una fase a
menudo se conocen como “gate” (puerta en inglés). Este modelo no recomienda
revisar fases ya completadas, lo que lo hace objeto de crítica por su falta de
flexibilidad.
Modelo en espiral
Su principal característica es la gestión periódica de riesgos en el proceso de
desarrollo. La espiral se representa como un proceso que pasa a través de unas
interacciones con el diagrama de los cuatro cuadrantes correspondientes a las
siguientes actividades:1. Crear planes con el fin de identificar los objetivos del software, elegidos para
implementar el programa y aclarar las restricciones en su desarrollo.
2. Analizar riesgos evaluando analíticamente los programas seleccionados, para
buscar cómo identificar y eliminar esos riesgos.
3. Implementar el proyecto para hacer las verificaciones que hagan falta.
Modelo en espiral
El modelo en espiral enfatiza los riesgos, y hace hincapié en las condiciones de las
opciones y limitaciones para facilitar la reutilización de software. La calidad del
software puede ayudar como una meta propia en la fase de integración. Sin embargo,
este modelo también tiene sus limitaciones, entre las que destacan:
1. Como el énfasis está en el análisis de riesgo, requiere de clientes que lo acepten y
actúen al respecto, para lo cual se necesita confianza en los desarrolladores y gastar
más dinero para solventar los temas.2. Este modelo no se debe utilizar si la implementación del análisis de riesgos afecta
esencialmente a los beneficios del proyecto.
3. Los desarrolladores de software tienen que buscar riesgos de forma explícita, y
analizarlos exhaustivamente para hacer que el modelo funcione.
Primero se busca un plan para conseguir los objetivos con las limitaciones del
proyecto, para localizar y eliminar todo riesgo potencial mediante un análisis
cuidadoso, e incluyendo la fabricación de un prototipo a ser necesario. Si resulta
imposible descartar algunos riesgos, el cliente debe decidir si es seguro terminar el
proyecto o seguir adelante ignorando esos riesgos. Finalmente, se evalúan los
resultados y se procede a diseñar la siguiente fase.
Modelo de prototipos
Pertenece a los modelos evolutivos, en los que el prototipo debe construirse
rápidamente y con pocos recursos. El prototipo se construye para mostrárselo al
cliente, obtener críticas y retroalimentación, con lo cual se obtienen requisitos
específicos para la aplicación partiendo de las metas gráficas mostradas.
Sus etapas son las siguientes:1. Planificación rápida
2. Modelo
3. Construcción del prototipo
4. Entrega y retroalimentación
5. Comunicación
6. Entrega del desarrollo final
Una de sus ventajas es que es apto para el cliente que conoce grosso modo el
objetivo del software; al mismo tiempo, el equipo de desarrollo goza de una mejor
visibilidad de la interacción del cliente con el software y el ambiente en donde debe
realizarse.
Desarrollo iterativo e incremental
Solventa los problemas del modelo de cascada y ofrece entornos de trabajo con
técnicas para su utilización correcta. Este tipo de modelo es fundamental para el
método de programación extrema (XP), el cual consiste en realizar programas de
manera incremental, y sirve para obtener ventaja de lo que se ha realizado a lo largo
del proyecto. Se hacen varias iteraciones, cada vez más cercanas al software final y a
su vez, se agregan nuevas funcionalidades en cada etapa.
Se subdivide en los siguientes procesos:1. Etapa de inicialización: construcción de un producto en el cual se pueda obtener
retroalimentación por parte del usuario final.
2. Etapa de iteración: análisis, rediseño e implementación del producto de las
iteraciones previas.3. Lista de control del proyecto: son tareas que se crean para describir las partes que
conforman el proyecto; son implementadas y rediseñadas en cada iteración del
producto.
Desarrollo concurrente
También llamado ingeniería concurrente, se utiliza mayormente para aplicaciones
cliente-servidor, en el cual se describen los diversos procesos que ocurren
simultáneamente en la aplicación. Este proceso se aboca a las necesidades del
usuario, las decisiones de la gestión y los resultados de las revisiones. Por un lado,
está orientado a grupos de trabajo independientes, ofreciendo una visión exacta de
lo que se lleva del proyecto. Por otro lado, se necesitan grupos de trabajo y las
condiciones necesarias para su implementación.
Modelo orientado a la reutilización
La reutilización de software es un proceso donde se recurre a usar activos de
software en las especificaciones de análisis, diseños, implementación y pruebas de
una aplicación o sistemas de software.
La reutilización tiene algunos indicadores, por ejemplo:
1. Entre 40% y 60% de una aplicación es reutilizable
en otra.2. Alrededor del 0% de una aplicación administrativa es
reutilizable.3. Alrededor del 75% de las funciones son comunes a más de
un programa.4. Solo el 15% del código encontrado en muchos sistemas es único y novedoso a una
aplicación específica.El rango general de uso recurrente está entre 15% y 85%.
La reutilización tiene principios como la existencia de parecidos en otros sistemas
del mismo dominio, donde el software puede representarse como una combinación
de módulos y los sistemas nuevos pueden distinguirse respecto a los antiguos.
Espiral Incremental Reutilización
Ventajas - Su estructura es
cíclica
- Gestiona los
riesgos cada
cierto tiempo
- Participación y
feedback del
cliente
- Ideal para
proyectos
grandes
- Tiempo de
desarrollo
reducido
- Implementa la
funcionalidad
parcial
- Entrega rápida
del producto al
cliente
- Es más sencillo
acomodar
cambios con
cada incremento
- Reduce los
costos y el
tiempo
- Incrementa la
productividad
- No se reinventan
las soluciones
- Facilita compartir
productos del
ciclo de vida
Desventajas - Requiere de
mucho dinero
- Complejidad muy
alta
- Hay que saber
gestionar el
tiempo
- Mucha
planificación
- No recomendado
para algunos
sistemas
- Necesita metas
claras
- Necesidad de
inversión
- Falta de métodos
adecuados
- Necesidad de
formar personal
- Convencer al
Cuadro comparativo
Conclusión
De todos los modelos expuestos en esta presentación, yo me iría por el modelo
orientado a la reutilización, principalmente porque implica menos trabajo al
comenzar con un producto ya hecho, lo que facilita su modificación; al mismo
tiempo reduce el tiempo necesario para terminar un programa al igual que su costo,
esto significa más puntualidad para entregarlo al cliente. Sin embargo, esto también
requiere un mínimo de conocimiento previo en el ámbito de programación, para
poder entender el código que se está manejando al momento de elaborar el
programa. Igualmente, este modelo es una buena opción cuando no se tienen los
requisitos necesarios para emplear otros modelos.