El procedimiento de desarrollo (o ciclo de vida del software), que a priori puede parecer una tarea sencilla, consta de una serie de pasos obligatorios que buscan que los programas creados sean eficientes, fiables, seguros y respondan a las necesidades de los usuarios finales.
¿Cuál es el ciclo de vida del software?
El ciclo de vida del desarrollo de software (además conocido como SDLC o Ciclo de vida del desarrollo de sistemas) considera las fases indispensables para validar el desarrollo del software y así garantizar que cumple con los requerimientos para la aplicación y verificación de los procedimientos de desarrollo, asegurando que los métodos utilizados son los adecuados.
Su origen radica en que resulta muy caro subsanar posibles errores que se detectan tarde en la etapa de implementación. Usando metodologías apropiadas, podría detectarse temprano para que los programadores puedan enfocarse en la calidad del software, cumplir con los plazos y los costos asociados.
Aún cuando hay 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 del software, con una terminología bien establecida, al que puede referirse la industria del software. Contiene procesos, actividades y tareas aplicables durante la adquisición, suministro, em desenvolvimento, Operação, mantenimiento o disposición de sistemas, productos y servicios informáticos. Estos procesos del ciclo de vida se llevan a cabo por medio de la participación de los grupos de interés, con el fin final de lograr la satisfacción del cliente ”.
Fases del desarrollo de software
La metodología para el desarrollo de software es una forma sistemática de realizar, administrar y administrar un proyecto para llevarlo a cabo con grandes posibilidades de éxito. Esta sistematización indica cómo se divide un proyecto en módulos más pequeños para estandarizar cómo se gestiona.
A) Sim, una metodología para el desarrollo de software son los procesos a seguir sistemáticamente para diseñar, poner en práctica y mantener un producto software desde que ocurre la necesidad del producto hasta que se cumple el objetivo para el que fue creado.
A) Sim, las etapas del desarrollo de software son las siguientes:
Planejamento
Antes de iniciar un proyecto de desarrollo de un sistema de información, es necesario realizar determinadas tareas que influirán de forma decisiva en su éxito. Estas tareas se conocen como inicio difuso do projeto, puesto que no están sujetos a plazos.
Algunas de las tareas en esta etapa incluyen actividades como determinar el alcance del proyecto, realizar un estudio de viabilidad, analizar los riesgos asociados, estimar el costo del proyecto, su planificación de tiempos y la asignación de recursos a las diferentes etapas del proyecto. esboço, projeto.
Análise
Desde já, debe averiguar qué debe hacer exactamente el software. Por tanto, la etapa de análisis en el ciclo de vida del software corresponde al procedimiento a través de el cual se intenta descubrir lo que verdaderamente se necesita y se cumple una comprensión adecuada de los requerimientos del sistema (las características que debe poseer el sistema).
Projeto
En esta etapa se estudian las posibles opciones de implementación del software a construir, así como se decide su estructura general. El diseño es una etapa compleja y su procedimiento debe realizarse de forma iterativa.
Puede que la respuesta inicial no sea la más adecuada, por lo que en esta circunstancia hay que perfeccionarla. Apesar disto, existen catálogos de patrones de diseño muy útiles que recogen errores que otros han cometido para evitar caer en la misma trampa.
Implementação
En esta etapa hay que seleccionar las herramientas adecuadas, un entorno de desarrollo que facilite el trabajo y un lenguaje de programación adecuado al tipo de software a construir. Esta elección dependerá tanto de las decisiones de diseño que se tomen como del entorno en el que operará el software.
Al programar, intente asegurarse de que el código no sea indescifrable siguiendo diferentes pautas como las siguientes:
- Evite los bloques de control no estructurados.
- Identificar correctamente las variables y su alcance.
- Elija algoritmos y estructuras de datos adecuados para el problema.
- Mantenga la lógica de la aplicación lo más simple factible.
- Documentar y comentar adecuadamente el código de los programas.
- Facilite la interpretación visual del código usando reglas de formato de código previamente acordadas por el equipo de desarrollo.
Además es necesario prestar atención la adquisición de los recursos necesarios para que el software funcione, al mismo tiempo de desarrollar casos de prueba para verificar su funcionamiento tal y como está programado.
Pruebas
Como es humano errar, la etapa de prueba del ciclo de vida del software busca detectar los errores cometidos en las etapas anteriores para corregirlos. Desde já, lo ideal es hacerlo antes de que el usuario final los encuentre. Se dice que una prueba es un éxito si se detecta un error.
Instalación o implementación
La próxima etapa es la puesta en funcionamiento del software, por lo que hay que planificar el entorno teniendo en cuenta las dependencias entre los diferentes componentes del mismo.
Es factible que haya componentes que funcionen correctamente de forma separada, pero al combinarlos provoquen problemas. Por isso, debe usar combinaciones reconocidas que no causen problemas de compatibilidad.
Uso y mantenimiento
Esta es una de las fases más importantes del ciclo de vida del desarrollo de software. Dado que el software no se rompe ni se desgasta con el uso, su mantenimiento incluye tres puntos diferenciados:
- Borrar defectos detectados durante su vida útil (mantenimiento correctivo).
- Adáptelo a las nuevas necesidades (mantenimiento adaptativo).
- Incorporación de nuevas funcionalidades (mantenimiento perfectivo).
Aún cuando suene contradictorio, cuanto mejor sea el software, más tiempo tendrás para invertir en su mantenimiento. El principal motivo es que se utilizará más (inclusive de formas no previstas) e, por tanto, habrá más propuestas de mejora.
Modelos de ciclo de vida del software
Con el fin de facilitar una metodología común entre el cliente y la compañía de software, se han actualizado los modelos de ciclo de vida (o paradigmas de desarrollo de software) para capturar las etapas de desarrollo involucradas y la documentación necesaria, de manera que cada etapa sea validada antes de pasar a la próxima. 1.
Modelo en cascada
En el modelo de ciclo de vida en cascada, las fases anteriores funcionarán una tras otra de forma lineal. Desta forma, solo cuando finaliza una etapa podemos continuar con la próxima, y así progresivamente.
Modelo repetitivo
Este modelo guía el procedimiento de desarrollo de software en repeticiones. A) Sim, proyecta el procedimiento de desarrollo repitiendo cíclicamente cada paso después de cada ciclo en el procedimiento del ciclo de vida del software.
Patrón de espiral
El modelo en espiral es una combinación de los modelos anteriores donde se tiene en cuenta el riesgo. Desta forma, comienzas por determinar metas y limitaciones al comienzo de cada repetición. En la próxima etapa, se crean los modelos prototipo de software, que incluye el análisis de riesgos. Posteriormente se utiliza un modelo estándar para construir el software y por último se prepara el plan para la próxima iteración.
Modelo V
Uno de los grandes problemas del modelo en cascada es que solo se pasa a la próxima etapa si se completa la anterior y no se puede retroceder si hay errores en etapas posteriores. Por isso, el modelo V ofrece más opciones para examinar el software en cada etapa.
En cada etapa se crea la planificación de pruebas y los casos de prueba para verificar y validar el producto en base a los requerimientos del mismo. Desta forma, la verificación y la validación van en paralelo.
Modelo Big Bang
Este es probablemente el modelo más simple, puesto que necesita poca planificación, mucha programación y mucho financiamiento. Este modelo tiene como concepto principal la creación del universo; Então, si reúne fondos y programación, obtiene el mejor producto de software.