Ciclo de vida de sistemas y modelos
Ciclo de vida. Evolución de un sistema, producto, servicio, proyecto u otra entidad realizada por el hombre desde su concepción hasta el retiro. Modelo de ciclo de vida. Marco de referencia de procesos y actividades relacionados al ciclo de vida que puede estar organizado en fases, el cual actúa como una referencia común para la comunicación y entendimiento.
Procesos del ciclo de vida del software. Marco de referencia que contiene procesos, actividades y tareas que serán aplicadas durante la adquisición de un producto de software o servicio y durante el abastecimiento, desarrollo, operación, mantenimiento y disposición de productos de software.
Estas son tres definiciones extraídas del estándar ISO/IEC 12207 son planteamientos generales, de manera específica se encuentran varios modelos que presentan las diferentes formas en las que es posible llevar a cabo la creación de un producto de software, también son conocidos como modelos de proceso de software. A continuación se presentan algunos de ellos.
Modelo de cascada. Contiene las actividades básicas que se pueden encontrar en la mayoría de los modelos y se encuentra dividido generalmente en fases: especificación de requerimientos, diseño de software, implementación, pruebas y mantenimiento.
Modelo basados en componentes. Su interés es en componentes reutilizables que ya existen y se enfoca principalmente a integrarlos y no tanto a un desarrollo completamente nuevo.
Modelo evolutivo. Son modelos que se adaptan a la evolución que sufren los requisitos del sistema en función del tiempo. Algunas actividades se entrelazan de manera que manera que se realice un desarrollo rápido que constantemente que se refina en varias versiones con las peticiones del cliente.
Modelos de métodos formales. Permiten especificar, desarrollar y verificar un sistema generando un modelo formal matemático.
Proceso unificado. Es considerado un modelo híbrido porque integra varios de los elementos de los procesos genéricos. Integra una perspectiva dinámica con las fases iterativas, una perspectiva estática con los workflows y una perspectiva práctica con las buenas prácticas.
Métodos ágiles. Son modelos enfocados a desarrollos iterativos e incrementales. Requieren de la participación constante del usuario durante el proceso de desarrollo. Eliminan cualquier sobrecarga de trabajo en el desarrollo con la finalidad de hacer desarrollos más rápidos.
Fuente: Apuntes de Ingeniería del Software de la FCA de la UNAM