PROCESOS DE SOFTWARE
ACTIVIDADES DE UN PROCESO
Especificación del Software
Estudio de factibilidad
Obtención y Análisis de Requerimientos
Especificación de Requerimientos
Validación de Requerimientos
Diseño e Implementación del Software
Diseño Arquitectónico
Diseño de Interfaz
Diseño de Componentes
Diseño de Base de Datos
Validación del Software
Prueba de desarrollo
Pruebas del Sistema
Pruebas de Aceptación
Evolución del Software
Mantenimiento de Software
DESCRIPCIONES DE LOS PROCESOS
Productos
Roles
Precondiciones y Postcondiciones
CLASIFICACIÓN
Dirigidos por un plan
Procesos Ágiles
ENFRENTAR EL CAMBIO
ENFOQUES
Evitar el cambio
Prototipo del Sistema
Etapas
Establecer objetivos
Definir la funcionalidad
Desarrollo
Evaluación
Tolerancia al cambio
Entrega Incremental
Etapas
Asignación de requerimeintos
Diseño de Arquitectura
Desarrollo de incremento
Validar incremento
Integrar incremento
Validar sistema
Implementar incremento
RUP
Perspectivas
Dinámica
Estática
Práctica
Fases
Concepción
Identificar entidades externas que interactuarán con el sistema y definirán interacciones
Elaboración
Desarrollar la comprensión del problema de dominio
Establecer un marco conceptual arquitectónico para el sistema
Identificar los riesgos clave del proyecto
Diseñar el plan del proyecto
Construcción
Diseño, programación y pruebas del sistema
Transición
Cambio del sistema hacia la comunidad de usuarios y que funcione en un ambiente real
Buenas Prácticas
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
MODELOS
CASCADA
Etapas
Análisis y Definición de Requerimientos
Diseño del Sistema y del Software
Implementación y Prueba de Unidad
Integración y Prueba de Sistema
Operación y Mantenimiento
INCREMENTAL
Fundamental en Enfoques Ágiles
Etapas
Desarrollo
Validación
Especificación
Beneficios
Reduce costo de adaptar requerimientos cambiantes del cliente
Retroalimentación del cliente
Mas rápida entrega e implementación de software útil
Problemas
Proceso no es visible
Estructura se degrada en cada incremento
REUTILIZACIÓN
Etapas
Análisis de Componentes
Modificación de Requerimientos
Diseño de Sistema con Reutilización
Desarrollo e Integración
Componentes de Software
Servicios Web
Colecciones de Objetos
Sistemas de Software Independientes
Ventajas
Reducir cantidad de software a desarrollar
Disminuir costos y riesgos
Entregas más rápidas
Desventajas
Compromisos de requerimientos
Sistema no cubre necesidades reales de clientes
Se pierde control sobre la evolución del sistema
Entrelazadas
Modelo en Espiral de Bohem
Sectores de cada ciclo:
Establecimiento de Objetivos
Valoración y Reducción del Riesgo
Desarrollo y Validación
Planeación