fbpx
Wikipedia

Desarrollo en cascada

En Ingeniería de software el desarrollo en cascada, también llamado secuencial o ciclo de vida de un programa (denominado así por la posición de las fases en el desarrollo de esta, que parecen caer en cascada “por gravedad” hacia las siguientes fases), es el enfoque metodológico que ordena rigurosamente las etapas del proceso para el desarrollo de software, de tal forma que el inicio de cada etapa debe esperar a la finalización de la etapa anterior.[1]​ Al final de cada etapa, el modelo está diseñado para llevar a cabo una revisión final, que se encarga de determinar si el proyecto está listo para avanzar a la siguiente fase. Este modelo fue el primero en originarse y es la base de todos los demás modelos de ciclo de vida.

La versión original fue propuesta por Winston W. Royce en 1970 y posteriormente revisada por Barry Boehm en 1980 e Ian Sommerville en 1985.[2]

Un ejemplo de una metodología de desarrollo en cascada es:

  1. Análisis de requisitos.
  2. Diseño del sistema.
  3. Diseño del programa.
  4. Codificación.
  5. Pruebas.
  6. Despliegue del programa.
  7. Mantenimiento.

De esta forma, cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costos del desarrollo. La palabra cascada sugiere, mediante la metáfora de la fuerza de la gravedad, el esfuerzo necesario para introducir un cambio en las fases más avanzadas de un proyecto.

Si bien ha sido ampliamente criticado desde el ámbito académico y la industria, sigue siendo el paradigma más seguido al día de hoy.[3]

Fases del modelo

 
El "modelo cascada" sin modificar. El progreso fluye de arriba hacía abajo, como una cascada.

Análisis de requisitos del software

En esta fase se analizan las necesidades de los usuarios finales del software para determinar qué objetivos debe cubrir. De esta fase surge una memoria llamada SRD (documento de especificación de requisitos), que contiene la especificación completa de lo que debe hacer el sistema sin entrar en detalles internos.

Es importante señalar que en esta etapa se debe consensuar todo lo que se requiere del sistema y será aquello lo que seguirá en las siguientes etapas, no pudiéndose requerir nuevos resultados a mitad del proceso de elaboración del software.

Diseño del sistema

Descompone y organiza el sistema en elementos que puedan elaborarse por separado, aprovechando las ventajas del desarrollo en equipo. Como resultado surge el SDD (Descripción del diseño del software), que contiene la descripción de la estructura relacional global del sistema y la especificación de lo que debe hacer cada una de sus partes, así como la manera en que se combinan unas con otras.

Es conveniente distinguir entre diseño de alto nivel o arquitectónico y diseño detallado. El primero de ellos tiene como objetivo definir la estructura de la solución (una vez que la fase de análisis ha descrito el problema) identificando grandes módulos (conjuntos de funciones que van a estar asociadas) y sus relaciones. Con ello se define la arquitectura de la solución elegida. El segundo define los algoritmos empleados y la organización del código para comenzar la implementación.

Diseño del programa

Es la fase en donde se realizan los algoritmos necesarios para el cumplimiento de los requerimientos del usuario así como también los análisis necesarios para saber qué herramientas usar en la etapa de Codificación.

Codificación

Es la fase en donde se implementa el código fuente, haciendo uso de prototipos así como de pruebas y ensayos para corregir errores. Dependiendo del lenguaje de programación y su versión se crean las bibliotecas y componentes reutilizables dentro del mismo proyecto para hacer que la programación sea un proceso mucho más rápido.

Pruebas y error

Los elementos, ya programados, se ensamblan para componer el sistema y se comprueba que funciona correctamente. Se buscan sistemáticamente y se corrigen todos los errores antes de ser entregado al usuario final.

Despliegue del producto de software

Es la fase en donde el usuario final o el cliente ejecuta el sistema, y se asegura que cubra sus necesidades, por lo que se valida o verifica el sistema.

Mantenimiento

Una de las etapas más críticas, ya que se destina un 75 % de los recursos, es el mantenimiento del software ya que al utilizarlo como usuario final puede ser que no cumpla con todas nuestras expectativas.

Variantes

Existen variantes de este modelo; especialmente destacamos la que hace uso de prototipos y en la que se establece un ciclo antes de llegar a la fase de mantenimiento, verificando que el sistema final este libre de fallos. Otros ejemplos de variantes del modelo en cascada son el modelo en cascada con fases solapadas, cascada con subproyectos, y cascada con reducción de riesgos.[4]

