Professional Documents
Culture Documents
Ingeniería de Software
Marzo – 2018
Modelo de cascada
El modelo de cascada fue el primero proceso de desarrollo de software derivado
de otros procesos de la ingeniería hecho por Winston W. Royce. Varios autores
tienen varias variantes de este modelo de proceso pero el que más me gusto fue
este:
Definición de
requerimientos
Diseño de
sistemas y de
software
Implementación y
pruebas de unidades
Integración y Pruebas
del sistema
Operación y
Mantenimiento
Este modelo de proceso establece que una vez que se deja atrás una etapa no se
regresa a ella más. Así que hay que dejar las listas en el menor tiempo posibles,
eso incluye usar el menor número de iteraciones ya que eso provoca perdida de
dinero y de tiempo. Esto puede provocar problemas suelen solucionarse con trucos
de implementación.
Este modelo cuenta con unos defectos que en los más notables es su pobre
flexibilidad y que se tienen que tener muy claros los requerimientos del usuario.
VENTAJAS
• Las planificaciones sencillas.
• La calidad del producto resultante es alta.
• Permite trabajar con personal poco cualificado.
DESVENTAJAS
• No refleja realmente el proceso de desarrollo del software
• Se tarda mucho tiempo en pasar por todo el ciclo
• Perpetúa el fracaso en su comunicación con el usuario final
• El mantenimiento se realiza en el código fuente
Modelo en el Espiral
El modelo espiral es muy distinto al modelo de cascada, principalmente porque su
enfoque va dirigido hacia el análisis de riesgos. El modelo de ciclo de vida en espiral,
consiste en realizar diversas iteraciones, pasando por cada una de sus fases una y
otra vez. A diferencia del modelo cascada que no tiene vuelta atrás, en el modelo
en espiral se pueden hacer las iteraciones que se consideren necesarias y estas
son sus fases principales:
Determinación de Objetivos
Análisis de riesgos
Desarrollo y Pruebas
Planificación
Entre las principales ventajas de desarrollar un proyecto con el modelo espiral, es
que los riesgos se van disminuyendo conforme avanzan los ciclos, de hecho no
puedes avanzar a un ciclo nuevo, si no se ha dado solución a todos los riesgos
latentes. Lamentablemente el modelo es realmente costoso y para que puedas tener
un alto nivel de eficacia en la evaluación final de tu proyecto con este ciclo de vida,
necesitas que tu equipo tenga un gran nivel de conocimientos y si es posible buena
experiencia para superar cualquier riesgo al cual se puedan enfrentar.
VENTAJAS
• No necesita una definición completa de los requisitos para empezar a funcionar.
• Al entregar productos desde el final de la primera iteraciones más fácil validar los
requisitos.
• El riesgo en general es menor, porque si todo se hace mal, solo se ha perdido el
tiempo y recursos.
• El riesgo de sufrir retrasos es menor, ya que al identificar los problemas en
etapas tempranas hay tiempo de subsanarlos.
DESVENTAJAS
• Es difícil evaluar los riesgos.
• Necesita de la participación continua por parte del cliente.
• Cuando se subcontrata hay que producir previamente una especificación
completa de lo que se necesita, y esto lleva tiempo.
Modelo Incremental
El modelo incremental combina elementos del modelo en cascada con la filosofía
interactiva de construcción de prototipos. Se basa en la filosofía de construir
incrementando las funcionalidades del programa. Este modelo aplica secuencias
lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada
secuencia lineal produce un incremento del software.
Cuando se utiliza un modelo incremental, el primer incremento es a menudo un
producto esencial, sólo con los requisitos básicos. Este modelo se centra en la
entrega de un producto operativo con cada incremento. Los primeros incrementos
son versiones incompletas del producto final, pero proporcionan al usuario la
funcionalidad que precisa y también una plataforma para la evaluación.
VENTAJAS
Este modelo se genera software operativo de forma rápida y en etapas
tempranas del ciclo de vida del software.
Es un modelo más flexible, por lo que se reduce el coste en el cambio de
alcance y requisitos.
Es más fácil probar y depurar en una iteración más pequeña.
Es más fácil gestionar riesgos.
Cada iteración es un hito gestionado fácilmente
DESVENTAJAS
Se requiere una experiencia importante para definir los incrementos y
distribuir en ellos las tareas de forma proporcionada.
Cada fase de una iteración es rígida y no se superponen con otras.
Pueden surgir problemas referidos a la arquitectura del sistema porque no
todos los requisitos se han reunido, ya que se supone que todos ellos se han
definido al inicio