martes, enero 18, 2022

Comprender el Ciclo de Cida de Desarrollo de Software (SLDC)

El concepto Ciclo de Vida de Desarrollo de Software (SLDC, Software Development Life Cycle). Pero en varias ocasiones es complejo decidir cual es al mejor metodología desarrollo entre Waterfall Model, Evolutionary, Agile SCRUM u otros modelos nuevos y por tanto como afrontar el ciclo de vida del desarrollo, es decir, la planificación, los requisitos, el diseño, el desarrollo, las pruebas, la implementación y el mantenimiento.

Qué es el Ciclo de Vida del Desarrollo de Software (SLDC)

SDLC es un proceso que sigue el departamento de tecnología de la organización para un proyecto. Incluye siete fases principales para crear software o hardware. Esta metodología tiene como objetivo mejorar el proceso de desarrollo y la calidad del software.

Fases del ciclo de vida de desarrollo:

  • Planificación
  • Requisitos del usuario
  • Diseño y creación de prototipos o pruebas de concepto
  • Desarrollo de la solución
  • Pruebas sobre el desarrollo final
  • Despliegue del producto finalizado y probado
  • Operaciones y tareas de mantenimiento

El plan de acción debe estar bien construido para reducir los retrasos y cumplir con los plazos, presupuestos y objetivos. Para tener éxito en este entorno competitivo digital, la empresa deben seleccionar entre las diferentes metodologías existentes (waterfall, agile, etcétera) para poder alcanzar un desarrollo del proyecto software eficaz y eficiente.

El SLDC tiene como objetivo permitir la producción con éxito de la solución, con calidad y que cumpla o supere los requisitos del cliente, dentro del presupuesto y en los plazos previstos.

Seguir el proceso de SLDC ofrece una vista detallada de todo el sistema, los recursos, la planificación y los objetivos. Permite el más alto nivel de control de gestión y documentación. El equipo de desarrolladores comprenden qué deben crear y por qué. Tanto el cliente como el departamento de tecnología deciden por adelantado sobre el objetivo y establecen el plan concreto para lograrlo, conociendo los costes y recursos necesarios. Las principales ventajas de esta aproximación son:

  • Facilita medir el avance y los costes en cada fase del proceso.
  • Mejora el control y seguimiento de iniciativas importantes o complejos.
  • Implica pasos bien detallados y completos.
  • Las revisiones de diseño ayudan a garantizar la fiabilidad y la calidad de la solución desarrollada.
  • Proporciona una documentación adecuada del sistema a nivel técnico para siguientes revisiones.
  • Si hay cambios en los miembros del proyecto, nuevos miembros pueden continuar en el punto de interrupción.
  • Ayuda a evaluar, programar y estimar los entregables.
  • Asegura la entrega correcta y oportuna al cliente.
  • Proporciona un marco para un conjunto estándar de actividades y entregables.
  • Mejora la velocidad de desarrollo.

Etapas del Ciclo de Vida del Desarrollo de Software (SLDC)

1.- Planificación

En esta fase se identifican y reunen todas las herramientas necesarias para el alcance previsto de la construcción de la solución. Incluye e conocimiento de los requisitos de cliente y el presupuesto, tiempo y recursos con los que se cuenta para alcanzar el éxito final. También se conoce el resultado de esta fase como «informe de viabilidad». En este proceso de preparación, las tres cosas que son obligatorias tener en cuenta son:

  • Identificación del sistema para el desarrollo
  • Evaluación de factibilidad
  • Creación de plan de proyecto

Además, en esta fase, también sopesamos nuestras opciones para ver si vale la pena comenzar el desarrollo de un software o programa para sus inversores o para la empresa en general. También sirve como una fase para evaluar las capacidades comerciales y de software de nuestra empresa.

1.- Requisitos

La toma de requisitos detallada es un proceso previo que en muchos casos se pasa por alto, o no se le dedica el tiempo o detalles necesarios. La organización necesita un alto grado de colaboración desde y con los departamentos de tecnología para poder hacer comprensibles la nueva solución y los criterios de mejora de la misma.

