¿Por qué el diseño de software es un proceso iterativo?

Gracias por A2A ..
Veamos a la antigua usanza cómo funciona el boceto.

Bocetos:

Un artista toma un cuaderno de bocetos, dibuja un lápiz fino a lo largo de un poco de carbón y comienza a dibujarlo por prueba y error. Se frota / comienza de nuevo después de cada error.

Ahora, ¿qué me pasa? Se suponía que debía escribir sobre diseño de software y no sobre artes … Bueno, le diré que el caso es casi el mismo … Como en ambos casos, alcanzamos el resultado deseado mediante un ciclo repetido de operaciones. Un iterativo es convergente y se acerca al resultado deseado a medida que aumenta el número de iteraciones.

Veamos cómo funciona el desarrollo iterativo en el caso del diseño de software:

Estoy de acuerdo en que, por lo general, no seguimos un proceso de retroalimentación tan frecuente como se muestra en la imagen, pero le da una idea de un desarrollo iterativo y debería ahorrarme escribir 60–70 palabras en él … Es broma. ¡Estaba siendo ilustrativo allí!

Ahora la pregunta es …

Por qué necesita un modelo de diseño iterativo:

Un enfoque iterativo es generalmente superior a un enfoque lineal o en cascada por muchas razones diferentes.

  • Mitigación de riesgos
    Los riesgos se mitigan antes, porque los elementos se integran progresivamente. La mayoría de los riesgos se abordan durante la integración. Las iteraciones hacen que todo el proceso de integración sea una actividad continua y, por lo tanto, una única gran integración se divide en pequeños estallidos de integración que permiten abordar los riesgos máximos.
  • Los cambios son acomodados
    Bueno, seamos sinceros, los requisitos y las tácticas cambian durante el desarrollo del proyecto. Simplemente no está bajo nuestro control a veces. Pero con los lanzamientos iterativos puede controlarlo y acomodar las solicitudes y requisitos de manera más viable.
  • Desarrollo robusto
    El desarrollo iterativo, en lugar de ejecutar pruebas una vez hacia el final del proyecto, da como resultado un producto más exhaustivamente probado. Mejorar y refinar el producto se facilita, lo que resulta en un producto más robusto.
  • Improvisación interna
    Los desarrolladores pueden aprender de este enfoque e improvisar sobre la marcha. El proceso en sí puede ser refinado y mejorado a medida que se desarrolla.
  • Reutilización incrementada
    Es más fácil identificar partes comunes, ya que están parcialmente diseñadas o implementadas, en comparación con tener que identificar todas las características comunes por adelantado.

Con el enfoque de cascada, todo se ve bien hasta cerca del final del proyecto, a veces hasta la mitad de la integración. Entonces todo se desmorona. Con el enfoque iterativo, es muy difícil ocultar la verdad por mucho tiempo.

Espero que ayude. ¡Feliz codificación!

El software se desarrolla / diseña teniendo en cuenta un grupo de usuarios específico. Y debería ser así para que las versiones iniciales logren su propósito. Como ingeniero de software, uno debe recibir comentarios frecuentes de los usuarios para comprender mejor el uso del software. Y de acuerdo con el software debe cambiar / actualizar para ofrecer una mejor experiencia de usuario.

Y, por lo tanto, el diseño de software es y debe ser un proceso iterativo (para ser un software bueno / popular \ U0001f609).

En un mundo tan dinámico, los requisitos cambian con demasiada frecuencia, el diseño debe reflejar el sistema y cambiar en consecuencia, por lo tanto, debe ser un proceso iterativo.