El ciclo de vida del desarrollo de software (SDLC) es un proceso rentable y eficiente en trminos de tiempo empleado por los equipos de desarrollo para disear y crear software de alta calidad. El objetivo del SDLC es minimizar los riesgos del proyecto por medio de una planificacin anticipada que permita que el software cumpla las expectativas del cliente durante la fase de produccin y posteriormente. Esta metodologa establece una serie de pasos que dividen el proceso de desarrollo de software en tareas que se pueden asignar, completar y medir.
El desarrollo de software puede ser difcil de administrar debido a los requisitos cambiantes, los avances de la tecnologa y la colaboracin interfuncional. La metodologa del ciclo de vida del desarrollo de software (SDLC) ofrece un marco de administracin sistemtico con entregas especficas en cada etapa del proceso de desarrollo de software. Como resultado, todas las partes interesadas establecen por adelantado los objetivos y requisitos de desarrollo del software y tambin cuentan con una planificacin para conseguirlo.
El ciclo de vida del desarrollo de software (SDLC) describe varias tareas necesarias para crear una aplicacin de software. El proceso de desarrollo pasa por varias etapas a medida que los desarrolladores agregan nuevas caractersticas y corrigen errores del software.
La fase de planificacin incluye normalmente tareas como anlisis de costos y beneficios, programacin, estimacin de recursos y asignacin. El equipo de desarrollo recopila requisitos de varias partes interesadas, como clientes, expertos internos y externos, as como directivos, para crear un documento de especificaciones con los requisitos del software.
El documento establece las especificaciones y define los objetivos comunes que ayudan a planificar el proyecto. El equipo estima los costos, define una programacin y dispone de un plan detallado para conseguir los objetivos.
En la fase de diseo, los ingenieros de software analizan los requisitos e identifican las mejores soluciones para crear el software. Por ejemplo, pueden plantearse la integracin de mdulos ya existentes, elegir la tecnologa e identificar herramientas de desarrollo. Decidirn la mejor manera de integrar el nuevo software en cualquier infraestructura de TI existente que la organizacin pueda tener.
En la fase de implementacin, el equipo de desarrollo codifica el producto. Se analizan los requisitos para identificar tareas de codificacin ms pequeas que puedan hacerse diariamente para conseguir el resultado final.
El equipo de desarrollo combina las pruebas automticas y manuales para comprobar si el software tiene errores. Los anlisis de calidad incluyen probar el software para detectar errores y comprobar si cumple los requisitos del cliente. Dado que muchos equipos prueban inmediatamente el cdigo que escriben, la fase de pruebas se ejecuta con frecuencia en paralelo a la fase de desarrollo.
Cuando los equipos desarrollan software, lo codifican y prueban en una copia diferente que no es a la que acceden los usuarios. El software que los clientes usan se llama produccin, mientras que las otras copias estn en el entorno de compilacin o entorno de pruebas.
Disponer de un entorno de compilacin y de un entorno de produccin diferenciados garantiza que los clientes puedan seguir usando el software incluso cuando se modifica o actualiza. La fase de despliegue incluye varias tareas para llevar la ltima copia compilada al entorno de produccin, como empaquetado, configuracin del entorno e instalacin.
En la fase de mantenimiento, entre otras tareas, el equipo corrige errores, resuelve problemas de los clientes y administra los cambios hechos en el software. Adems, el equipo supervisa el rendimiento general del sistema, la seguridad y la experiencia del usuario para identificar nuevas maneras de mejorar el software existente.
Un modelo de ciclo de vida del desarrollo de software (SDLC) presenta de manera conceptual un SDLC de manera organizada para permitir que las organizaciones lo implementen. Diferentes modelos disponen las fases del SDLC en diversos rdenes cronolgicos para optimizar el ciclo de desarrollo. A continuacin, se muestran algunos modelos SDLC conocidos.
El modelo de cascada dispone todas las fases secuencialmente de modo que las nuevas fases dependan del resultado de la fase anterior. Desde un punto de vista conceptual, el diseo fluye desde una fase a otra inferior, como en una cascada.
El modelo de cascada hace que la administracin del proyecto sea muy estricta y proporciona un resultado tangible al final de cada fase. Sin embargo, hay poco margen de cambio una vez que una fase se considera completa, ya que los cambios pueden afectar al tiempo de entrega, al costo y a la calidad del software. Por lo tanto, el modelo es ms adecuado para pequeos proyectos de desarrollo de software, donde las tareas se pueden organizar y administrar fcilmente y los requisitos se pueden predefinir con precisin.
El proceso iterativo sugiere que los equipos comienzan el desarrollo de software con un pequeo subconjunto de requisitos. Posteriormente, se mejoran las versiones de manera iterativa a lo largo del tiempo hasta que el software final est listo para pasar a produccin. El equipo produce una nueva versin de software al final de cada iteracin.
Es fcil identificar y administrar riesgos, ya que los requisitos pueden cambiar entre cada iteracin. Sin embargo, la repeticin de los ciclos puede dar lugar a que cambien los objetivos y se subestimen los recursos.
El modelo de espiral combina los pequeos ciclos repetidos del modelo iterativo con el flujo secuencial y lineal del modelo de cascada para dar prioridad al anlisis de riesgos. Puede usar el modelo de espiral para garantizar la actualizacin y mejora graduales del software mediante la creacin de prototipos en cada fase.
El modelo gil dispone las fases del SDLC en varios ciclos de desarrollo. El equipo itera a travs de las fases rpidamente y solo se hacen pequeos cambios progresivos de software en cada ciclo. Los requisitos, planes y resultados se evalan continuamente para responder con rapidez a los cambios. El modelo gil es iterativo y progresivo, por lo que es ms eficiente que otros modelos de procesos.
Los ciclos rpidos de desarrollo permiten a los equipos identificar y abordar problemas en proyectos complejos desde el principio y antes de que se conviertan en problemas graves. Tambin promueven la particin de los clientes y las partes interesadas para que den su opinin en todo el ciclo de vida del proyecto. Sin embargo, depender en exceso de la opinin de los clientes puede hacer que los objetivos cambien drsticamente o dejar el proyecto a medias.
En el desarrollo de software convencional, las pruebas de seguridad eran un proceso independiente del ciclo de vida del desarrollo de software (SDLC). El equipo de seguridad descubri errores de seguridad solo despus de crear el software. Esto dio lugar a una gran cantidad de errores que permanecan ocultos, as como mayores riesgos de la seguridad.
En la actualidad, la mayora de los equipos reconocen que la seguridad es una parte integral del ciclo de vida del desarrollo de software. Puede abordar cuestiones de seguridad en SDLC mediante prcticas de DevSecOps y llevar a cabo evaluaciones de seguridad durante todo el proceso del SDLC.
DevSecOps es la prctica de integrar las pruebas de seguridad en cada etapa del proceso de desarrollo de software. Incluye herramientas y procesos que fomentan la colaboracin entre los desarrolladores, los especialistas en seguridad y los equipos de operaciones para crear un software que pueda hacer frente a las amenazas actuales. Adems, garantiza que las actividades de garanta de la seguridad, como revisin de cdigo, anlisis de arquitectura y pruebas de penetracin, formen parte del proceso de desarrollo.
En el mbito de la tecnologa, el trmino ciclo de vida del desarrollo de software (SDLC) se refiere con frecuencia al proceso completo de innovacin y asistencia tecnolgica. A continuacin, se indican otros trminos similares.
La abreviatura SDLC se refiere en ocasiones al ciclo de vida del desarrollo de sistemas, es decir, el proceso de planificacin y creacin de un sistema de TI. El sistema incluye normalmente varios componentes de hardware y software que trabajan conjuntamente para llevar a cabo funciones complejas.
El ciclo de vida del desarrollo de software solo aborda el desarrollo y pruebas de componentes de software. En cambio, el desarrollo de sistemas es un superconjunto ms amplio que incluye la configuracin y administracin del software, hardware, personas y procesos que componen un sistema. Puede incluir tareas como polticas de administracin de cambios y formacin organizativa que no estn dentro del mbito del desarrollo de software.
La administracin del ciclo de vida de aplicaciones (ALM) se refiere a la creacin y mantenimiento de aplicaciones de software hasta que dejen de utilizarse. Implica varios procesos, herramientas y personas que trabajan conjuntamente para administrar todos los aspectos del ciclo de vida, como las ideas, el diseo y el desarrollo, las pruebas, la produccin, la asistencia tcnica y la posible redundancia.
El SDLC describe la fase de desarrollo de una aplicacin con mayor detalle. Forma parte de la ALM. La ALM comprende todo el ciclo de vida de la aplicacin y trasciende el SDLC. La ALM puede incluir varios SDLC durante el ciclo de vida de una aplicacin.
Adems, Amazon Managed Grafana es un servicio completamente administrado para Grafana de cdigo abierto desarrollado en colaboracin con Grafana Labs. Grafana es una popular plataforma de anlisis de cdigo abierto que le permite consultar, visualizar, alertar y comprender sus mtricas sin importar dnde se almacenen.
Con una actualizacin opcional a Grafana Enterprise, puede obtener acceso a ms complementos de terceros que proporcionan capacidades de supervisin de SDLC, como ServiceNow y Atlassian Jira. Con estos complementos puede agregar detalles de incidentes y entregas de SDLC en Amazon Managed Grafana. A continuacin, puede hacer un seguimiento de estados de incidentes, solicitudes de extraccin y confirmaciones de cdigo, as como supervisar las versiones de software junto con los datos de estado y rendimiento de las aplicaciones, todo en un mismo lugar.
d3342ee215