Paradigma de desarrollo incremental - Análisis y diseño de sistemas

Paradigma de desarrollo incremental - Análisis y diseño de sistemas

Modelo Incremental o Paradigma de Desarrollo Incremental

Resumen de la Sección: En esta sección, se introduce el tema del modelo incremental o paradigma de desarrollo incremental para el desarrollo de productos de software. Se menciona que la ingeniería del software es una disciplina que abarca todos los aspectos de la producción de software, desde la especificación del sistema hasta el mantenimiento del mismo. También se hace referencia a la importancia de los modelos de desarrollo y las metodologías utilizadas en el proceso.

Antecedentes del Modelo Incremental

  • El modelo en cascada es considerado como el paradigma más antiguo para el desarrollo de software.
  • Las metodologías tradicionales y ágiles son dos enfoques diferentes en el desarrollo de software.
  • Las metodologías ágiles ponen énfasis en la capacidad de respuesta a los cambios y la colaboración con el cliente.
  • Los proyectos con requisitos cambiantes y tiempos reducidos pueden beneficiarse del uso de metodologías ágiles.

El Modelo en Cascada

  • El modelo en cascada es un paradigma secuencial que consta de siete etapas: identificación, requerimientos, análisis, diseño, desarrollo, pruebas e implementación.
  • Este modelo fue ampliamente utilizado en el pasado debido a su simplicidad y facilidad para planificar proyectos.
  • Sin embargo, presenta deficiencias para satisfacer las necesidades actuales debido a su naturaleza lineal y dificultad para adaptarse a cambios.

Eficiencia del Modelo en Cascada

  • En los últimos años, se ha cuestionado la eficiencia del modelo en cascada debido a su falta de flexibilidad y adaptabilidad.
  • Los proyectos actuales rara vez siguen un proceso lineal y es difícil que todos los requisitos sean conocidos desde el principio.
  • El modelo en cascada puede generar bloqueos y dificultades para realizar correcciones o cambios en etapas anteriores.

Utilidad del Modelo en Cascada

  • A pesar de sus limitaciones, el modelo en cascada puede ser útil en proyectos con requisitos fijos y trabajo lineal.

Modelo Incremental

Resumen de la sección: En esta sección se introduce el modelo incremental, también conocido como método de las comparaciones limitadas sucesivas o método de atacar el problema por ramas. Se explica que este modelo es un enfoque tipo cascada que permite desarrollar el proyecto en etapas incrementales, agregando funcionalidades en cada etapa.

Características del Modelo Incremental

  • El modelo incremental entrega el software en partes pequeñas pero utilizables llamadas incrementos.
  • Cada incremento se construye sobre aquel que ya ha sido entregado.
  • Cada etapa consiste de requerimientos, diseño, codificación, pruebas y entrega.
  • El modelo incremental reduce riesgos al proveer visibilidad sobre el progreso a través de nuevas versiones y retroalimentación a través de la funcionalidad mostrada.
  • Es un enfoque lineal e iterativo, siguiendo los pasos del modelo cascada para desarrollar cada versión del sistema.
  • Con cada repetición o iteración, el sistema se vuelve más robusto y cercano a las necesidades del cliente.

Ventajas del Modelo Incremental

Resumen de la sección: En esta sección se presentan las ventajas del modelo incremental en comparación con el modelo cascada.

Ventajas del Modelo Incremental

  • Reduce el costo de adaptar requerimientos cambiantes del cliente.
  • Proporciona retroalimentación inmediata del cliente sobre el trabajo realizado.
  • Permite una entrega más rápida del software útil.
  • Proporciona una progresividad funcional para el cliente en cada etapa.
  • Ayuda a mitigar los riesgos de integración y arquitecturas más tempranas en el proyecto.
  • Permite la entrega gradual de implementaciones que pueden estar en producción más rápidamente.

Debilidades del Modelo Incremental

Resumen de la sección: En esta sección se mencionan las debilidades del modelo incremental.

Debilidades del Modelo Incremental

  • Requiere un buen análisis, ya que el costo resultante puede ser superior al propuesto por la organización.
  • Cada fase de interacción es fija, lo que impide el traslape con otra fase.
  • Pueden surgir problemas con las arquitecturas del sistema cuando se añaden características al proyecto.
  • El control moderado debe mantenerse durante todo el ciclo de vida del desarrollo mediante documentación escrita, revisión formal y aprobación por parte del usuario.

Desarrollo de módulos y entregas regulares

Resumen de la sección: En esta sección se habla sobre cómo los módulos deben complementarse y las interfaces deben estar bien definidas desde el principio. Los administradores necesitan entregas regulares para medir el avance del desarrollo del sistema. Si los sistemas se desarrollan rápidamente, puede resultar poco efectivo en términos de costos producidos documentaciones que reflejan cada versión del sistema.

Desarrollo de módulos

  • Los módulos deben complementarse antes de que otros sean requeridos.
  • Se requieren interfaces bien definidas desde el principio.

Entregas regulares

  • Los administradores necesitan entregas regulares para medir el avance del desarrollo.
  • Las entregas regulares permiten medir el progreso y realizar ajustes si es necesario.

Documentación de cada versión del sistema

  • Es importante tener documentaciones que reflejen cada versión del sistema.
  • Esto ayuda a mantener un registro claro de los cambios realizados y facilita futuras actualizaciones.

Dificultades con la arquitectura del sistema

Resumen de la sección: En esta sección se mencionan las dificultades que pueden surgir con la arquitectura del sistema a medida que se incorporan nuevos incrementos. La adición de más cambios de software puede volverse cada vez más difícil y costosa, lo cual puede llevar a problemas difíciles a ser pospuestos para demostrar éxito inicial en la gestión.

Desgranamiento de la arquitectura del sistema

  • Conforme se tienen nuevos incrementos, la arquitectura del sistema tiende a desgranarse.
  • La incorporación de más cambios de software se vuelve cada vez más difícil y costosa.

Problemas difíciles pospuestos

  • Los problemas difíciles tienen a ser empujados hacia el futuro para demostrar éxito inicial en la gestión.
  • Esto puede llevar a complicaciones y dificultades adicionales en etapas posteriores del desarrollo.

Adaptación del software a las necesidades del cliente

Resumen de la sección: En esta sección se menciona cómo el cliente tiene la capacidad de incluir o desechar elementos al final de cada incremento, con el objetivo de que el software se adapte mejor a sus necesidades reales. Este proceso se repite hasta que se elabora el producto completo y es particularmente útil cuando no se cuenta con una dotación de personal suficiente.

Inclusión o desecho de elementos por parte del cliente

  • Al final de cada incremento, el cliente tiene la capacidad de incluir o desechar elementos según sus necesidades.
  • Esto permite que el software se adapte mejor a las necesidades reales del cliente.

Proceso repetitivo hasta completar el producto

  • El proceso de inclusión y adaptación del software se repite hasta que se elabora el producto completo.
  • Este enfoque iterativo permite ajustes continuos y mejora gradual del producto final.

Utilidad en situaciones con recursos limitados

  • Este enfoque es particularmente útil cuando no se cuenta con una dotación de personal suficiente.
  • Permite un desarrollo progresivo sin requerir grandes equipos desde el principio.
Video description

Ingeniería de software, metodología incremental para el desarrollo agil de un proyecto. Video creado por Rafael Morales, Jefry Villalta, Sergio Francisco, estudiantes de la carrera de ingeniería de sistemas en la Bluefields Indian and Caribbean University - El Rama, Nicaragua