Ciclo de vida del software

 

Estos programas se originan en el hecho de que es muy costoso rectificar los errores que se detectan tarde dentro de la fase de implementación. El ciclo de vida permite que los errores se detecten lo antes posible y por lo tanto, permite a los desarrolladores concentrarse en la calidad del software. 
El ciclo de vida básico de un software consta de los siguientes 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).
 
técnicas y metodologías.
técnica: es un método que aplica herramientas y reglas  que incluye: 
reglas, procedimientos, métodos, herramientas 
funciones individuales y en grupo por cada tarea 
productos resultantes 
normas de calidad. 
 
herramientas:  son los ambientes de apoyo necesario para automatizar las prácticas de ingeniería de software 
métodos: son las maneras que se efectúan las tareas de ingeniería de software o las actividades del ciclo de vida. 
procedimientos : son los mecanismos de gestión que soportan a los métodos: el control de los proyectos, el control de la calidad. 
objetivos del ciclo de vida de un proyecto.
definir las actividades a ser ejecutadas en un proyecto de procesamiento electrónico de datos (ped).
 

Modelos de ciclo de vida.

 

 

Ciclo de vida en V
 
Propuesto por Alan Davis, tiene las mismas fases que el anterior pero se considera el nivel de abstracción de cada una. Una fase además de utilizarse como entrada para la siguiente, sirve para validar o verificar otras fases posteriores.
 
Ciclo de vida tipo sashimi
 En este caso, se permite un solapamiento entre fases. Por ejemplo, sin tener terminado del todo el diseño se comienza a implementar. Una ventaja de este modelo es que no necesita generar tanta documentación como el ciclo de vida en cascada puro debido a la continuidad del mismo personal entre fases.
 
Ciclo de vida en cascada con subproyectos
 
Si una vez que se ha llegado al diseño arquitectónico, se comprueba que el sistema se divide en varios subsistemas independientes entre sí, y en consecuencia en paralelo con los demás. La ventaja es que se puede tener a más gente trabajando en paralelo de forma eficiente.
 
Ciclo de vida en cascada incremental
 
En este caso se va creando el sistema añadiendo pequeñas funcionalidades. La ventaja de este método es que no es necesario tener todos los requisitos en un principio. 
 
 
Ciclo de vida en cascada con reducción de riesgos
 
Uno de los problemas del ciclo de vida en cascada es que si se entienden mal los requisitos esto sólo se descubrirá cuando se entregue el producto. Para evitar este problema se puede hacer un desarrollo iterativo durante las fases de análisis y diseño global. Esto consistiría en:
 
    Preguntar al usuario.
    Hacer el diseño global que se desprende del punto 1.
    Hacer un prototipo de interfaz de usuario, entrevistas con los usuarios, etc y volver con ello al punto 1 para identificar más requisitos o corregir malentendidos.
 
El resto es igual al ciclo de vida en cascada. 
 
Modelo de ciclo de vida en espiral
 
Propuesto por Boehm en 1988. Consiste en una serie de ciclos que se repiten. Cada uno tiene las mismas fases y cuando termina da un producto ampliado con respecto al ciclo anterior.
 
 
Ciclos de vida orientados a objetos
 
Los tipos de ciclos de vida que se han visto hasta ahora son relativos al análisis y diseño estructurados,  y es que están basados en componentes que se relacionan entre ellos a través de interfaces, o lo que  el ciclo de vida típico en una metodología de diseño orientado a objetos es iterativo e incremental.
 
Modelo fuente
 
Fue creado por Henderson-Sellers y Edwards en 1990. Es un tipo de ciclo de vida pensado para la orientación a objetos y posiblemente el más seguido. Un proyecto se divide en las fases:
 
    Construcción: Es la más importante y se divide a su vez en otras cinco actividades
 
        Planificación
        Investigación
        Especificación
        Implementación
        Revisión
    Entrega
 
 Además de las tres fases, existen dos periodos:
 
    Crecimiento: Es el tiempo durante el cual se construye el sistema
    Madurez: Es el periodo de mantenimiento del producto..