Los arquitectos, desarrolladores y gerentes de producto colaboran para documentar los procesos comerciales finales. Esta fase del ciclo de vida del desarrollo del sistema ayuda al correcto cumplimiento al recopilar la información en un solo documento, ser aceptado por todos los involucrados y producir el posterior seguimiento.

En ocasiones el documento resultante suele denominarse como Espeficiación de Requerimientos de Software o SRS (Software Requirements Specification).

3.- Diseño y Prototipo

Los desarrolladores y arquitectos de software comienzan a diseñar el software después de haber identificado los requisitos. A menudo, la creación rápida de prototipos también se incluye en el proceso de diseño. Esto genera una idea más clara del resultado final desde el punto de vista del cliente final, y permite incluir importantes cuestiones como la experiencia de cliente, usabilidad, etcétera. Este enfoque requiere una comparación de las soluciones que existen en el mercado a través de estudios y análisis detallados.

Al final de esta fase, los equipos obtienen documentos de diseño con los patrones y componentes elegidos para el proyecto, y el código utilizado como punto de partida para una ampliación de las necesidades de desarrollo.

4.- Construcción

Unavez finalizado y aprobado el diseño del software, el siguiente paso es propiamente la construcción, el desarrollo del código. Los desarrolladores comienzan a construir todo el marco utilizando el lenguaje de programación elegido para escribir código. Las tareas se dividen en unidades o módulos en el proceso de codificación y se asignan a los desarrolladores específicos. La codificación es el gran paso del SLDC.

Los desarrolladores obedecerán las pautas de codificación predefinidas específicas durante este proceso. También utilizarán herramientas de programación como compiladores, intérpretes, depuradores para construir y ejecutar el código.

Todo el proceso se mide mediante la aplicación de KPIs y Gestión por Objetivos definido en la fase de planificación.


5.- Pruebas

Cuando ha finalizado la construcción, se inician las pruebas del resultado final y sus módulos. Ya que la prueba del software es necesaria para evitar errores, se preparan juegos de pruebas tanto a nivel de uso, resultados, escalabilidad, forzado de errores de uso, etcétera, chequeando en cada caso los errores producidos.

Esta revisión exhaustiva además se realiza por diferentes tipos de clientes con diferentes perfiles, de modo que, durante este proceso, cualquier problema encontrado se asigna a los desarrolladores para que procedan a su solución.

Se realizan, tras cada cambio, nuevas pruebas y pruebas de regresión hasta que el software está según lo planeado por las expectativas de los clientes. Los evaluadores se refieren al documento de requerimientos para asegurarse de que el software se ajuste al estándar del cliente.

6.- Producción

Tras las pruebas cerfificadas y satisfactorias, se inicia la implementación del software en el entorno de producción para que los consumidores puedan empezar a utilizar el producto. En algunos casos, las empresas prefieren impulsar el producto en diferentes entornos o fases de entrega, como un área de prueba o de preparación adicional.

Permite a todas las partes interesadas jugar con el producto de forma segura antes de que se introduzca de forma global en el mercado. Esta aproximación permite detectar cualquier error final antes de lanzar el producto.

7.- Mantenimiento

Cuando el software pasa por todas las etapas sin complicaciones, se realiza un ciclo de mantenimiento en el que se actualiza y modifica cada cierto tiempo para adaptarse a los cambios y realizar mejoras sobre el mismo.

Aspectos adicionales

El plan derivado de seguir estas fases casi nunca resulta perfecto cuando se topa con la realidad. Además, a medida que cambian las condiciones en el mundo real, es necesario actualizar y hacer avanzar el software para que esté alineado con las nuevos requerimientos y hábitos del mercado.

El movimiento DevOps, por ejemplo, ha cambiado el SLDC. Los desarrolladores ahora son responsables de más pasos en todo el proceso de desarrollo. También aparecen nuevos valores como el deplazarse hacia el lado del usuario de forma más proactiva frente a una posioción más reactiva a los requerimientos.

