Modelo Incremental

Definición

Es un enfoque de desarrollo de software basado en la entrega de pequeños incrementos funcionales. Cada incremento pasa por un ciclo de desarrollo, prueba y entrega, permitiendo mejorar el sistema de manera progresiva. En cada iteración se agregan nuevas funcionalidades sin afectar lo ya construido (Pressman, 2013; Sommerville, 2011). Fue propuesto por Harlan Mills en el año 1980.


Fases Principales

Figura
Modelo Incremental

@startuml
!pragma layout smetana
skinparam style strictuml
skinparam BackgroundColor LightGray
'left to right direction
skinparam conditionStyle InsideDiamond
skinparam linetype ortho

|Incremento Inicial|
start
:Requerimientos;
:Análisis;
:Diseño Inicial;
:Implementación;
:Pruebas y Validación;
:Entrega y Retroalimentación;

|Incremento 2|
:Requerimientos;
:..;


|Incremento j|
:Requerimientos;
:..;

|Incremento Final|
:Requerimientos;
:..;

|Mantenimiento|
:Mantenimiento;

stop

@enduml

Fuente: Elaboración propia

Según Pfleeger (2006) y Sommerville (2011) se distinguen las siguiente fases para este modelo:

Análisis de Requerimientos
Identificación de las funcionalidades a desarrollar en cada incremento

Diseño Inicial
Definición de la arquitectura del sistema para soportar el desarrollo incremental.

Implementación del Primer Incremento
Desarrollo de una versión básica funcional del software.

Pruebas y Validación
Evaluación del incremento desarrollado para asegurar su calidad.

Entrega y Retroalimentación
Liberación del incremento al usuario y recopilación de comentarios.

**Iteración
Repetición del proceso para agregar nuevos incrementos hasta completar el sistema.

Mantenimiento
Corrección de errores, actualización del software y adaptación a nuevos requerimientos.


Ventajas

Según Pfleeger (2006) y Sommerville (2011):


Desventajas

De acuerdo a Pressman (2013) y Sommerville (2011):


Aplicaciones

Según Pfleeger (2006) y Sommerville (2011):


Conclusión

Ofrece un modelo flexible y centrado en la retroalimentación continua, lo que lo hace ideal para entornos donde los requisitos pueden cambiar frecuentemente. Sin embargo, su implementación requiere una comunicación efectiva con los usuarios y una planificación adecuada para evitar sobrecostos y complejidades innecesarias. El uso de prototipos y el enfoque en la mitigación de riesgos lo convierten en una opción viable para proyectos donde la incertidumbre y la evolución constante son factores clave.