lunes, 6 de agosto de 2012

Ciclo de vida del software

Software

Es el conjunto conformado por los programas, la documentación y la configuración necesaria para que estos programas funcionen adecuadamente.


Ciclo de vida del software

Describe el desarrollo de software desde la fase inicial hasta la fase final, proponiendo etapas que sirven como referencia para realizar este proceso. Las fases que conforman el ciclo de vida son:
  • Preanálisis
  • Análisis
  • Diseño
  • Desarrollo
  • Pruebas
  • Implantación
  • Mantenimiento

El modelo en cascada

También llamado ciclo de vida clásico o tradicional, es el modelo más antiguo cuya propuesta de trabajo se fundamenta en un proceso ordenado y secuencial donde el producto de cada etapa, es el insumo para la etapa posterior. Las características principales de este modelo son:  


  • Se recomienda para el desarrollo de productos de gran tamaño cuyo tiempo de entrega sea largo.
  • No se requiere demasiada experiencia por parte del equipo de trabajo
  • El inicio de una etapa debe esperar la finalización de la etapa anterior
  • La documentación del proceso realizado, se produce en cada etapa
  • Se pueden presentar iteraciones entre las etapas del desarrollo, pero resultan costosas e implican repetir el trabajo.
  • Cuando se trata de nuevos desarrollos, los requisitos del producto deben estar bien definidos y ser estables.
  • Si se trata de una adaptación o una mejora de un producto existente, los requisitos deben entenderse de manera razonable.
  • Un error encontrado en la etapa de pruebas, conduce al rediseño del producto
  • Los primeros resultados se obtienen después de un tiempo considerable


El modelo en V

Se considera como una versión mejorada del modelo en cascada y por tanto, conserva las características de secuencialidad y organización. El modelo en V fundamenta su enfoque en la minimización de riesgos, la mejora de calidad, la reducción total de gastos y el perfeccionamiento de la comunicación entre los participantes del proyecto de desarrollo de software. Además, incorpora procesos de verificación y validación. Las características de este modelo son:


  •  Se recomienda para el desarrollo de productos pequeños con equipos de trabajo de hasta cinco integrantes.
  • Ideal para los analistas que no han programado siguiendo un modelo
  • El inicio de una etapa debe esperar la finalización de la etapa anterior
  • La documentación del proceso realizado, se produce en cada etapa
  • Contiene etapas de retroalimentación para facilitar correcciones
  • El modelo no contempla la posibilidad de retornar a etapas inmediatamente anteriores, situación que en la realidad puede ocurrir.
  • Las pruebas comienzan a efectuarse después de la implantación, esto puede conducir a un retroceso de todo un proceso que costó tiempo y dinero.

Prototipos
Este modelo también se ha llamado evolutivo, se fundamenta en el desarrollo de un producto inicial que se presenta al usuario para obtener su aprobación y se perfecciona, a través de diferentes versiones, hasta obtener el producto adecuado. El modelo por prototipo se caracteriza por:

  •  Es un modelo menos formal de desarrollo
  • Se recomienda para el desarrollo de productos pequeños o de tamaño medio
  • Útil cuando se desconocen los requerimientos del producto o son poco estables
  • Proporciona rapidez en el proceso de desarrollo
  • Conveniente en desarrollos que requieren probar arquitecturas y tecnologías
  • La posibilidad de establecer el número de iteraciones necesarias para obtener el producto definitivo, es mínima.
  • La documentación del proceso se realiza sobre la versión final del producto
  • A medida que avanza el proceso, incorporar cambios en los prototipos se convierte en una tarea difícil y costosa.
  • La técnica de los prototipos se puede implementar dentro de cualquier modelo de proceso.


Espiral

Se trata de una propuesta que combina las propiedades de los modelos cascada y prototipos. Se fundamenta en un proceso de desarrollo en el cual se hacen entregas del producto -cada una más evolucionada o completa que la anterior- teniendo en cuenta los riesgos que pueden afectar el proceso. Cada ciclo del espiral representa una etapa del ciclo de vida del software. Las características principales del modelo en espiral son:




  • Es un enfoque acertado para el desarrollo de software a gran escala
  • Cada iteración incluye definición de objetivos, evaluación y reducción de riesgos, desarrollo y validación y planificación.
  • Exige cuidado con el tratamiento de los riesgos que se presentan en el proceso
  • Requiere habilidad para evaluar el riesgo y resolverlo efectivamente
  • Si se pasa por alto un riesgo, surgirán dificultades en el proceso
  • El producto evoluciona conforme avanza el proceso de desarrollo


Desarrollo Rápido de Aplicaciones (DRA)

El modelo DRA es una versión que integra las características de los modelos cascada y prototipos, añadiendo velocidad de desarrollo. Propone la división del proyecto en módulos que son desarrollados por cada equipo de trabajo y luego se integran para configurar el producto definitivo.


  • Ofrece flexibilidad al proceso de desarrollo
  • Requiere el compromiso de los desarrolladores y los clientes
  • Los requisitos del producto deben ser comprendidos desde el inicio
  • Aquellos productos de software que se puedan dividir en módulos, cuyo tiempo de desarrollo no exceda los tres meses, pueden abordarse con este modelo.
  • Resalta el uso de componentes de software existente
  • Apoya la construcción del producto con la generación automática de código

Modelo incremental


Combina elementos del modelo tradicional aplicado en forma iterativa. Este modelo emplea secuencias lineales escalonadas que proporcionan incrementos del producto.

  • Requiere de la planeación del desarrollo del producto de acuerdo con las prioridades de funcionalidad establecidas por el cliente.
  • Requiere poco personal para el desarrollo de los incrementos iniciales, pero se puede vincular nuevo personal si los incrementos así lo exigen.
  • El primer incremento es un producto que incorpora las funcionalidades prioritarias completamente funcionales.
  • La evaluación del incremento, por parte del cliente, origina un plan para el desarrollo del incremento siguiente.
  • Cada incremento integra nuevas funcionalidades al producto
 
Modelo de proceso de software
 
Los seis modelos analizados anteriormente, son marcos de trabajo que guían el proceso de desarrollo de un producto software, es decir son modelos de proceso de software. Obsérvese que cada uno de ellos aplica un enfoque particular.
 
Ingeniería del software
 
Disciplina de la ingeniería que comprende todos los aspectos de la producción de software.

 

Fuentes
  • PRESSMAN, Roger. Ingeniería del software, un enfoque práctico. Sexta edición. Editorial McGrawHill.
  • SOMMERVILLE, Ian. Ingeniería del software. Editorial Pearson. 2005.
 
 

 
 


1 comentario:

  1. Te felicito, tienes un artículo sumamente completo al respecto del ciclo de vida del software, yo te invito a redondear tu tema con las metodologias del desarrollo de software que describimos en este artículo. Sin duda, te parecerá bastante interesante

    ResponderEliminar