¿Qué es el ciclo de vida de un Software?
El SDLC se enfoca en las faces necesarias para el
correcto desarrollo de un Software para así poder
garantizar que se cumplan todos los requisitos
para la aplicación de todos los procesos del
desarrollo, asegurándose que los métodos
que se han empleado son los correctos.
Se origino debido a que es muy costoso corregir
los errores que se detectan en la etapa de implementación.
Ahora si se las metodologías apropiadas para el correcto desarrollo
se pueden detectar a tiempo y así los programadores se pueden centrar
en la calidad del Software cumpliendo plazos y costos asociados.
¿Hay que regirse por alguna normativa?
Aunque existen diferentes ciclos de desarrollo de software, la normativa ISO/IEC/IEEE 12207:2017
establece:
“Un marco común para los procesos del ciclo de vida de
los programas informáticos, con una terminología bien
definida, a la que pueda remitirse la industria del
software. Contiene procesos, actividades y tareas
aplicables durante la adquisición, el suministro, el
desarrollo, el funcionamiento, el mantenimiento o la
eliminación de sistemas, productos y servicios
informáticos. Estos procesos del ciclo de vida se llevan
a cabo mediante la participación de los interesados, con
el objetivo final de lograr la satisfacción del cliente”.
Fases del ciclo de un Software
El ciclo de vida de un software es una secuencia estructurada y bien definida de
las etapas en ingeniería de software para desarrollar el software deseado.
Lo describe desde el inicio hasta el final, con el objetivo de definir las distintas
fases intermedias para validar el desarrollo de la aplicación y confirmar que
cumpla con los requisitos de verificación.
De esta forma, las etapas del desarrollo de software son las siguientes:
• Planificación
• Análisis
• Diseño
• Implementación
• Pruebas
• Instalación o despliegue
• Uso y mantenimiento
En esta fase se incluyen tareas como la determinación del
ámbito del proyecto, un estudio de viabilidad, análisis de
riesgos, costes estimados, asignación de recursos en las
distintas etapas, etc.
Son tareas que influyen en el éxito del proyecto, por eso es
necesaria una planificación inicial.
Planificacion 1
Análisis
Proceso en el que se trata de descubrir lo que se necesita
y cómo llegar a las características que el sistema debe
poseer.
2
Se estudian las posibles implementaciones que hay que
construir y la estructura general del software.
Es una etapa complicada, y si la solución inicial no es la
más adecuada, habrá que redefinirla.
Diseño 3
Se trata de elegir las herramientas adecuadas, un entorno de
desarrollo que haga más sencillo el trabajo y el lenguaje de
programación óptimo.
Esta decisión va a depender del diseño y el entorno elegido.
Es importante tener en cuenta la adquisición de productos
necesarios para que el software funcione.
Implementación 4
Conseguiremos detectar los fallos que se hayan cometido en
etapas anteriores, para que no repercuta en el usuario final.
Esta fase del ciclo de vida del software hay que repetirla tantas
veces como sea necesaria, ya que la calidad y estabilidad
final del software dependerá de esta fase.
Pruebas 5
En esta fase pondremos el software en funcionamiento.
Instalación 6
Este es un momento crucial dentro del ciclo de vida de un
software.
Dentro del mantenimiento se pueden distinguir tres puntos
importantes:
1. Correctivo: Eliminar defectos que se van detectando.
2. Adaptativo: Adaptarlo a nuevas necesidades.
3. Perfectivo: Añadir nuevas funcionalidades.
Uso y mantenimiento 7
Modelo V
Modelos del ciclo de vida de un software
Un modelo de ciclo de
vida de software es una vista
de las actividades que
ocurren durante el desarrollo
de software. Intenta
determinar el orden de las
etapas involucradas y los
criterios de transición
asociadas entre estas etapas.
Modelo de desarrollo
incremental
Modelo en cascada
Modelo iterativo
Modelo en espiral
Modelo en cascada
En este modelo del ciclo de vida de un
software, se espera a finalizar una etapa para
comenzar con la siguiente.
Es un proceso secuencial en el que el
desarrollo va fluyendo de arriba hacia abajo.
Aunque en ocasiones ha sido criticado debido
a su rigidez, sigue siendo el más seguido a
día de hoy.
Modelo V
Uno de los grandes problemas del modelo en cascada es que solo se pasa a la siguiente fase si
se completa la anterior y no se puede volver atrás si hay errores en etapas posteriores. Así, el
modelo en V da más opciones de evaluación del software en cada etapa.
En cada fase se crea la planificación de las pruebas y los casos de pruebas para verificar y validar
el producto en función de los requisitos de la misma. De esta manera, verificación y validación
van en paralelo.
Modelo iterativo
Consiste en la iteración de varios ciclos de vida en cascada entregando al cliente una versión
mejorada al final de cada iteración para que proponga mejoras, hasta que se satisfagan sus
necesidades.
Es ideal para proyectos en los que los requisitos no están claros.
Modelo de desarrollo incremental
Combina el modelo en cascada con el de prototipos.
Está basado en la filosofía de construir incrementando las funcionalidades del programa.
Se sigue un proceso lineal y cada uno de ellos va incrementando funcionalidades del software
hasta llegar al producto final.
Las actividades de este modelo forman una espiral, y cada bucle representa un conjunto de
actividades.
Cada actividad se va eligiendo en función del análisis de riesgos del bucle anterior.
Se necesita un equipo con experiencia para detectar correctamente los riesgos.
En cada bucle se siguen cuatro tareas:
Fijar objetivos
Análisis del riesgo
Desarrollar, verificar y probar
Planificar
Modelo en espiral