Ventajas

  • Realiza un buen funcionamiento en equipos débiles y productos maduros, por lo que se requiere de menos capital y herramientas para hacerlo funcionar de manera óptima.
  • Es un modelo fácil de implementar y entender.
  • Está orientado a documentos.
  • Es un modelo conocido y utilizado con frecuencia.
  • Promueve una metodología de trabajo efectiva: Definir antes que diseñar, diseñar antes que codificar.[5]

Desventajas

  • En la vida real, un proyecto rara vez sigue una secuencia lineal, esto crea una mala implementación del modelo, lo cual hace que lo lleve al fracaso.
  • El proceso de creación del software tarda mucho tiempo ya que debe pasar por el proceso de prueba y hasta que el software no esté completo no se opera. Esto es la base para que funcione bien.
  • Cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costos del desarrollo.
  • Una etapa determinada del proyecto no se puede llevar a cabo a menos de que se haya culminado la etapa anterior.

Véase también

Referencias

  1. S. Pressman, Roger. Ingeniería del software: Un enfoque práctico, 3.ª Edición, Pag. 26-30.
  2. Cataldi, Z., Lage, F., Pessacq, R. y García Martínez, R. Ingeniería de software educativo. el 29 de diciembre de 2013 en Wayback Machine.
  3. «Fundamentos de Ingeniería de Software». 
  4. [1], Patricia Arieta Melgarejo, Modelos del ciclo de vida de software.
  5. [https://web.archive.org/web/20131203234610/http://sistemas.uniandes.edu.co/~isis2603/dokuwiki/lib/exe/fetch.php?media=principal:isis2603-modelosciclosdevida.pdf Archivado el 3 de diciembre de 2013 en Wayback Machine.] el 3 de diciembre de 2013 en Wayback Machine., Ruby Casallas, Andrés Yie, Ingeniería de software: Ciclos de Vida y Metodologías.

Enlaces externos

  • Modelos de desarrollo de software: Cascada vs V
  •   Datos: Q478175
  •   Multimedia: Waterfall models / Q478175

desarrollo, cascada, ingeniería, software, desarrollo, cascada, también, llamado, secuencial, ciclo, vida, programa, denominado, así, posición, fases, desarrollo, esta, parecen, caer, cascada, gravedad, hacia, siguientes, fases, enfoque, metodológico, ordena, . En Ingenieria de software el desarrollo en cascada tambien llamado secuencial o ciclo de vida de un programa denominado asi por la posicion de las fases en el desarrollo de esta que parecen caer en cascada por gravedad hacia las siguientes fases es el enfoque metodologico que ordena rigurosamente las etapas del proceso para el desarrollo de software de tal forma que el inicio de cada etapa debe esperar a la finalizacion de la etapa anterior 1 Al final de cada etapa el modelo esta disenado para llevar a cabo una revision final que se encarga de determinar si el proyecto esta listo para avanzar a la siguiente fase Este modelo fue el primero en originarse y es la base de todos los demas modelos de ciclo de vida La version original fue propuesta por Winston W Royce en 1970 y posteriormente revisada por Barry Boehm en 1980 e Ian Sommerville en 1985 2 Un ejemplo de una metodologia de desarrollo en cascada es Analisis de requisitos Diseno del sistema Diseno del programa Codificacion Pruebas Despliegue del programa Mantenimiento De esta forma cualquier error de diseno detectado en la etapa de prueba conduce necesariamente al rediseno y nueva programacion del codigo afectado aumentando los costos del desarrollo La palabra cascada sugiere mediante la metafora de la fuerza de la gravedad el esfuerzo necesario para introducir un cambio en las fases mas avanzadas de un proyecto Si bien ha sido ampliamente criticado desde el ambito academico y la industria sigue siendo el paradigma mas seguido al dia de hoy 3 Indice 1 Fases del modelo 1 1 Analisis de requisitos del software 1 2 Diseno del sistema 1 3 Diseno del programa 1 4 Codificacion 1 5 Pruebas y error 1 6 Despliegue del producto de software 1 7 Mantenimiento 2 Variantes 3 Ventajas 4 Desventajas 5 Vease tambien 6 Referencias 7 Enlaces externosFases del modelo Editar El modelo cascada sin modificar El progreso fluye de arriba hacia abajo como una cascada Analisis de requisitos del software Editar En esta fase se analizan las necesidades de los usuarios finales del software para determinar que objetivos debe cubrir De esta fase surge una memoria llamada SRD documento de especificacion de requisitos que contiene la especificacion completa de lo que debe hacer el sistema sin entrar en detalles internos Es importante senalar que en esta etapa se debe consensuar todo lo que se requiere del sistema y sera aquello lo que seguira en las siguientes etapas no pudiendose requerir nuevos resultados a mitad del proceso de elaboracion del software Diseno del sistema Editar Descompone y organiza el sistema en elementos que puedan elaborarse por separado aprovechando las ventajas del desarrollo en equipo Como resultado surge el SDD Descripcion del diseno del software que contiene la descripcion de la estructura relacional global del sistema y la especificacion de lo que debe hacer cada una de sus partes asi como la manera en que se combinan unas con otras Es conveniente distinguir entre diseno de alto nivel o arquitectonico y diseno detallado El primero de ellos tiene como objetivo definir la estructura de la solucion una vez que la fase de analisis ha descrito el problema identificando grandes modulos conjuntos de funciones que van a estar asociadas y sus relaciones Con ello se define la arquitectura de la solucion elegida El segundo define los algoritmos empleados y la organizacion del codigo para comenzar la implementacion Diseno del programa Editar Es la fase en donde se realizan los algoritmos necesarios para el cumplimiento de los requerimientos del usuario asi como tambien los analisis necesarios para saber que herramientas usar en la etapa de Codificacion Codificacion Editar Es la fase en donde se implementa el codigo fuente haciendo uso de prototipos asi como de pruebas y ensayos para corregir errores Dependiendo del lenguaje de programacion y su version se crean las bibliotecas y componentes reutilizables dentro del mismo proyecto para hacer que la programacion sea un proceso mucho mas rapido Pruebas y error Editar Los elementos ya programados se ensamblan para componer el sistema y se comprueba que funciona correctamente Se buscan sistematicamente y se corrigen todos los errores antes de ser entregado al usuario final Despliegue del producto de software Editar Es la fase en donde el usuario final o el cliente ejecuta el sistema y se asegura que cubra sus necesidades por lo que se valida o verifica el sistema Mantenimiento Editar Una de las etapas mas criticas ya que se destina un 75 de los recursos es el mantenimiento del software ya que al utilizarlo como usuario final puede ser que no cumpla con todas nuestras expectativas Variantes EditarExisten variantes de este modelo especialmente destacamos la que hace uso de prototipos y en la que se establece un ciclo antes de llegar a la fase de mantenimiento verificando que el sistema final este libre de fallos Otros ejemplos de variantes del modelo en cascada son el modelo en cascada con fases solapadas cascada con subproyectos y cascada con reduccion de riesgos 4 Ventajas EditarRealiza un buen funcionamiento en equipos debiles y productos maduros por lo que se requiere de menos capital y herramientas para hacerlo funcionar de manera optima Es un modelo facil de implementar y entender Esta orientado a documentos Es un modelo conocido y utilizado con frecuencia Promueve una metodologia de trabajo efectiva Definir antes que disenar disenar antes que codificar 5 Desventajas EditarEn la vida real un proyecto rara vez sigue una secuencia lineal esto crea una mala implementacion del modelo lo cual hace que lo lleve al fracaso El proceso de creacion del software tarda mucho tiempo ya que debe pasar por el proceso de prueba y hasta que el software no este completo no se opera Esto es la base para que funcione bien Cualquier error de diseno detectado en la etapa de prueba conduce necesariamente al rediseno y nueva programacion del codigo afectado aumentando los costos del desarrollo Una etapa determinada del proyecto no se puede llevar a cabo a menos de que se haya culminado la etapa anterior Vease tambien EditarIngenieria de software Scrum desarrollo de software Desarrollo en espiral Metodo en VReferencias Editar S Pressman Roger Ingenieria del software Un enfoque practico 3 ª Edicion Pag 26 30 Cataldi Z Lage F Pessacq R y Garcia Martinez R Ingenieria desoftwareeducativo Archivado el 29 de diciembre de 2013 en Wayback Machine Fundamentos de Ingenieria de Software 1 Patricia Arieta Melgarejo Modelos del ciclo de vida de software https web archive org web 20131203234610 http sistemas uniandes edu co isis2603 dokuwiki lib exe fetch php media principal isis2603 modelosciclosdevida pdf Archivado el 3 de diciembre de 2013 en Wayback Machine Archivado el 3 de diciembre de 2013 en Wayback Machine Ruby Casallas Andres Yie Ingenieria de software Ciclos de Vida y Metodologias Enlaces externos EditarModelos de desarrollo de software Cascada vs V Ciclo de vida del software Datos Q478175 Multimedia Waterfall models Q478175 Obtenido de https es wikipedia org w index php title Desarrollo en cascada amp oldid 140942052, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos