Ciclo de Vida (Conceptos)




“Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software”
IEEE/EIA 1074 Standard for Developing Software Life Cycle Proccess (2006)
El Ciclo de Vida del Software define las etapas o fases de un proyecto de desarrollo de software para transformar la información de los usuarios en un producto que satisfaga sus necesidades. El Ciclo de  Vida es representado en modelos, llamados "Modelos del Ciclo de Vida" o "Modelo de Procesos", los cuales ordenan, coordinan y realimentan las etapas y las actividades (las actividades de cada etapa).
“Un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso”
ISO/IEC 12207 Information Technology / Software Life Cycle Processes (2008)
Todo ciclo de vida debe definir las actividades a realizar en cada etapa y en qué orden, asegurar la consistencia con el resto de los sistemas de información de la organización y proporcionar puntos de control para la gestión del proyecto (calendario y presupuesto), esto es con qué técnicas puede determinar los recursos a utilizar o las personas implicadas en cada actividad entre otras características.
Las etapas o fases del ciclo de vida que contienen los modelos son:

  1. Análisis de Requisitos
  2. Diseño
  3. Codificación (Implementación)
  4. Pruebas (unitarias y de integración)
  5. Instalación y paso a producción
  6. Mantenimiento
Las etapas nombradas anteriormente pueden cambiar su nombre según la normativa seguida para el desarrollo del software, en donde sin embargo las actividades planteadas para el desarrollo de cada etapa se mantienen.

ISO/IEC 12207
IEEE/EIA 12207
IEEE/EIA 1074
1 Adquisición Adquisición Identificación o clasificación del Problema o modificación
2 Suministro Suministro Análisis
3 Desarrollo Desarrollo Diseño
4 Aceptación Operación Implementación
5 Explotación Mantenimiento Pruebas del Sistema
6 Mantenimiento Pruebas de Aceptación
7 Liberación de Versión

La ISO/IEC 12207 define los procesos nombrados (los Proceso Principales), ocho Procesos de Soporte y cuatro Procesos de la Organización fuera de un proceso para la adaptación del ciclo de vida a un proyecto en concreto.Ver gráfico de dependencias de Wikipedia.


La IEEE/EIA 12207 define los cinco procesos llamados Procesos Principales, ocho Procesos de Soporte y cuatro Procesos Organizacionales.

Modelos de Ciclo de Vida


Cascada y Derivados

El Modelo de Ciclo de Vida Clásico o Cascada propuesto por Winston Royce en 1970 se caracteriza por seguir de manera lineal las etapas de desarrollo del software aislando cada fase siguiente de la anterior. Los documentos son entregados a la entrada y salida de cada fase como resultado de una o varias revisiones, así, cada fase puede ser desarrollada por equipos diferentes.

Modelo de Ciclo de Vida Clásico


Este modelo es fácil de planificar, el resultado es de una muy buena calidad y permite trabajar con personal poco cualificadas, sin embargo, el definir todos los requerimientos desde el principio, el no tener el producto sino hasta la entrega, no volver fácilmente a la fase anterior y el no tener indicadores fiables del progreso hacen que sea favorable para sistemas que realizaran altas, bajas y actualizaciones sobre un conjunto de datos.

El Modelo de Ciclo de Vida en V basado en el de Cascada, le agregó una subetapa de retroalimentación entre el análisis y el mantenimiento y otra entre el diseño y el debugging. El ciclo de vida diseñado por Alan Davis facilita la corrección y por tal razón es muy aconsejable su uso para desarrollo de software simple pero donde se necesita una confiabilidad muy alta.

Modelo de Ciclo de Vida en V


EModelo de Ciclo de Vida Sashimi permite un solapamiento entre las fases disminuyendo la generación de la documentación, pero es mucho más dificil controlar el proyecto pues los puntos al final de cada fase no son referencia y si no existe una buena comunicación pueden surgir inconsistencias en el desarrollo.

Modelo de Ciclo de Vida Sashimi


El Modelo de Ciclo de Vida Cascada con Subproyectos divide el proyecto en subetapas para desarrollar en paralelo las diferentes etapas del modelo de ciclo de vida en Cascada. Suele usarse mucho cuando se cuenta con un plantel de programadores numerosos. Es útil por el numero de personas trabajando, pero puede detenerse el proyecto temporalmente por la dependencia entre las subetapas.

