Ciclo de vida del software

ciclo de vida del software

El ciclo de vida del software o ciclo de vida del desarrollo del software, es un proceso sistemático utilizado por los equipos de desarrollo para elaborar software a través de etapas controladas. Con estos métodos, es posible verificar la funcionalidad del producto y corregir posibles errores que existan dentro de su código antes de que este sea lanzado de forma oficial.

Esta metodología también comprende el estudio preliminar que da pie a la creación de un software, ya que a través de esto, es posible establecer el método más apropiado para desarrollar el producto y con ello, minimizar los gastos relacionados con la rectificación de errores en el software durante etapas avanzadas del desarrollo. Gracias a esto, es posible lograr de manera efectiva el objetivo de creación de un programa informático a cualquier escala.

Internacionalmente, las etapas de selección, monitoreo e implementación del ciclo de vida de un software se basa en la norma ISO 12207-1, la cual señala los factores a tener en cuenta durante el proceso de desarrollo, recomendaciones y metodología adecuada para implementar la norma. Cabe destacar que estos métodos son empleados dentro de industrias de gran importancia como los campos de la ingeniería, alimentación, salud y defensa militar.

Fases

desarrollo_fases

El ciclo de vida del software se basa esencialmente en tres fases o actividades de desarrollo. A continuación se detalla cuáles son.

Fase de planificación y análisis

La fase inicial del ciclo de vida de un software se basa en la planificación, un proceso que considera el análisis de los requisitos exigidos por el cliente del producto. Además, durante esta etapa también se determinan los parámetros relacionados con las funciones que deberá cumplir el software que está por ser desarrollado.

A partir de esta información, el equipo de desarrollo puede tener una visión clara de qué es lo que se desea lograr por medio del uso del software solicitado y cuál debe ser su funcionalidad bajo todas las condiciones establecidas por el cliente. Debido a la importancia del análisis preliminar que se lleva a cabo en esta primera fase, se considera que la etapa de planificación y análisis es la más importante de todas.

Fase de implementación, pruebas y documentación

La segunda fase se basa en tres etapas que buscan un solo fin; desarrollar el software. En este sentido, las etapas de implementación, pruebas y documentación se basan en lo siguiente:

  • Implementación: Se trata del proceso de programación del código del software por parte de los desarrolladores e ingenieros de software a partir de la información obtenida en base a la fase de planificación y análisis.
  • Pruebas: No es más que el testeo de todos los elementos del software programado con el fin de detectar errores y corregirlos de forma oportuna antes de avanzar a las siguientes etapas de desarrollo.
  • Documentación: Consiste en registrar y documentar el diseño del software con el fin de generar un material bibliográfico que sirva para realizar mantenimiento o futuras mejoras al proyecto durante etapas posteriores del desarrollo.

Fase de despliegue y mantenimiento

Corresponde a las etapas de control que se llevan a cabo sobre el producto una vez que éste se encuentra en distribución. Durante esta fase se realiza la instalación del software, así como la personalización y diferentes pruebas que pueden ser monitoreadas por el personal técnico responsable del software. En este sentido, el despliegue hace referencia a la distribución del producto y la capacitación de los usuarios para hacer uso del mismo. En cuanto al mantenimiento,  se refiere al mejoramiento o modificación del código del programa con el fin de eliminar posibles problemas que no hayan sido detectados durante la fase de pruebas.

Modelos

Existen diferentes modelos empleados para desarrollar el ciclo de vida de un software, estos permiten que las compañías desarrolladora sigan un protocolo aprobado y lógico para de creación de un programa.

Modelo en cascada

Se trata de un modelo tradicional que empezó a utilizarse durante el año 1966. El modelo en cascada se basa en una serie de etapas secuenciales que establecen un orden lógico para llevar a cabo las etapas de desarrollo de un software. Así, según el modelo en Cascada, se sigue el siguiente orden:

  1. Recolección de requisitos.
  2. Diseño del software.
  3. Construcción o Implementación del software.
  4. Integración.
  5. Pruebas (o validación).
  6. Despliegue (o instalación).
  7. Mantenimiento.

