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