El ciclo de vida del software (CVS) describe la vida de un producto de software desde su definición, diseño, implementación, verificación, validación, entrega, operación, y mantenimiento. Se definen las siguientes etapas:
- Definición: se hace un reconocimiento para conocer los clientes, sus motivos, y su contexto. Se hace un estudio de factibilidad para saber si realmente se puede realizar el Proyecto de Software. Luego, se hace un relevamiento de los requisitos (necesidades).
- Diseño: se hace el modelado lógico de la solución, evaluando alternativas de arquitecturas y tecnologías para elegir las mejores soluciones.
- Codificación: se escribe el código del software, lo que se denomina el modelo físico.
- Prueba: se realizan pruebas del software antes de entregarlo al usuario. Se establecen métricas y estándares que cumplir para asegurar calidad.
- Implementación: se pone en funcionamiento el sistema. Hay que realizar una cuidadosa conversión:
- En paralelo: se usa el sistema nuevo a la par del viejo, hasta cierta fecha límite.
- Cambio directo: se usa de golpe. Es radical pero peligroso.
- Estudio piloto: se prueba el sistema en una parte de la organización.
- Por fases: se va implementando el nuevo sistema de a partes (funcionalidades).
- Mantenimiento: consiste en extender la vida útil del sistema, manteniendo viable la solución. Hay varios tipos de mantenimiento:
- Correctivo: se arreglan errores no detectados previamente.
- Adaptativo: se adapta el sistema a un cambio del contexto. Relacionado a la Homeostasis.
- Perfectivo: todo va bien, y se van agregando nuevas funcionalidades.
- Preventivo: no es visible para el usuario, pero se realiza para facilitar el mantenimiento del SI y evitar el problema de la entropía. Le compete a la reingeniería del software.
Se subdivide el ciclo de vida en dos partes:
- Ciclo de desarrollo: desde el inicio hasta la entrega.
- Ciclo de vida útil: desde la implementación hasta que se deje de utilizar.