¿Cuáles son los diferentes enfoques utilizados en el proceso de aplicación de desarrollo de software?

En ingeniería de software, una metodología de desarrollo de software es una división del trabajo de desarrollo de software en distintas fases (o etapas) que contienen actividades con la intención de una mejor planificación y gestión. Algunos de los enfoques comunes para la aplicación de desarrollo de software incluyen cascada, creación de prototipos, desarrollo iterativo e incremental, desarrollo en espiral, desarrollo rápido de aplicaciones, programación extrema y varios tipos de metodología ágil. Algunas personas consideran que un “modelo” del ciclo de vida es un término más general para una categoría de metodologías o enfoques. Algunos de los enfoques que se utilizan para el desarrollo de software son:

1. Desarrollo de cascada: el modelo de cascada es un enfoque de desarrollo secuencial, en el que se ve que el desarrollo fluye de manera constante hacia abajo (como una cascada) a través de varias fases, típicamente:

(i) Análisis de requisitos que resulta en una especificación de requisitos de software

(ii) Diseño de software

(iii) Implementación

(iv) Pruebas

(v) Integración, si hay múltiples subsistemas

(vi) Despliegue (o instalación)

(vii) Mantenimiento

2. Creación de prototipos: la creación de prototipos de software es el enfoque de desarrollo de actividades durante el desarrollo de software, la creación de prototipos, es decir, versiones incompletas del programa de software que se está desarrollando.

3. Desarrollo incremental: varios métodos son aceptables para combinar metodologías de desarrollo de sistemas lineales e iterativos, con el objetivo principal de que cada uno sea reducir el riesgo inherente del proyecto al dividir un proyecto en segmentos más pequeños y proporcionar una mayor facilidad de cambio durante el proceso de desarrollo.

4. Desarrollo iterativo e incremental: el desarrollo iterativo prescribe la construcción de porciones inicialmente pequeñas pero cada vez más grandes de un proyecto de software para ayudar a todos los involucrados a descubrir problemas importantes temprano antes de que problemas o suposiciones defectuosas puedan conducir al desastre.

5. Desarrollo en espiral: un “modelo en espiral” formal de desarrollo de sistemas de software, que combina algunos aspectos clave del modelo en cascada y las metodologías de creación rápida de prototipos, en un esfuerzo por combinar las ventajas de los conceptos de arriba hacia abajo y de abajo hacia arriba. Proporcionó énfasis en un área clave que muchos consideraron que otras metodologías habían descuidado: el análisis de riesgo iterativo deliberado, particularmente adecuado para sistemas complejos a gran escala.

6. Desarrollo rápido de aplicaciones: el desarrollo rápido de aplicaciones (RAD) es una metodología de desarrollo de software que favorece el desarrollo iterativo y la construcción rápida de prototipos en lugar de grandes cantidades de planificación inicial. La “planificación” del software desarrollado utilizando RAD se intercala con la escritura del software en sí. La falta de una planificación previa exhaustiva generalmente permite que el software se escriba mucho más rápido y facilita el cambio de requisitos.

7. Desarrollo ágil: el desarrollo de software ágil utiliza el desarrollo iterativo como base, pero aboga por un punto de vista más ligero y centrado en las personas que los enfoques tradicionales. Los procesos ágiles incorporan fundamentalmente la iteración y la retroalimentación continua que proporciona para refinar y entregar sucesivamente un sistema de software.

8. Metodologías livianas: una metodología liviana tiene una pequeña cantidad de reglas. Algunas de estas metodologías también se consideran “ágiles”.

9. Código y arreglo: “Código y arreglo” es un “no patrón”. El desarrollo no se realiza a través de una estrategia o metodología deliberada. A menudo es el resultado de la presión de programación en el equipo de desarrollo de software. Sin mucho diseño en el camino, los programadores comienzan inmediatamente a producir código. En algún momento, las pruebas comienzan (a menudo al final del ciclo de desarrollo), y los errores inevitables deben repararse antes de que se pueda enviar el producto.