Tipos de Desarrollo


Modelo en cascada


El modelo en cascada es un enfoque secuencial de desarrollo en el cual el trabajo fluye de manera secuencial ("como una cascada") a través de las distintas fases:
  • Especificación de requisitos
  • Diseño de software
  • Implementación
  • Pruebas
  • Integración
  • Despliegue
  • Mantenimiento


Desarrollo mediante prototipos


Este es un enfoque del desarrollo de software que se basa en la creación de prototipos (software con funcionalidad parcial, incompleta). Se suele usar como parte de otros modelos de proceso más tradicionales.

Los principios básicos son:
  • Reducir los riesgos inherentes del proyecto estableciendo el desarrollo en fragmentos mas pequeños y logrando, en un entorno propenso a cambios, que estos tengan menor impacto.
  • El usuario involucrado durante el desarrollo (probando prototipos) incrementa la aceptación de la implementación del producto final.
  • Pequeños prototipos con modificaciones son mostrados al cliente y sirve para confirmar que se han comprendido sus requisitos.
  • Muchos de los prototipos se generan con la expectativa de ser descartados, sin embargo, en algunos casos el prototipo puede evolucionar y convertirse en el producto final.
  • Es necesario un entendimiento fundamental de los problemas del negocio para evitar resolver los problemas incorrectos, despilfarrando esfuerzo al desarrollar prototipos que son prescindibles.

Desarrollo en espiral

En 1988, se realiza la presentación formal del modelo en espiral por Barry Boehm que combina los aspectos claves del modelo en cascada y la rápida metodologia de prototipo en un esfuerzo por combinar las ventajas de ambos modelos. Hace énfasis en el área clave en la que han fallado otros modelos: no llevar un análisis de riesgo iterativo, especialmente adecuado para sistemas complejos a gran escala.

Los principios básicos son:
  • Se enfoca en la evaluación y minimización de los riesgos del proyecto al dividirlo en segmentos más pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo, así como proporcionar la oportunidad de evaluar los riesgos y ponderar las actividades de la continuación del proyecto durante todo el ciclo de vida.
  • Cada ciclo implica una progresión a través de la misma secuencia de pasos, para cada parte del producto y para cada uno de sus niveles de elaboración, desde un documento general de operación hasta el código de cada programa individual.
  • Cada vuelta del ciclo atraviesa 4 cuadrantes básicos:
  1. Cuadrante 1: Determinar objetivos, alternativas y restricciones de la iteración
  2. Cuadrante 2: Evaluar alternativas, identificar y resolver riesgos
  3. Cuadrante 3: Desarrollar y verificar entregables de la iteración
  4. Cuadrante 4: Planificación de la siguiente iteración
  • Cada ciclo comienza con la identificación de las condiciones de éxito por parte de los dueños del producto y concluyen con una revisión y compromiso.

Desarrollo ágil

Son métodos que ponen el énfasis en agilizar el desarrollo, cuidando más la interacción auto-organizada entre personas y la entrega de software funcionando que la elaboración de documentación o el seguimiento estricto de protocolos y procesos de actuación. Algunos métodos ágiles de desarrollo de software:
  • Adaptive Software Development (ASD)
  • Agile Unified Process (AUP)
  • Crystal Clear
  • Feature Driven Development (FDD)
  • Lean Software Development (LSD)
  • Kanban
  • Open Unified Process (OpenUP)
  • Programación Extrema (XP)
  • Método de desarrollo de sistemas dinámicos (DSDM)
  • Scrum


Conclusiones

El desarrollo de software es uno de los pilares fundamentales de la Informática y al cual se dedican muchas horas de esfuerzos en universidades, centros de investigación y empresas de todos los tamaños.

Conforme la tecnología va avanzando, van apareciendo nuevas soluciones, nuevas formas de programación, nuevos lenguajes, y un sin fin de herramientas que intentan realizar el trabajo del desarrollador un poco mas fácil. También surgen nuevos modelos de proceso de desarrollo y nuevas metodologías que tratan de adaptar la manera de trabajar a las necesidades concretas de una organización y de sus proyectos. Es importante conocer bien estos modelos, para tener un esquema mental que nos permita gestionar proyectos y organizar equipos de manera racional, cuando abordemos el desarrollo de software, especialmente en el caso de aplicaciones grandes y complejas.
(Carlos Quinto-2015)

Fuente: https://es.wikiversity.org/wiki/Procesos_de_desarrollo_software

Comentarios