Modelos de Desarrollo de Software: Una Comparativa Esencial

Enviado por federzzz y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 7,44 KB

Modelo Cascada

El Modelo Cascada toma las actividades fundamentales del proceso de software (especificación, desarrollo, validación y evolución) y las representa como fases separadas y secuenciales. El resultado de cada fase consiste en uno o más documentos autorizados. La siguiente fase no debe comenzar hasta que la fase previa haya terminado.

Es importante destacar que, aunque se presenta como un modelo lineal, el proceso de software no es tan simple, sino que implica retroalimentación de una fase a otra.

Etapas Principales

  • Análisis y Definición de Requerimientos: Se recopilan y documentan las necesidades del cliente.
  • Diseño del Sistema y del Software: Se define la arquitectura del sistema y el diseño detallado del software.
  • Integración y Prueba de Unidad: Se prueban los componentes individuales del software.
  • Integración y Prueba de Sistema: Se prueban los componentes integrados como un sistema completo.
  • Operación y Mantenimiento: El sistema se pone en producción y se gestionan sus mejoras y correcciones.

Ventajas

  • La planificación es sencilla y predecible.
  • La calidad del producto final tiende a ser alta debido a la rigurosidad de cada fase.

Desventajas

  • Presenta una partición inflexible del proyecto en distintas etapas.
  • La retroalimentación es tardía, lo que dificulta la adaptación a cambios.

Consideraciones de Uso

Debe usarse cuando los requerimientos se entiendan bien y sea improbable un cambio radical durante el desarrollo del sistema.

Modelo Espiral

El Modelo Espiral se representa como una espiral, donde cada ciclo de la espiral representa una fase del proceso de software. Este modelo combina la evitación del cambio con la tolerancia al mismo, asumiendo que los cambios son resultado de riesgos del proyecto e incluyendo actividades explícitas de gestión de riesgos para reducirlos.

Sectores de Cada Ciclo

  • Establecimiento de Objetivos: Se definen los objetivos para el ciclo actual.
  • Valoración y Reducción del Riesgo: Se identifican, analizan y mitigan los riesgos.
  • Desarrollo y Validación: Se desarrolla y prueba una parte del sistema.
  • Planeación: Se planifica el siguiente ciclo de la espiral.

Ventajas

  • La principal característica de este modelo es su reconocimiento explícito de riesgos y la integración de su gestión.
  • Permite una adaptación continua a los cambios y una mejor gestión de la incertidumbre.

Desventajas

  • Debido a su elevada complejidad, no se aconseja utilizarlo en pequeños sistemas.
  • Requiere una experiencia considerable en la gestión de riesgos.

Construcción de Prototipos

La Construcción de Prototipos implica la creación de una versión inicial de un sistema de software que se utiliza para demostrar conceptos, explorar opciones de diseño y comprender mejor un problema y sus posibles soluciones. Los prototipos permiten a los usuarios ver qué tan bien el sistema apoya su trabajo, obtener nuevas ideas para los requerimientos y descubrir áreas de fortalezas y debilidades en el software. Además, facilitan la revelación de errores y omisiones en los requerimientos propuestos.

Tipos de Prototipos

  • Prototipo Desechable: Se utiliza para eliminar dudas sobre lo que realmente quiere el cliente y para desarrollar la interfaz más conveniente. Una vez que se cumplen estos objetivos, el prototipo se descarta.
  • Prototipo Evolutivo: Es un modelo parcialmente construido que puede evolucionar de ser un prototipo a convertirse en el software completo, añadiendo funcionalidades de forma incremental.

Ventajas

  • Se crea con rapidez.
  • Generalmente tiene un bajo costo inicial.
  • Aumenta la probabilidad de éxito al involucrar al cliente tempranamente.

Desventajas

  • La administración del proceso puede ser difícil.
  • Existe el riesgo de que el cliente lo adopte como sistema final, incluso si no está completo o es robusto.

Desarrollo Incremental

El Desarrollo Incremental es una estrategia donde el software se construye y entrega en pequeñas partes funcionales (incrementos) a lo largo del tiempo. Cada incremento añade funcionalidad al sistema previamente entregado.

Ventajas

  • Se reduce el costo de adaptar los requerimientos cambiantes del cliente.
  • Es más sencillo obtener retroalimentación del cliente de forma temprana y continua.
  • Es más rápida la entrega e implementación de software útil al cliente.

Desventajas

  • El proceso no es siempre visible para la gestión.
  • La estructura del sistema tiende a degradarse conforme se implementan nuevos cambios si no se gestiona adecuadamente.

Entrega en Etapas

La Entrega en Etapas es similar al desarrollo incremental, pero se enfoca en la entrega de versiones completas del sistema en fases planificadas, permitiendo a los usuarios comenzar a utilizar el software funcionalmente desde las primeras entregas.

Ventajas

  • Los clientes pueden usar los primeros incrementos como prototipos y comenzar a utilizar el software funcionalmente desde el primer incremento.
  • Resulta relativamente sencillo incorporar cambios al sistema en etapas posteriores.

Desventajas

  • Resulta difícil identificar recursos comunes que necesiten todos los incrementos.
  • Resulta complicado cuando se diseña un sistema de reemplazo completo.

Modelo Basado en Reutilización

El Modelo Basado en Reutilización se centra en la construcción de sistemas de software a partir de componentes existentes, en lugar de desarrollarlos desde cero. Esto implica buscar componentes reutilizables, adaptarlos si es necesario e integrarlos para formar el nuevo sistema.

Ventajas

  • Reduce la cantidad de software a desarrollar, lo que disminuye costos y riesgos.
  • Conduce a entregas más rápidas del software.
  • Aprovecha la calidad y fiabilidad de componentes ya probados.

Desventajas

  • Los compromisos con los requerimientos son inevitables, lo que puede conducir a un sistema que no cubra completamente las necesidades reales de los usuarios.
  • Puede haber dificultades en la integración de componentes de diferentes fuentes.
  • La gestión de licencias y derechos de autor de los componentes reutilizados puede ser compleja.

Entradas relacionadas: