Procesos de desarrollo del Software y ciclos de vida del mismo.
Modelos de proceso de software
Modelo en cascada
Primer modelo publicado sobre el proceso de desarrollo de software.
Dividido en etapas de desarrollo en serie, es decir que no se puede continuar a la siguiente sin terminar la anterior.
Modelo muy rígido por lo que solo debe usarse cuando los requerimientos estén bien definidos y sea improbable el cambio.
Desarrollo Incremental
Se basa en diseñar una implementación inicial, e ir trabajando de mano con el usuario para producir un sistema adecuado.
Tiene 2 problemas:
1. El proceso no es visible, es necesario de entregas regulares para medir el avance
2. La estructura del sistema tiende a degradarse
Ingeniera de software orientada a la reutilización
Tiene 4 etapas intermedias especiales:
1. Análisis de componentes: Se realiza la búsqueda de componentes para la especificación.
2. Modificación de requerimientos: Se analizan los requerimientos y se modifican para reflejar los componentes.
3. Diseño de sistema con reutilización: Se diseña el marco conceptual del sistema.
4. Desarrollo e integración: Se integran los componentes para crear el nuevo sistema.
Un modelo de proceso de software es una representación simplificada del proceso de desarrollo del mismo.
El Proceso Unificado Racional (RUP)
Modelo de proceso moderno que se derivo del trabajo sobre el UML. Es un modelo de fases que identifica cuatro fases discreteas en el proceso.
1. Concepción: La meta de la fase es establecer un caso empresaria para el sistema.
2.Elaboracion: Consiste en desarrollar la comprensión del problema de dominio y establecer un marco arquitectónico para el sistema.
3. Construcción: La fase de construcción incluye diseño, programación y pruebas del sistemas.
4. Transición: La fase final del RUP, se interesa por el cambio del sistema desde la comunidad de desarrollo hacia la comunidad de usuarios.
Un proceso es una serie de actividades relacionadas que conduce a la elaboracion de un producto de software
Actividades del proceso
Especificación del software
Son actividades técnicas con la meta de especificar, diseñar, implementar y probar un sistema de software
Diseño e implementación del software
Corresponde el proceso de convertir una especificación del sistema, en un sistema ejecutable
Validación de software
Se crea para mostrar que un sistema cumpla tanto con sus especificaciones como con las expectativas del cliente.
Se divide en 3 fases de prueba:
1. Prueba de desarrollo: Los desarrolladores ponen a prueba los componentes del sistema.
2. Pruebas del sistema: Los componentes del sistemas se integran para formar un sistema completo, así se descubren problemas relaciones con interacciones no deseadas entre componentes
3. Pruebas de aceptación: Etapa final del proceso de pruebas antes de que el sistema se acepte para uso operacional.
Evolución del software
Se basa en la idea de la flexibilidad de los sistemas de software, y en su capacidad para adaptarlos e incorporarlos a otros sistemas.
Como enfrentar el cambio.
Existen 2 enfoques para enfrentarnos al cambio:
1. Evitar el cambio, donde se busca anticipar los cambios posibles antes del desarrollo.
2. Tolerancia al cambio, donde el proceso se diseña de modo que los cambios sean factibles y de bajo costo.
Se estudian 2 formas de enfrentar el cambio:
1. Prototipo del sistema:
Se desarrolla rápidamente una versión del sistema o una parte del mismo, para comprobar los requerimientos del cliente y la factibilidad de algunas decisiones de diseño.
2. Entrega incremental:
Los incrementos del sistema se entregan al cliente para su comentario y experimentación, esto apoya tanto al hecho de evitar como tolerar el cambio.
Modelo en espiral de Boehm para enfrentar el cambio:
El proceso de software se representa como una espiral, y no como una secuencia de actividades con cierto retroceso. Este modelo combina evitar el cambio con tolerancia al cambio