Modelo de Ciclo de Vida Cascada con Subproyectos


El Modelo de Ciclo de Vida Iterativo reduce el riesgo de malos entendidos en la etapa de requerimientos. Itera entre varios ciclos de vida en cascada y al final de cada iteración se entrega al cliente una versión del producto el cual evalúa y corrige o propone mejoras. Es ideal para realizar entregas rápidas sin que el proyecto este terminado, cuando los requerimientos no están claros.

Modelo de Ciclo de Vida Iterativo


El Modelo de Ciclo de Vida en Cascada Incremental o simplemente Incremental, resulta difícil de evaluar y de aplicar para sistemas que se van a integrar, además que requiere gestores experimentados y los errores son detectados tarde, sin embargo, involucra más al usuario en el desarrollo y evita proyectos largos entregando algo de valor (prototipos) con cierta frecuencia generando resultados muy positivos.

Modelo de Ciclo de Vida en Cascada Incremental


Prototipado y Derivados

Los Prototipos, derivados del Modelo de Ciclo de Vida por Prototipos, deben ser fáciles de construir y evaluar en la fase del desarrollo, ser baratos, desarrollarse en poco tiempo; es usado frecuentemente para desarrollar software cuando no se conoce exactamente el producto o las especificaciones, pues suaviza la transición entre los requerimientos iniciales y finales por esta misma razón resulta altamente costoso y dificil para la administración en el tiempo.

Modelo de Ciclo de Vida por Prototipos


Enunciado por James Martin, el Modelo de Ciclo de Vida Evolutivo, construye una implementación parcial que satisfaga los requisitos conocidos, para cual usa el usuario para comprender mejor la totalidad de requisitos que desea. Este modelo está fuertemente relacionado con RAD (Desarrollo rápido de Aplicaciones) y con técnicas de desarrollo que contemplen la reutilización; puede ser considerado la nueva versión de "Codificar y Arriglar".

Modelo de Ciclo de Vida Evolutivo



Diseñado por Boehm en el año 1988, el Modelo de Ciclo de Vida en Espiral, toma las bondades del modelo por prototipos e incremental pero dando más importancia al riesgo por incertidumbre e ignorancia de los requerimientos.

Modelo de Ciclo de Vida en Espiral


El modelo en espiral Plantea la Planificación (Requerimientos iniciales o luego de una iteración), el Análisis de Riesgo (Decide si continuar con el desarrollo), la Implementación (Desarrolla Prototipo), y la Evaluación (Por parte del Cliente), los cuales son actividades que envuelven a las etapas de desarrollo.

Orientado a Objetos

El Modelo de Ciclo de Vida Orientado a Objetos, plantea como objetos cada funcionalidad o requerimiento solicitado por el cliente, con sus propiedades o atributos y comportamientos o métodos. Abstrae los requerimientos del usuario favoreciendo la reducción de la complejidad del problema permitiendo el perfeccionamiento del producto. Por lo anterior este modelo es muy versátil y apropiado parapequeños y grandes proyectos.

Modelo de Ciclo de Vida Orientado a Objetos

Fuentes: Mundo Geek: Ciclos de Vida del Software, INTECO-Laboratorio Nacional de Calidad del Software: Ingnería del Software Metodologías y Ciclos de Vida, HananTek: Modelos del Ciclo e vida, Oposiciones TIC: El Ciclo de Vida de los Sistemas, Scribd: Subrayado ISO 12207, Wikipedia: ISO/IEC 12207, Wikipedia: IEEE/EIA 12207, Norma Técnica Peruana:Tecnología de la información Procesos del Ciclo de Vida, Calidad Software 15504:El modelo de Proceso ISO 12207:2008, Scribd: Planificación y Gestión de Sistemas de información. Estandar IEEE 1219 de Mantenimiento del Software, Ingeniería del Software: Modelos de Ciclo de Vida y niveles de Abstracción, Ingeniería de Software: Estándar IEEE 1074:1997, Red De Usuarios: Ciclo de Vida del Software, UNED: Guia para Análisis, Diseño y Mantenimiento del Software, Grupo ALARCOS: Ciclo de Vida del Software

Hender Orlando Puello Rincón - 0152916 Estudiante Ingeniería de Sistemas

No hay comentarios:

Publicar un comentario

Gracias Por comentar