Modelos del ciclo de vida del software

Modelos del ciclo de vida del software

Ciclo de vida de software.

La industria del desarrollo de software incluye diferentes procesos (por ejemplo, análisis, implementación, mantenimiento) y servicios (capacitación, documentación); teniendo esto como base, se le llama ciclo de vida del software al proceso de diseñar, desarrollar e implementar una aplicación (programa, sistema, software). Este ciclo deberá producir software fiable y de alta calidad que cumpla y exceda las expectativas del cliente, alcanzando los objetivos por el cual fue creado y al costo que dé inicio fue estimado. En pocas palabras, el ciclo de vida del software es una secuencia de etapas estructuradas bien definidas para desarrollar un producto de software deseado.

Modelos de desarrollo de software.

Le llamamos modelos de desarrollo de software a los diversos procesos o metodologías que se seleccionan para desarrollar un proyecto en función de sus objetivos. Existen muchos modelos, y estos mismos especifican las distintas etapas del proceso y el orden en que se llevan a cabo.

TIPOS Y/O MODELOS DE CICLO DE VIDA DEL SOFTWARE

CASCADA: O ciclo de vida lineal-secuencial, es muy simple de entender y usar, aquí, cada fase debe terminarse completamente antes de que comience la siguiente fase. Este tipo de modelo se utiliza básicamente para pequeños proyectos con requisitos predefinidos, es decir, que no sean inciertos. Al final de cada fase, se lleva a cabo una revisión para determinar si el proyecto está en el camino correcto y si desea continuar o descartar el proyecto. En este modelo, las pruebas de software sólo se iniciarán una vez finalizado el desarrollo. Las fases de este modelo no se superponen.

No hay texto alternativo para esta imagen

* Requisitos y análisis - En esta fase se recogen todos los requisitos posibles del sistema a ser desarrollado y se documentan en diferentes medios, como pueden ser cuestionarios y/o formularios, etc.

* Diseño de sistema - Es aquí donde las especificaciones capturadas en la primera fase se estudian para dar paso al diseño del sistema, todo esto ayudara a especificar el hardware y los requisitos de software, además de ayudar a definir la arquitectura general del sistema.

* Implementación - El sistema se desarrolla primero en pequeños programas a los cuales podemos llamarles unidades y que se integran en la siguiente fase. Cada unidad se desarrolla y se prueba para su funcionalidad, a esto se le conoce como prueba de unidad.

* Integración y pruebas - Todas las unidades desarrolladas en la fase de implementación se integran en un sistema después de la prueba de cada unidad. Ya que se haya integrado todo el sistema, se comprueba si existen fallos.

* Despliegue del sistema - Una vez que se han realizado las pruebas funcionales y no funcionales, el producto se despliega en el entorno de trabajo del cliente o si el resultado es producto comercial, se lanza al mercado.

* Mantenimiento - A veces surgen problemas, para solucionarlos se liberan parches. A su vez, se desarrollan actualizaciones para mejorar la aplicación. La entrega de estos parchos y actualizaciones se entregan en esta fase.

INCREMENTAL: Todos los requerimientos se dividen en varias compilaciones. Aquí se producen varios ciclos de desarrollo, por lo que podríamos llamar a este ciclo "multi cascada". Los ciclos se dividen en módulos más pequeños y más fáciles de gestionar. Cada módulo pasa por las fases de requerimientos, diseño, implementación y pruebas. Una versión del software se produce durante el primer módulo, teniendo un módulo activo y trabajando durante el ciclo de vida del software. Cada versión posterior del módulo añade funciones a la versión anterior. El proceso continúa hasta que se logra el sistema completo. Antes de pasar al diagrama, podríamos poner un ejemplo:

No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen

* Requerimientos y Análisis: Esta fase del modelo se recogen los requerimientos del usuario, a su vez, este modelo incremental implica comprender completamente los requisitos funcionales del sistema. Esta fase desempeña un papel importante en el desarrollo del producto.

* Diseño y Codificación: En esta fase, el diseño de la funcionalidad del sistema y el proceso de desarrollo se realiza con éxito. El Modelo incremental usa las fases de diseño y codificación cada vez que una nueva funcionalidad y / o una nueva versión del producto tienen que ser desarrollados.

