Procesos de Software y Ciclos de Vida

Modelos

Cascada

Analisis y definición de requerimientos

Diseño del sistema y software

Implementacion y prueba de unidad

Integración y prueba de sistema

Operación y mantenimiento

Desarrollo Incremental

Beneficion con respecto a Cascada

Reduce el costo de adaptar los requerimientos constantes del cliente

Es mas sencillo obtener retroalimentación del cliente sobre el desarrollo que se realizo

Es posible que sea mas rapida la entrega e implementación de software útil al cliente

Ingeniería del Software Orientada a la Reutilización

Se divide en

Analisis de componentes

Modificacion de requerimientos

Diseño de sistema con reutilización

Desarrollo e integración

Modelo en espiral de Boehm

Sectores

Establecimiento de objetivos

Valoración y reducción del riesgo

Desarrollo y validación

Planeación

Proceso Unificado Racional

Perspectivas

Dinámica

Estática

Práctica

Fases

Concepción

Elaboración

Construcción

Transición

Mejores practicas fundamentales recomendadas

Desarrollo de software de manera iterativa

Gestión de requerimientos

Usar arquitecturas basadas en componentes

Software modelado visualmente

Verificar la calidad del software

Controlar los cambios al software

Como enfrentar el cambio

Enfoques para reducir costo

Evitar el cambio, donde el proceso de software incluye actividades que anticipan cambios posibles antes de requerirse la labor significativa de rehacer.

Tolerancia al cambio, donde el proceso se diseña de modo que los cambios se ajusten
con un costo relativamente bajo.

Formas de enfrentar el cambio

Prototipo de sistema, donde rápidamente se desarrolla una versión del sistema o una parte del mismo.

Entrega incremental, donde los incrementos del sistema se entregan al cliente para
su comentario y experimentación.

Creación del prototipo

Un prototipo de software se usa en un proceso de desarrollo de software para contribuir a anticipar los cambios que se requieran.

Los prototipos no tienen que ser ejecutables para ser útiles.

No se recomienda entregar prototipos desechables

Entrega Incremental

¿Qué es?

Es un enfoque al desarrollo de software donde algunos de los incrementos diseñados se entregan al cliente y se implementan para usarse en un entorno operacional.

Ventajas

Los clientes pueden usar los primeros incrementos como prototipos y adquirir experiencia que informe sobre sus requerimientos.

Los clientes deben esperar hasta la entrega completa del sistema, antes de ganar
valor del mismo.

Es sencillo incorporar cambios al sistema.

los servicios de sistema más importantes reciben mayores pruebas.

Desventajas

La mayoría de los sistemas requieren de una serie de recursos que se utilizan para
diferentes partes del sistema.

El desarrollo iterativo resulta complicado cuando se diseña un sistema de
reemplazo.

No hay especificación completa del sistema, sino hasta que se define el incremento
final.

Actividades

Especificación del software

Se divide en

Estudio de factibilidad

Obtención y análisis de requerimientos

Especificación de requerimientos

Validación de requerimientos

Diseño e implementacion del sotfware

Se divide en

Diseño arquitectónico

Diseño de interfaz

Diseño de componentes

Diseño de base de datos

Validación del software

Las etapas son

Prueba de desarrollo

Pruebas del sistema

Pruebas de aceptación