Modelo de espiral

Modelo_Espiralpng

Es un modelo evolutivo que se centra en el análisis de riesgo durante ciertas etapas de desarrollo, y así determinar el curso de desarrollo a seguir. Este sigue un proceso iterativo (de repeticiones), a través de las etapas de análisis de riesgo, desarrollo y pruebas, planificación y determinación de objetivos. Generalmente (con respecto al esquema) se avanza en un sentido 'horario', desde el centro del espiral; aunque no siempre se sigue un orden específico.

Generalmente se inicia por el análisis de riegos, allí se tienen en cuenta las limitaciones y contratiempos que podría tener u ocasionar el producto. Definido esto, se pasa los demás 'cuadrantes', en donde se establece una planificación conforme a los objetivos trazados.

Desarrollo ágil

Este modelo de desarrollo es uno interactivo, en donde se ponen a prueba versiones incompletas del software con la intención de recibir respuestas retroalimentativas de este procedimiento, focalizándose en las primeras experiencias del contacto con el programa. Estas pruebas se llevan a cabo de forma periódica, y el proceso se considera finalizado una vez superados todos los errores y contratiempos que pueda generar el producto.

Modelo V

desarrollo_de_software_modelo_v

El modelo V lleva ese nombre por la forma en la que se esquematizan las etapas del ciclo de vida del software. Sigue las mismas etapas del modelo cascada, no obstante, añade dos etapas que conllevan al feedback entre etapas con el fin de detectar errores y establecer planes de mantenimiento.

Desarrollo iterativo y creciente

Consiste en un proceso de crecimiento gradual, donde un software es desarrollado a partir de un bloque inicial. Cada vez que un bloque es terminado, se pone a prueba para detectar posibles errores. Luego este crece para obtener más funciones, hasta llegar al programa completo. Con esto se busca tener un mejor control en cada punto del desarrollo del producto.

Roles en un equipo de desarrollo de software

roles_equipo_de_desarrollo

Debido a las numerosas etapas y metodologías aplicadas durante el ciclo de vida de un software, es necesario contar con personal capacitado para desenvolver diferentes roles dentro del equipo de desarrollo o empresa de software. A continuación se señalan cuáles son los roles en un equipo de desarrollo:

Gerente de proyecto

Se trata de la persona responsable de gerenciar el proyecto de desarrollo, siendo el principal responsable de negociar con el cliente antes, durante y después de ser contratados para desarrollar un programa. El gerente de proyecto también es responsable de establecer y hacer cumplir los plazos de tiempo, así como también debe regular el presupuesto y tomar a cabo las decisiones necesarias para solventar problemas que surjan en el proceso.

Analista de requerimientos

Es una de las personas más importantes durante la fase de planificación y análisis de un nuevo software, ya que se encarga de documentar, precisar establecer todas las funcionalidades que debe tener el software a desarrollar según las necesidades y consentimiento del cliente. El analista debe presentar toda esta información de forma lógica, minuciosa y entendible para el resto del equipo de desarrollo.

Desarrollador

El desarrollador (aunque pueden ser muchos) es el responsable de escribir y confeccionar el código del software, así como es la persona encargada de llevar a cabo el mantenimiento y depuración del mismo.

Testeador

Establece y lleva a cabo las pruebas de control de calidad y detección de errores dentro del software. El testeador es responsable de probar el producto según el uso que le darán los usuarios al software y además, es quien realiza un informe con los errores que deben ser depurados antes de que el producto pase a la fase de despliegue y mantenimiento.

Arquitecto

El arquitecto es responsable de establecer la estructura del código, el lenguaje de programación a utilizar y además es quien gestiona los diferentes aspectos relacionados al desarrollo del software que no tienen relación directa con la funcionalidad del mismo.

Subir