* Pruebas: La fase de pruebas comprueba el comportamiento de cada función existente en el sistema que está bajo desarrollo, así como funcionalidades adicionales. En esta fase se utilizan varios métodos de prueba para ver el comportamiento del sistema y de cómo responde.

* Despliegue: Habilita la fase de codificación del sistema subdesarrollado. Esta fase incluye la codificación final del sistema que se diseñó en la fase de diseño y desarrollo y que fue probada en la fase de pruebas. Una vez finalizada esta fase, el sistema se mejora y se actualiza hasta tener el producto final.

ESPIRAL: El modelo espiral es similar al modelo incremental, con mayor énfasis en el análisis de riesgo. El modelo espiral tiene cuatro fases: Planificación, Análisis de Riesgos, Implementación y Evaluación. Un proyecto pasa repetidamente por estas fases en iteraciones (llamadas espirales, que es de donde este modelo toma su nombre). En la espiral inicial, se recopilan los requisitos y se evalúa el riesgo. Cada espiral posterior se basa en la espiral base.

No hay texto alternativo para esta imagen

* Planificación: Los requisitos se recogen durante la fase de planificación.

* Análisis de riesgo: Se emprende un proceso para identificar el riesgo y soluciones alternativas. Al final de este análisis, se crea un prototipo. Si se encuentra algún riesgo durante el análisis, entonces se sugieren soluciones alternativas a implementar.

* Implementación: En esta fase se desarrolla el software, y al final de la mismo sus respectivas pruebas.

* Evaluación: Esta fase permite al cliente evaluar el proyecto terminado hasta esa fecha, antes de que el proyecto pase a la siguiente espiral.

MODELOS DE CICLO DE VIDA DE SOFTWARE: CUADRO COMPARATIVO

No hay texto alternativo para esta imagen

Existen otros modelos de ciclo de vida de software, y el hecho de no ser tan conocidos, no significan que no son importantes, pero creo que es conveniente dar una breve definición de ellos:

MODELO V: Al igual que el modelo de cascada, el modelo V es una ruta secuencial de ejecución de procesos. Cada fase debe completarse antes de que comience la siguiente fase.

MODELO RAD (Rapid Application Development por sus siglas en inglés): Es un modelo incremental que se centra en desarrollar software en ciclos cortos de tiempo. En este modelo, los componentes o funciones se desarrollan en paralelo como si fueran mini proyectos. El desarrollo se empaqueta (compila) y se entrega como un prototipo. Esto puede dar rápidamente al cliente algo para ver y utilizar y para proporcionar comentarios y nuevos requisitos. Este modelo es un modelo "de alta velocidad" que adapta muchos pasos del modelo de cascada para alcanzar sus objetivos con un crecimiento rápido en sus ciclos.

- Otros modelos que podríamos listar son: iterativo, sashimi, prototipos, evolutivo.

Modelos de ciclo de vida y el modelo orientado a objetos.

Ahora que ya conocemos los modelos del ciclo de vida del desarrollo de software, podemos hablar de la relación y/o comparación con el modelo orientado a objetos. Retomando definiciones de las pasadas actividades, y haciendo una síntesis de las mismas, el modelo orientado a objetos es una representación de una pieza de software como un conjunto de objetos que interactúan entre sí, con el objetivo de reducir la complejidad del sistema y permitir a los desarrolladores trabajar en un objeto específico. Por lo tanto, tenemos que los modelos del ciclo de vida del desarrollo de software ayudan a la gestión del modelado del proyecto, es decir, a organizar el proceso del desarrollo del software, mientras que el modelo orientado a objetos ayuda a modelar la arquitectura y el diseño de la aplicación.

Saúl Hernández

Estudiante en Escuela Superior de Cómputo

1 mes

Disculpas las molestias, me puedes decir de que autor te estas basando para la metodología en espiral

Interesante artículo Daniel. Muchas gracias!. Sólo me gustaría aportar mi granito de arena para aquellas personas que recién están comenzando en la disciplina del Software. En el artículo se menciona al "modelo orientado a objetos", y creo que una mejor definición para poder diferenciarlo de los modelos de ciclo de vida, sería denominarlo "programación orientado a objetos" o "POO" como se lo conoce habitualmente, y que representa en sí mismo un paradigma de programación. Los paradigmas de programación difieren de los modelos de ciclo de vida del software. Más información sobre paradigmas en https://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n

Inicia sesión para ver o añadir un comentario.