Cuando los equipos de desarrollo y operaciones utilizan el mismo conjunto de herramientas para realizar un seguimiento del rendimiento y determinar los defectos desde el inicio hasta la retirada, decomisionado, de una aplicación, esto proporciona un lenguaje común y transferencias de conocimiento más ágiles entre los equipos.

Por otro lado, las herramientas de supervisión del rendimiento de las aplicaciones (APM, Application Performance Management) pueden usarse tanto en el entorno de desarrollo, control de calidad y producción. Esto mantiene a todos los participantes usando el mismo conjunto de herramientas durante todo el ciclo de vida del desarrollo.

Metodologías

Waterfall. Modelo en Cascada

Este modelo es el más antiguo y sencillo de comprender. Con esta metodología, se termina una fase antes de comenzar la siguiente. Cada fase tiene su propio mini plan y cada fase se convierte en una «cascada» en la siguiente. El mayor inconveniente de este modelo es que los pequeños detalles que se dejan incompletos pueden retrasar todo el proceso.

Agile

Separa el producto en ciclos y entrega un producto funcional muy rápidamente. Esta metodología produce una sucesión de lanzamientos. La prueba de cada lanzamiento retroalimenta la información que se incorpora en la próxima versión. El inconveniente de este modelo es que el gran énfasis en la interacción con el cliente puede llevar el proyecto en la dirección equivocada en algunos casos.

Ver Gestión eficaz de proyectos

Modelo Iterativo

En este modelo se enfatiza la repetición. Los desarrolladores crean una versión muy rápidamente y por un coste relativamente bajo, luego la prueban y mejoran a través de versiones rápidas y sucesivas. Una gran desventaja aquí es que puede consumir recursos rápidamente si no se establecen controles estrictos.

Modelo en forma de V

Una extensión del modelo en cascada, que realiza pruebas en cada etapa de desarrollo. Al igual que con su metodología similar en cascada, este proceso puede encontrarse con obstáculos debidos a dejar para fases posteriores pequeños requerimientos.

Modelo Big Bang

Este modelo es de alto riesgo ya que dedica la mayoría de sus recursos al desarrollo y, aunque funciona mejor para proyectos pequeños, carece de la etapa de definición de requisitos completa de los otros métodos.

Modelo en Espiral

El más flexible de los modelos SLDC, el modelo en espiral es similar al modelo iterativo por su énfasis en la repetición. El modelo en espiral pasa por las fases de planificación, diseño, construcción y prueba una y otra vez, con mejoras graduales en cada paso.

Beneficios del SLDC

Un proceso de SLDC bien ejecutado produce el más alto nivel de control de gestión y documentación. Los desarrolladores entienden qué deben construir y por qué. Todas las partes acuerdan el objetivo desde el principio y ven un plan claro para llegar a ese objetivo. Todos comprenden los costes y recursos necesarios.

Varios obstáculos pueden producir que una implementación de SLDC sea más un problema para el desarrollo que en una herramienta que ayuda al mismo. No tener en cuenta las necesidades de los clientes y de todos los usuarios y otras partes interesadas puede resultar en una comprensión deficiente de los requisitos del sistema desde el principio. Los beneficios del SDLC solo existen si el plan se sigue fielmente. Los principales beneficios son:

  • Facilita la medición de los avances y los costes del sistema.
  • Mejora el control y seguimiento de los proyectos grandes o complejos.
  • Implica pasos bien detallados y completos.
  • Las revisiones de diseño ayudan a garantizar la fiabilidad y la calidad de la solución.
  • Proporciona una amplia documentación técnica, operativa y de negocio del sistema.

La importancia de SLDC solo se puede entender cuando se aplica. Hace que las tareas sean más manejables y, al seguir estas 7 etapas del ciclo de vida del desarrollo de software, produce las soluciones esperadas.

RELACIONADOS

- Publicidad -spot_img

ÚLTIMas publicaciones