Fases de SDLC [explicadas]: cómo crear un gran software en 2021
Publicado: 2019-10-02Tabla de contenido
Comprensión del proceso SDLC
Estructura del proceso de desarrollo de software
Modelos SDLC
Envolver
La industria del desarrollo de software está en auge. Seguimos produciendo cantidades masivas de código cada año.
En el núcleo de la industria se encuentra el ciclo de vida del desarrollo de software (SDLC), el proceso que guía a los equipos de software sobre cómo estructurar y planificar su trabajo.
Así que emprendamos un viaje a través del terreno traicionero del desarrollo de software.
Veremos qué es realmente SDLC y rastrearemos su evolución. Veremos cuáles son los principales modelos utilizados por la industria.
Descubriremos las fases de SDLC, a través de las cuales pasa una pieza de software antes de ver la luz del día, y los actores clave en cada una.
En última instancia, le daremos una vista panorámica de todo el proceso.
Comprensión del proceso SDLC
La creación de software es un proceso. Como tal, necesita un objetivo bien definido, medios para lograrlo y formas de medir, mantener y mejorar los resultados. Los diferentes enfoques para el desarrollo de software proporcionan todo eso. Sin embargo, no todos están cortados con la misma tela. Dependiendo de sus circunstancias, es posible que deba optar por enfoques muy diferentes.
Esto depende de muchas variables, como:
- industria
- tamaño de la organización
- equipo y proyecto
- marco de tiempo estimado
- y el presupuesto asignado.
Lo que es común es que cada pieza de software sigue un determinado flujo de proceso SDLC .
Este marco desarrolla las fases requeridas hasta su finalización, los recursos necesarios y las tareas que se realizarán a lo largo del camino.
El proceso SDLC es, en última instancia, un programa bien estructurado de lo que debe lograrse. Decide cuál es el mejor enfoque de desarrollo de software dentro de las limitaciones de tiempo y costo estimadas.
El SDLC a menudo se considera un subconjunto del término más amplio "ciclo de vida de desarrollo de sistemas", el marco más antiguo para desarrollar sistemas de información.
Apareció a principios de la década de 1960 como respuesta a la necesidad de sistemas empresariales capaces de procesar grandes cantidades de datos. El primer marco SDLC bien documentado es el paradigma de programación estructurada de 1969.
En la década de 1990 surgieron diversas metodologías de desarrollo de software. Algunos de ellos son la programación orientada a objetos, Scrum y el proceso unificado racional. El Proceso Unificado Ágil surgió en 2005.
Estructura del proceso de desarrollo de software
El desarrollo de un producto de software es una secuencia de etapas bien coordinadas. Dependiendo del enfoque de desarrollo seleccionado, el número de pasos SDLC puede variar.
Revisaremos los sabores de 5 y 7 etapas del SDLC.
La versión de 5 etapas
La versión de 5 etapas del proceso de desarrollo de software es la siguiente:
Requisitos y análisis
Esta es una fase crucial donde la interacción con el cliente y las partes interesadas es fundamental. Necesitan determinar el resultado esperado, es decir, el objetivo del producto de software. Además de los requisitos del cliente, hay otros factores a tener en cuenta. Éstos incluyen:
- Arquitectónico
- Funcional
- No funcional
- Rendimiento
- Y relacionados con el diseño
Para completar con éxito esta etapa, se desarrolla un documento llamado “especificación de requisitos de software”. Es la base de todo lo que ocurrirá a partir de este momento.
El éxito de un proyecto de desarrollo depende en gran medida del análisis de requisitos. El actor clave en esta etapa es el Analista de Negocios (BA). Gestiona toda la comunicación para recopilar los requisitos comerciales, realizar un análisis exhaustivo y, lo que es más importante, traducir esa información entre las partes interesadas y los desarrolladores.
Diseño
El diseño del software se basa en requisitos establecidos. Aquí es donde averiguamos el entorno de desarrollo, los lenguajes de programación, el marco arquitectónico, el hardware, etc. También es el momento de determinar la estrategia de prueba que se utilizará. El papel del arquitecto del sistema es fundamental aquí. Deben considerar todos los requisitos previos del documento de “especificación de requisitos” y proporcionar un documento de diseño que se utilizará en el siguiente paso.
Fase de codificación
A estas alturas, los desarrolladores ya conocen bien las especificaciones de diseño. El trabajo se divide en módulos y comienza la codificación. El cliente también debe participar en esta etapa. Se aseguran de que se tomen todas las medidas necesarias para que el producto cumpla con sus expectativas. Producir un software que funcione es el resultado final en esta etapa.
Pruebas
Ahora que tenemos un producto viable, puede comenzar la fase de prueba. Dependiendo de la estrategia de prueba descrita en el documento de especificaciones de diseño, esto puede suceder de varias formas.
Los objetivos, sin embargo, siguen siendo los mismos. Primero, verifique que se cumplan todos los requisitos iniciales y, segundo, determine si hay algún error en el código. Los probadores son los actores clave aquí. El resultado de sus esfuerzos es un software completamente funcional, listo para ser lanzado.
Mantenimiento
No existe un producto de software perfecto. Es por eso que el servicio al cliente juega un papel muy importante en el proceso de desarrollo. Una vez entregado al cliente final, surgen problemas en tiempo real y es necesario solucionarlos. El mantenimiento continuo es imprescindible si desea tener clientes satisfechos.
La versión de 7 etapas
Ahora, el sabor de 7 etapas de este proceso es un poco diferente. Tiene algunas etapas adicionales, que inevitablemente también cambian la naturaleza de las otras. Vamos a ver:
Planificación
Otra forma de iniciar el proceso SDLC es con una fase de planificación. Precede a la recopilación de requisitos y busca principalmente comentarios. Los aportes de las partes interesadas, socios comerciales, ingenieros y clientes finales dan forma al alcance del proyecto. Esta fase responde a preguntas como:
- ¿Qué hay que hacer?
- ¿Qué recursos se necesitan?
- ¿Cuánto tiempo tomaría?
- ¿Cuanto costara?
Requisitos y análisis
Aquí, los analistas comerciales compilan una lista de requisitos, basada en los comentarios del cliente. Luego, los envían a los ingenieros de software. La comunicación es fundamental.
Esta fase debe producir un documento que describa todos los requisitos y sirva como base para la siguiente fase.
Diseño de sistemas
Los requisitos de software ahora encuentran su camino en la arquitectura del sistema. En este punto, podemos determinar los medios funcionales y las operaciones que necesitamos para entregar el proyecto. Una vez preparado, el plan de diseño se presenta a la empresa. Incorporamos todos los comentarios antes de que comience la programación real.
Desarrollo de software
Una vez que los requisitos están claros, los ingenieros de software pueden comenzar a trabajar. El objetivo en esta etapa es un programa de trabajo que esté listo para ser probado. Este es también el inicio de la producción en el proceso SDLC .
Pruebas
La función del equipo de garantía de calidad es averiguar si se han cumplido los requisitos comerciales iniciales. Inspeccionan la calidad del código del software. Los errores se solucionan. Hay una lista completa de métodos de prueba de software que se deben seguir: pruebas funcionales, de integración, de rendimiento, etc.
Las pruebas de automatización son una forma de automatizar el proceso de ejecución de pruebas repetitivas mediante el uso de software externo, como Bamboo y Jenkins.
Implementación
Una vez que el código ha pasado la fase de prueba, está listo para implementarse en el entorno de producción. Dependiendo de la política de la empresa, este proceso puede requerir aprobación; sin embargo, en la mayoría de los casos es un paso automatizado en el ciclo de vida del desarrollo de software .
Mantenimiento y operaciones
Una vez que el software se lanza en producción, pueden surgir todo tipo de problemas. Mediante el seguimiento, pueden identificarse y resolverse. Las nuevas funciones también pueden encontrar su camino en el producto. Ésta es la fase en la que se puede medir y mejorar el rendimiento.
Modelos SDLC
El proceso de desarrollo de una pieza de software es en gran parte universal. Hay espacio para agregar más etapas o simplificar las existentes, pero es casi lo mismo.
Esto no es cierto cuando miramos los métodos de desarrollo . Aunque todos observan el proceso, lo hacen de formas muy diferentes.
Para elegir el más adecuado, hay varios factores clave a considerar. Siempre es un equilibrio entre las necesidades del cliente y los detalles prácticos del desarrollo de software. Hay factores como:
- la complejidad del proyecto
- la tecnología seleccionada
- y el tamaño del equipo.
Todos estos determinan qué enfoque puede funcionar mejor. Haremos una descripción general de algunas de las metodologías SDLC más conocidas y utilizadas .
Cascada
El modelo de cascada es un proceso de diseño secuencial lineal. Es la metodología más antigua conocida utilizada en ingeniería de software. Tiene su origen en las industrias de fabricación y construcción en la década de 1970.
El progreso de un proyecto de desarrollo que sigue el modelo de cascada va estrictamente por la tubería SDLC. Una progresión es posible solo cuando la fase anterior del SDLC se ha completado con éxito. No hay un proceso definido para retroceder.
La cascada SDLC es un enfoque muy estructurado. Funciona bien cuando:
- Los requisitos y actividades están bien definidos y comprendidos.
- la tecnología es confiable
- el equipo de soporte está disponible y estima un proyecto a corto plazo
La desventaja del método está relacionada con su falta de flexibilidad. No puede implementar requisitos emergentes en el camino. Dado que no se produce ningún producto tangible hasta el final del proceso de desarrollo, el riesgo y la incertidumbre son altos. Podría resultar un enfoque muy costoso, si decide modificar los requisitos o el alcance del proyecto sobre la marcha.
Iterativo
Este método se basa en la noción de que el software se puede construir a través de una secuencia de ciclos repetitivos. Comienza con un simple conjunto de requisitos. En cada ronda, los ingenieros aprenden del comportamiento de versiones anteriores del software y pueden mejorar su funcionalidad.
La mayor ventaja de este enfoque es que se produce un prototipo funcional del software después de que se completa cada ciclo. Esto facilita la implementación de cambios, la identificación de riesgos. La prueba SDLC es relativamente más fácil cuando se realiza en cada iteración.
Las desventajas del modelo iterativo de desarrollo de software se reducen a los recursos y al costo. Aumentar el número de iteraciones consume más recursos. La fecha límite de finalización del proyecto no está determinada, al igual que el riesgo. Por lo tanto, para que este método funcione, se necesitan expertos altamente capacitados que realicen el análisis de riesgos.
La metodología no es adecuada para proyectos más pequeños.
Ágil
El enfoque ágil para el desarrollo de software es relativamente nuevo. Aún así, ha ganado popularidad rápidamente en todo el mundo.
El SDLC ágil se basa en entregar pequeñas porciones de software en funcionamiento y buscar comentarios inmediatos del cliente. En el centro de este enfoque se encuentra la sólida colaboración y la comunicación continua entre los equipos. Cada ciclo dura aproximadamente de una a tres semanas, momento en el que el módulo / función de trabajo se entrega al cliente. Luego, el proceso se repite.
Las pruebas se realizan en cada iteración, lo que permite resolver problemas desde el principio. Fomenta la demostración de la funcionalidad del software y la obtención de comentarios. El modelo proporciona una clara visibilidad de los resultados. Aboga por el trabajo en equipo y brinda flexibilidad a los ingenieros de software.
Dado que no existen requisitos para la documentación pesada, existe el riesgo de depender de determinadas personas. Esto también puede ser un desafío cuando se trata de la transferencia de conocimientos a los nuevos miembros del equipo.
Inclinarse
La metodología de desarrollo de software Lean se considera parte del método de desarrollo de software Agile. El proceso SDLC que sigue la metodología Lean consta de siete principios:
- Eliminar residuos
- Amplifica el aprendizaje
- Decide lo más tarde posible
- Entregue lo más rápido posible
- Empoderar al equipo
- Construir integridad
- Ver la imagen completa
La clave para comprender este modelo es a través de estos principios. Eso llevaría a transformarlos en prácticas ágiles funcionales y su implementación en el proceso de trabajo.
Los principios lean se organizan en torno a la idea de producir el mayor valor añadido posible para los usuarios finales, optimizando al mismo tiempo la calidad, la velocidad, los costes y las expectativas comerciales. Para ello, se eliminan algunas tareas (documentación pesada) y se optimizan otras (frecuencia de reuniones).
DevOps
El modelo DevOps se basa parcialmente en Agile y Lean . Es un enfoque emergente que se vincula en estrecha colaboración entre el desarrollo de software y los equipos de operaciones durante todo el ciclo de vida del desarrollo.
El aspecto clave de esta metodología es el énfasis en la automatización del proceso de desarrollo. El objetivo final es acortar el SDLC y, al mismo tiempo, ofrecer resultados innovadores de alta calidad, alineados con los requisitos comerciales.
Con este enfoque, los desarrolladores, los equipos de operaciones y los miembros de control de calidad están todos en la misma página. Utilizan las mismas herramientas y siguen los mismos procesos. Esto mejora la comunicación y conduce a resultados mejores y más oportunos.
Espiral
Esta es una combinación de desarrollo iterativo y algunas de las nociones del modelo de cascada. Permite lanzamientos parciales del software en cada ciclo iterativo.
Las cuatro etapas y las repeticiones se denominan "espirales". Las fases de SDLC son: planificación y recopilación de requisitos; diseño; desarrollo y pruebas.
El análisis de riesgos tiene un papel clave. En cada espiral, se realiza un análisis de riesgo para que cualquier riesgo potencial pueda identificarse y evitarse o superarse. Es adecuado para grandes proyectos, aunque la gestión y el proceso en sí pueden ser complejos.
Envolver
Elegir el enfoque correcto para el desarrollo de software requiere una investigación significativa. Al definir el alcance, los requisitos y el objetivo de su proyecto, puede determinar las Fases SDLC que su producto necesitaría atravesar.
Su metodología de elección no es solo un proceso para desarrollar un producto funcional. Es una forma de alinear los valores de su organización y sus equipos para crear un entorno de trabajo armonioso.
Preguntas más frecuentes
Dependiendo de la metodología que elija, su software pasará por un número variable de etapas. Las siguientes actividades deben formar parte de él de cualquier manera:
- Planificación, recopilación de requisitos y análisis
- Acordar un diseño o una arquitectura de sistema
- Generando código
- Probando el código producido
- Implementación del código en un entorno de producción.
- Mantenimiento y mejora continuos
Cepillado; Requisitos y análisis; Diseño; Desarrollo; Pruebas; Implementación; Mantenimiento.
¡Eso depende de tu proyecto! Su análisis de la industria, el objetivo del proyecto, las capacidades y los recursos disponibles, las métricas de tiempo y costo serían los factores rectores para seleccionar la mejor metodología SDLC.