Ciclo de vida del software

Ciclo de vida del software

Es el proceso que se sigue para construir, entregar y hacer evolucionar el software, desde la concepción de una idea hasta la entrega y retiro del sistema. Se definen las distintas fases intermedias que se requieren para validar el desarrollo de un software, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo, se asegura de que los métodos utilizados son apropiados.                                        


Procesos del ciclo de vida del software
Procesos principales:

*  Adquisición
*  Suministro
*  Explotación
*  Mantenimiento
Procesos de soporte:
* Documentación
* Gestión de configuración
* Aseguramiento de calidad
*  Verificación
Validación
* Revisión conjunta
*  Auditoria
*Resolución de problemas

Procesos de organización:
*Gestión
*Mejora
*Infraestructura
* Formación
Proceso adquisición
*  Análisis de requisitos del sistema
*  Diseño de la arquitectura del sistema
*  Análisis de los requisitos del software
*  Diseño de la arquitectura del software
*  Diseño detallado del software
*  Codificación y prueba del software
Proceso suministro
*  Integración del software
*  Prueba del software
*  Integración del sistema
*  Prueba del sistema
*  Instalación del software
*  Soporte del proceso de aceptación del software
Procedimientos
* Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.
* Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
* Diseño general: requisitos generales de la arquitectura de la aplicación.
*  Diseño en detalle: definición precisa de cada subconjunto de la aplicación.
* Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.
*  Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.
* Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada.
* Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales.
* Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros.
*  Implementación
* Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).
Reutilización en el ciclo de vida
Principios de la reutilización
*  Existen similitudes entre distintos sistemas de un mismo dominio de aplicación
*  El software puede representarse como una combinación de módulos
* Diseñar aplicaciones = especificar módulos + interrelaciones
* Los sistemas nuevos se pueden caracterizar por diferencias respecto a los antiguos
Ventajas y desventajas:
*  Reduce tiempos y costes de desarrollo
*  Aumenta la fiabilidad
*  Dificultad para reconocer los componentes potencialmente reutilizables
*  Dificultad de catalogación y recuperación
*  Problemas de motivación
*  Problemas de gestión de configuración
Tipos de ciclos de vida del software
.-Ciclo de vida lineal
Es el más sencillo de todos los modelos. Consiste en descomponer la actividad global del proyecto en etapas separadas que son realizadas de manera lineal, es decir, cada etapa se realiza una sola vez, a continuación de la etapa anterior y antes de la etapa siguiente.
Con un ciclo de vida lineal es muy fácil dividir las tareas, y prever los tiempos (sumando linealmente los de cada etapa).Las actividades de cada una de las etapas mencionadas deben ser independientes entre sí, es decir, que es condición primordial que no haya retroalimentación entre ellas, aun que sí pueden admitirse ciertos supuestos de realimentación correctiva.
Desde el punto de vista de la gestión, requiere también que se conozca desde el primer momento, con excesiva rigidez, lo que va a ocurrir en cada una de las distintas etapas antes de comenzarla. Esto último minimiza, también, las posibilidades de errores durante la codificación y reduce al mínimo la necesidad de requerir información del cliente o del usuario.
.-Ciclo de vida en cascada

Este modelo de ciclo de vida fue propuesto por Winston Royce en el año 1970. Es un ciclo de vida que admite itneraciones, contrariamente a la creencia de que es un ciclo de vida secuencial como el lineal. Después de cada etapa se realiza una o varias revisiones para comprobar si se puede pasar a la siguiente. Es un modelo rígido, poco flexible, y con muchas restricciones. Aunque fue uno de los primeros, y sirvió de base para el resto de los modelos de ciclo de vida.
                          
.-Ciclo de vida en V

Este ciclo fue diseñado por Alan Davis, y contiene las mismas etapas que el ciclo de vida en cascada puro. A diferencia de aquél, a éste se le agregaron dos sub-etapas de retroalimentación entre las etapas de análisis y mantenimiento, y entre las de diseño y debugging.

                                   

No hay comentarios:

Publicar un comentario