Escolar Documentos
Profissional Documentos
Cultura Documentos
DESARROLLO EN ESPIRAL
Características
- Es un modelo de ciclo de vida del software definido por primera vez por Barry Boehm en 1988.
- Se utiliza generalmente en la Ingeniería de software.
- Espiral significa un bucle, en la que cada bucle o iteración representa un conjunto de
actividades.
- Las actividades no están fijadas a priori, sino que las siguientes se eligen en función del análisis
de riesgo, comenzando por el bucle interior.
- Es el enfoque más realista para el desarrollo de software y de sistemas a gran escala.
- Utiliza un enfoque evolutivo para la ingeniería de software, permitiendo al desarrollador y al
cliente entender y reaccionar a los riesgos en cada nivel evolutivo.
- Utiliza la creación de prototipos como un mecanismo de reducción de riesgo, pero, lo que es
más importante permite a quien lo desarrolla aplicar el enfoque de creación de prototipos en
cualquier etapa de la evolución de prototipos.
Fases identificadas
- Determinar objetivos: Planificar por una sola vez, definir los productos a obtener, fijar las
restricciones, identificar riesgos.
- Análisis de riesgo: de alternativas, resolución de riesgos
- Desarrollar, verificar y validar: según las respuestas del análisis.
- Planificar: revisando todo lo que fue desarrollado, realizar una evaluación y planificar la
siguiente actividad.
Ventajas
- El análisis del riesgo se hace de forma explícita y clara. Une los mejores elementos de los
restantes modelos.
- Reduce riesgos del proyecto
- Incorpora objetivos de calidad
- Integra el desarrollo con el mantenimiento, etc.
- Además es posible tener en cuenta mejoras y nuevos requerimientos sin romper con la
metodología, ya que este ciclo de vida no es rígido ni estático.
Desventajas
- Genera mucho tiempo en el desarrollo del sistema
- Modelo costoso
- Requiere experiencia en la identificación de riesgos
DESARROLLO EN CASCADA
Características
- Ordena rigurosamente las etapas del ciclo de vida del software, de tal forma que el inicio de
cada etapa debe esperar a la finalización de la inmediatamente anterior.
- En el desarrollo en cascada utiliza las fases de: análisis de requisitos, diseño del Sistema,
diseño del Programa, codificación, pruebas, implantación, mantenimiento.
- Al detectar un error en cada fase o etapa conduce necesariamente al rediseño y nueva
programación del código afectado.
Fases identificadas
- Análisis de requisitos: se analizan las necesidades de los usuarios finales para determinar los
objetivos a cubrir.
- Diseño del Sistema: Se organiza el sistema en elementos o módulos, lo cual permite el
desarrollo en equipo. Se debe realizar el diseño arquitectónico y detallado.
- Diseño del Programa: donde se desarrolla los algoritmos necesarios para cubrir las
necesidades de los usuarios.
- Codificación: Implementación del código fuentes, donde se realiza el prototipo del sistema,
pruebas y ensayos.
- Pruebas: una vez que los elementos ya estén programados, se ensamblan para componer el
sistema y se comprueba que funcione correctamente y que cumpla con los requisitos, antes de
ser entregado al usuario final.
- Implantación: en donde el usuario final ejecuta el sistema, esto debe estar previamente
realizado exhaustivas pruebas para comprobar que el sistema no falle
- Mantenimiento: se estima que corresponde a 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.
Ventajas
- Se tiene todo bien organizado y no se mezclan las fases.
- Es perfecto para proyectos que son rígidos.
- Ideal para proyectos donde se especifiquen muy bien los requerimientos.
- Ideal para proyectos en que se conozca muy bien la herramienta a utilizar.
- Sumamente sencillo ya que sigue los pasos intuitivos necesarios a la hora de desarrollar el
Software.
Desventajas
- Difícilmente un cliente va a establecer al principio todos los requerimientos necesarios, por lo
que provoca un gran atraso trabajando en este modelo, ya que este es muy restrictivo y no
permite movilizarse entre fases.
- Los resultados y/o mejoras no son visibles, el producto se ve recién cuando este esté
finalizado.
- 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.
- Cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al
rediseño y nueva programación del código afectado
- Aumenta los costos del desarrollo.