sdlc phases
¿Qué es el ciclo de vida del desarrollo de software (SDLC)? Aprenda las fases, metodologías, procesos y modelos de SDLC
El ciclo de vida del desarrollo de software (SDLC) es un marco que define los pasos involucrados en el desarrollo de software en cada fase. Cubre el plan detallado para construir, implementar y mantener el software.
SDLC define el ciclo completo de desarrollo, es decir, todas las tareas involucradas en la planificación, creación, prueba e implementación de un producto de software.
Lo que vas a aprender:
- Proceso del ciclo de vida del desarrollo de software
- Ciclo SDLC
- Fases SDLC
- Modelos de ciclo de vida de desarrollo de software
- Conclusión
Proceso del ciclo de vida del desarrollo de software
SDLC es un proceso que define las diversas etapas involucradas en el desarrollo de software para entregar un producto de alta calidad. Las etapas de SDLC cubren el ciclo de vida completo de un software, es decir, desde el inicio hasta el retiro del producto.
La adhesión al proceso SDLC conduce al desarrollo del software de manera sistemática y disciplinada.
Propósito:
El propósito de SDLC es entregar un producto de alta calidad que cumpla con los requisitos del cliente.
SDLC ha definido sus fases como, recopilación de requisitos, diseño, codificación, pruebas y mantenimiento. Es importante adherirse a las fases para proporcionar el Producto de manera sistemática.
Por ejemplo, Se debe desarrollar un software y un equipo se divide para trabajar en una característica del producto y se le permite trabajar como quieran. Uno de los desarrolladores decide diseñar primero mientras que el otro decide codificar primero y el otro en la parte de documentación.
Esto conducirá al fracaso del proyecto, por lo que es necesario tener un buen conocimiento y comprensión entre los miembros del equipo para entregar un producto esperado.
Ciclo SDLC
El ciclo SDLC representa el proceso de desarrollo de software.
A continuación se muestra la representación esquemática del ciclo SDLC:
Fases SDLC
A continuación se muestran las distintas fases:
- Recopilación y análisis de requisitos
- Diseño
- Implementación o codificación
- Pruebas
- Despliegue
- Mantenimiento
# 1) Recopilación y análisis de requisitos
Durante esta fase, se recopila toda la información relevante del cliente para desarrollar un producto según sus expectativas. Las ambigüedades deben resolverse solo en esta fase.
El analista de negocios y el Gerente de Proyectos establecieron una reunión con el cliente para recopilar toda la información, como lo que el cliente quiere construir, quién será el usuario final, cuál es el propósito del producto. Antes de construir un producto, es muy importante una comprensión o conocimiento básico del producto.
Por ejemplo, Un cliente quiere tener una aplicación que involucre transacciones de dinero. En este caso, el requisito tiene que ser claro como qué tipo de transacciones se harán, cómo se harán, en qué moneda se harán, etc.
Una vez realizada la recopilación de requisitos, se realiza un análisis para comprobar la viabilidad del desarrollo de un producto. En caso de cualquier ambigüedad, se establece una llamada para una mayor discusión.
Una vez que se entiende claramente el requisito, se crea el documento SRS (Especificación de requisitos de software). Este documento debe ser entendido completamente por los desarrolladores y también debe ser revisado por el cliente para referencia futura.
# 2) Diseño
En esta fase, el requisito recopilado en el documento SRS se utiliza como entrada y se deriva la arquitectura de software que se utiliza para implementar el desarrollo del sistema.
# 3) Implementación o codificación
La implementación / codificación comienza una vez que el desarrollador obtiene el documento de diseño. El diseño del software se traduce en código fuente. Todos los componentes del software se implementan en esta fase.
qué es la prueba funcional con ejemplos
# 4) Prueba
La prueba comienza una vez que se completa la codificación y los módulos se lanzan para la prueba. En esta fase, el software desarrollado se prueba a fondo y los defectos encontrados se asignan a los desarrolladores para que los solucionen.
La prueba de regresión se vuelve a realizar hasta el punto en el que el software cumple con las expectativas del cliente. Los evaluadores consultan el documento SRS para asegurarse de que el software cumpla con el estándar del cliente.
# 5) Implementación
Una vez que se prueba el producto, se implementa en el entorno de producción o primero UAT (prueba de aceptación del usuario) se realiza en función de las expectativas del cliente.
En el caso de UAT, se crea una réplica del entorno de producción y el cliente junto con los desarrolladores hacen las pruebas. Si el cliente encuentra la aplicación como se esperaba, el cliente proporciona la firma para comenzar a funcionar.
# 6) Mantenimiento
Después de la implementación de un producto en el entorno de producción, los desarrolladores se encargan del mantenimiento del producto, es decir, si surge algún problema y es necesario solucionarlo o se debe realizar alguna mejora.
Modelos de ciclo de vida de desarrollo de software
Un modelo de ciclo de vida de software es una representación descriptiva del ciclo de desarrollo de software. Los modelos SDLC pueden tener un enfoque diferente, pero las fases básicas y la actividad siguen siendo las mismas para todos los modelos.
# 1) Modelo de cascada
Modelo de cascada es el primer modelo que se utiliza en SDLC. También se conoce como modelo secuencial lineal.
En este modelo, el resultado de una fase es la entrada para la siguiente fase. El desarrollo de la siguiente fase comienza solo cuando se completa la fase anterior.
- Primero, se realiza la recopilación y el análisis de requisitos. Una vez que se congela el requisito, solo se puede iniciar el diseño del sistema. Aquí, el documento SRS creado es el resultado de la fase de Requisitos y actúa como una entrada para el Diseño del Sistema.
- En la arquitectura y el diseño de software de diseño de sistemas, se crean documentos que actúan como entrada para la siguiente fase, es decir, implementación y codificación.
- En la fase de implementación, se realiza la codificación y el software desarrollado es la entrada para la siguiente fase, es decir, la prueba.
- En la fase de prueba, el código desarrollado se prueba a fondo para detectar los defectos en el software. Los defectos se registran en la herramienta de seguimiento de defectos y se vuelven a probar una vez reparados. Las pruebas de registro de errores, repetición de pruebas y regresión continúan hasta que el software está en estado de puesta en marcha.
- En la fase de implementación, el código desarrollado se mueve a producción después de que el cliente da la aprobación.
- Los desarrolladores que se encuentran bajo mantenimiento resuelven cualquier problema en el entorno de producción.
Ventajas del modelo de cascada:
- El modelo Waterfall es el modelo simple de fácil comprensión y es aquel en el que todas las fases se realizan paso a paso.
- Los entregables de cada fase están bien definidos, y esto no genera complejidad y hace que el proyecto sea fácilmente manejable.
Desventajas del modelo Waterfall:
- El modelo de cascada requiere mucho tiempo y no se puede utilizar en proyectos de corta duración, ya que en este modelo no se puede iniciar una nueva fase hasta que se complete la fase en curso.
- El modelo de cascada no se puede utilizar para los proyectos que tienen requisitos inciertos o en los que el requisito sigue cambiando, ya que este modelo espera que el requisito sea claro en la fase de recopilación y análisis de requisitos y cualquier cambio en las etapas posteriores conduciría a un costo más alto a medida que el serían necesarios cambios en todas las fases.
# 2) Modelo en forma de V
V- Modelo también se conoce como modelo de verificación y validación. En este modelo, la verificación y validación van de la mano, es decir, el desarrollo y las pruebas van en paralelo. El modelo V y el modelo en cascada son los mismos, excepto que la planificación y las pruebas comienzan en una etapa temprana en V-Model.
a) Fase de verificación:
(i) Análisis de requisitos:
En esta fase, toda la información requerida se recopila y analiza. Las actividades de verificación incluyen la revisión de los requisitos.
(ii) Diseño del sistema:
Una vez que el requisito está claro, se diseña un sistema, es decir, la arquitectura, los componentes del producto se crean y documentan en un documento de diseño.
(iii) Diseño de alto nivel:
El diseño de alto nivel define la arquitectura / diseño de módulos. Define la funcionalidad entre los dos módulos.
(iv) Diseño de bajo nivel:
El diseño de bajo nivel define la arquitectura / diseño de componentes individuales.
(v) Codificación:
El desarrollo del código se realiza en esta fase.
b) Fase de validación:
(i) Prueba unitaria:
Examen de la unidad se realiza utilizando los casos de prueba unitarios que están diseñados y se realiza en la fase de diseño de bajo nivel. Las pruebas unitarias las realiza el propio desarrollador. Se realiza en componentes individuales que conducen a la detección temprana de defectos.
(ii) Prueba de integración:
Pruebas de integración se realiza utilizando casos de prueba de integración en la fase de diseño de alto nivel. La prueba de integración es la prueba que se realiza en módulos integrados. Lo realizan probadores.
(iii) Prueba del sistema:
Prueba del sistema se realiza en la fase de Diseño del Sistema. En esta fase, se prueba el sistema completo, es decir, se prueba toda la funcionalidad del sistema.
(iv) Prueba de aceptación:
Las pruebas de aceptación están asociadas con la fase de análisis de requisitos y se realizan en el entorno del cliente.
Ventajas del modelo V:
- Es un modelo sencillo y de fácil comprensión.
- El enfoque del modelo V es bueno para proyectos más pequeños en los que el requisito está definido y se congela en la etapa inicial.
- Es un modelo sistemático y disciplinado que da como resultado un producto de alta calidad.
Desventajas del modelo V:
- El modelo en forma de V no es bueno para proyectos en curso.
- El cambio de requisitos en la etapa posterior costaría demasiado.
# 3) Modelo de prototipo
El modelo prototipo es un modelo en el que se desarrolla el prototipo antes que el software real.
Los modelos de prototipos tienen capacidades funcionales limitadas y un rendimiento ineficiente en comparación con el software real. Las funciones ficticias se utilizan para crear prototipos. Este es un mecanismo valioso para comprender las necesidades de los clientes.
Los prototipos de software se crean antes que el software real para obtener comentarios valiosos del cliente. Se implementan las retroalimentaciones y el cliente vuelve a revisar el prototipo para detectar cualquier cambio. Este proceso continúa hasta que el cliente acepta el modelo.
Una vez que se realiza la recopilación de requisitos, se crea el diseño rápido y se construye el prototipo que se presenta al cliente para su evaluación.
Los comentarios del cliente y los requisitos refinados se utilizan para modificar el prototipo y se presentan nuevamente al cliente para su evaluación. Una vez que el cliente aprueba el prototipo, se utiliza como requisito para crear el software real. El software real se crea utilizando el enfoque del modelo Waterfall.
Ventajas del modelo de prototipo:
- El modelo de prototipo reduce el costo y el tiempo de desarrollo ya que los defectos se encuentran mucho antes.
- En la fase de evaluación se puede identificar una característica o funcionalidad que falta o un cambio en el requisito y se puede implementar en el prototipo refinado.
- La participación de un cliente desde la etapa inicial reduce cualquier confusión en el requisito o comprensión de cualquier funcionalidad.
Desventajas del modelo de prototipo:
- Dado que el cliente está involucrado en cada fase, el cliente puede cambiar el requisito del producto final, lo que aumenta la complejidad del alcance y puede aumentar el tiempo de entrega del producto.
# 4) Modelo en espiral
El modelo en espiral incluye enfoque iterativo y prototipo.
Las fases del modelo en espiral se siguen en las iteraciones. Los bucles en el modelo representan la fase del proceso SDLC, es decir, el bucle más interno es de recopilación y análisis de requisitos que sigue a la planificación, el análisis de riesgos, el desarrollo y la evaluación. El siguiente ciclo es el diseño, luego la implementación y luego las pruebas.
El modelo en espiral tiene cuatro fases:
- Planificación
- Análisis de riesgo
- Ingenieria
- Evaluación
(i) Planificación:
La fase de planificación incluye la recopilación de requisitos en la que toda la información requerida se recopila del cliente y se documenta. Se crea un documento de especificación de requisitos de software para la siguiente fase.
(ii) Análisis de riesgo:
En esta fase, se selecciona la mejor solución para los riesgos involucrados y el análisis se realiza mediante la construcción del prototipo.
Por ejemplo , el riesgo que implica acceder a los datos desde una base de datos remota puede ser que la velocidad de acceso a los datos sea demasiado lenta. El riesgo se puede resolver construyendo un prototipo del subsistema de acceso a datos.
(iii) Ingeniería:
Una vez que se realiza el análisis de riesgo, se realizan la codificación y las pruebas.
(iv) Evaluación:
El cliente evalúa el sistema desarrollado y planifica la siguiente iteración.
Ventajas del modelo en espiral:
- El análisis de riesgos se realiza ampliamente utilizando los modelos prototipo.
- Cualquier mejora o cambio en la funcionalidad se puede realizar en la siguiente iteración.
Desventajas del modelo en espiral:
- El modelo en espiral es el más adecuado solo para proyectos grandes.
- El costo puede ser alto, ya que puede requerir una gran cantidad de iteraciones, lo que puede llevar a un mayor tiempo para llegar al producto final.
# 5) Modelo incremental iterativo
El modelo incremental iterativo divide el producto en pequeños trozos.
Por ejemplo , Se decide e implementa la característica a desarrollar en la iteración. Cada iteración pasa por las fases, a saber, análisis de requisitos, diseño, codificación y pruebas. No se requiere una planificación detallada en las iteraciones.
Una vez que se completa la iteración, un producto se verifica y se entrega al cliente para su evaluación y comentarios. Los comentarios del cliente se implementan en la siguiente iteración junto con la función recién agregada.
Por lo tanto, el producto aumenta en términos de características y una vez que se completan las iteraciones, la compilación final contiene todas las características del producto.
Fases del modelo de desarrollo iterativo e incremental:
- Fase de comienzo
- Fase de elaboración
- Fase de construcción
- Fase de transición
(i) Fase de inicio:
La fase de inicio incluye el requisito y el alcance del Proyecto.
(ii) Fase de elaboración:
En la fase de elaboración, se entrega la arquitectura de trabajo de un producto que cubre el riesgo identificado en la fase de inicio y también cumple los requisitos no funcionales.
(iii) Fase de construcción:
En la fase de Construcción, la arquitectura se completa con el código que está listo para ser implementado y se crea a través del análisis, diseño, implementación y prueba del requisito funcional.
(iv) Fase de transición:
En la fase de transición, el producto se implementa en el entorno de producción.
Ventajas del modelo iterativo e incremental:
- Cualquier cambio en el requisito se puede realizar fácilmente y no tendría ningún costo, ya que existe la posibilidad de incorporar el nuevo requisito en la próxima iteración.
- El riesgo se analiza e identifica en las iteraciones.
- Los defectos se detectan en una etapa temprana.
- Como el producto se divide en trozos más pequeños, es fácil de administrar el producto.
Desventajas del modelo iterativo e incremental:
- Se requieren requisitos y comprensión completos de un producto para descomponerse y construir de manera incremental.
# 6) Modelo de Big Bang
Big Bang Model no tiene ningún proceso definido. El dinero y los esfuerzos se combinan cuando la entrada y la salida llegan como un producto desarrollado que puede ser o no lo mismo que lo que necesita el cliente.
Big Bang Model no requiere mucha planificación y programación. El desarrollador realiza el análisis y la codificación de requisitos y desarrolla el producto según su comprensión. Este modelo se utiliza solo para proyectos pequeños. No hay un equipo de pruebas y no se realizan pruebas formales, y esto podría ser una causa del fracaso del proyecto.
Ventajas del modelo Big Bang:
- Es un modelo muy simple.
- Se requiere menos planificación y programación.
- El desarrollador tiene la flexibilidad de crear su propio software.
Desventajas del modelo Big Bang:
- Los modelos Big Bang no se pueden utilizar para proyectos grandes, en curso y complejos.
- Alto riesgo e incertidumbre.
# 7) Modelo ágil
Agile Model es una combinación del modelo iterativo e incremental. Este modelo se centra más en la flexibilidad durante el desarrollo de un producto que en los requisitos.
En Agile, un producto se divide en pequeñas compilaciones incrementales. No se desarrolla como un producto completo de una sola vez. Cada compilación se incrementa en términos de características. La siguiente compilación se basa en la funcionalidad anterior.
En iteraciones ágiles se denominan sprints. Cada sprint dura de 2 a 4 semanas. Al final de cada sprint, el propietario del producto verifica el producto y, después de su aprobación, se lo entrega al cliente.
Los comentarios de los clientes se toman para mejorar y sus sugerencias y mejoras se trabajan en el siguiente sprint. Las pruebas se realizan en cada sprint para minimizar el riesgo de fallas.
Ventajas del modelo ágil:
- Permite más flexibilidad para adaptarse a los cambios.
- La nueva función se puede agregar fácilmente.
- Satisfacción del cliente, ya que los comentarios y sugerencias se toman en cada etapa.
Desventajas:
- Falta de documentación.
- Agile necesita recursos experimentados y altamente calificados.
- Si un cliente no tiene claro exactamente cómo quiere que sea el producto, el proyecto fracasará.
Conclusión
La adherencia a un ciclo de vida adecuado es muy importante para la finalización exitosa del Proyecto. Esto, a su vez, facilita la gestión.
Los diferentes modelos de ciclo de vida de desarrollo de software tienen sus propios pros y contras. El mejor modelo para cualquier proyecto se puede determinar mediante factores como el requisito (si es claro o no), la complejidad del sistema, el tamaño del proyecto, el costo, la limitación de habilidades, etc.
Ejemplo, en caso de un requisito poco claro, es mejor utilizar los modelos Spiral y Agile, ya que el cambio requerido puede adaptarse fácilmente en cualquier etapa.
El modelo Waterfall es un modelo básico y todos los demás modelos SDLC se basan únicamente en eso.
Espero que haya obtenido un inmenso conocimiento de SDLC.
Lectura recomendada
- Modelo en espiral - ¿Qué es el modelo en espiral SDLC?
- ¿Qué es el modelo de cascada SDLC?
- ¿Qué es el ciclo de vida de las pruebas de software (STLC)?
- Trabajo de asistente de control de calidad de pruebas de software
- 10 MEJORES empresas y servicios de desarrollo de software personalizado en 2021
- Pruebas prácticas de software: nuevo libro electrónico GRATUITO (Descargar)
- En el sitio: modelo offshore de proyectos de prueba de software (y cómo hacer que funcione para usted)
- ¿Por que el software tiene errores?