Ciclo de vida del desarrollo de software

En esta lección aprenderás que es el Ciclo de Vida del Desarrollo de Software sus principales etapas , beneficios y los diferentes modelos de implementación que existen.

Software

El software es un conjunto de instrucciones, datos o programas que se utilizan para operar computadoras y ejecutar tareas específicas. Es lo opuesto al hardware, que describe los aspectos físicos de una computadora.

Software es un término genérico que se utiliza para referirse a aplicaciones, scripts y programas que se ejecutan en un dispositivo.

Figura 1. Hardware y Software

Las dos categorías principales de software son software de aplicación y software de sistema . Una aplicación es un software que satisface una necesidad específica o realiza tareas. El software del sistema está diseñado para ejecutar el hardware de una computadora y proporciona una plataforma para que las aplicaciones se ejecuten sobre él.

Figura 2. Software de aplicación

Otros tipos de software incluyen software de programación, que proporciona las herramientas de programación que necesitan los desarrolladores de software; middleware , que se encuentra entre el software del sistema y las aplicaciones; y software de controlador , que opera dispositivos y periféricos informáticos.

Figura 3. Software de sistema

El software inicial se escribió para computadoras específicas y se vendió con el hardware en el que se ejecutaba. En la década de 1980, el software comenzó a venderse en disquetes y más tarde en CD y DVD. Hoy en día, la mayor parte del software se compra y se descarga directamente a través de Internet. El software se puede encontrar en los sitios web de los proveedores o en los sitios web de los proveedores de servicios de aplicaciones .

SDLC, o ciclo de vida de desarrollo de software, es un conjunto de pasos que se utilizan para crear aplicaciones de software. Estos pasos dividen el proceso de desarrollo en tareas que luego se pueden asignar, completar y medir.

SDLC o el ciclo de vida de desarrollo de software es un proceso que produce software con la más alta calidad y el menor costo en el menor tiempo posible. SDLC proporciona un flujo de fases bien estructurado que ayuda a una organización a producir rápidamente software de alta calidad que está bien probado y listo para su uso en producción.

El SDLC ofrece una perspectiva de las distintas fases de trabajo necesarias para producir software. Comprender este trabajo permite a los equipos evitar los problemas de entrega al crear y poseer controles y contrapesos en las primeras etapas de nuestro ciclo de vida de desarrollo y entrega

Fases del SDLC

A continuación se mencionan las diferentes etapas del ciclo de vida de desarrollo de software

Planificación

En esta fase se Identifica si existe o no la necesidad de un nuevo software para lograr los objetivos estratégicos de la empresa. Este es un plan preliminar (o un estudio de viabilidad) para que la empresa adquiera los recursos necesarios para construir una infraestructura para modificar o mejorar un servicio. El propósito de este paso es averiguar el alcance del problema y determinar las soluciones. En esta etapa se deben considerar los recursos, costos, tiempo, beneficios y otros elementos.

Requerimientos

La segunda fase es donde las empresas trabajarán en la fuente de su problema o la necesidad de un cambio. Aquí es donde los equipos consideran los requisitos funcionales del proyecto o la solución. También es donde tiene lugar el análisis del sistema, o el análisis de las necesidades de los usuarios finales para garantizar que el nuevo sistema pueda satisfacer sus expectativas. El análisis de sistemas es vital para determinar cuáles son las necesidades de una empresa, así como cómo pueden satisfacerse, quién será responsable de las partes individuales del proyecto y qué tipo de cronograma se debe esperar.

Imagina que estás contratado para diseñar una casa. Antes de comenzar a sentar las bases, primero debes comprender lo que quiere el propietario. Este punto de partida se conoce como obtención de requerimientos.

El dueño de casa, necesita tener un gimnasio, un baño, tres dormitorios y una sala de estar. Obtener los requisitos implica no solo escuchar lo que el cliente te está diciendo, sino  hacer también preguntas para aclarar lo que el cliente no te ha dicho. 

Por ejemplo, ¿te pareció extraño que esta casa no tenga cocina?, esa sería una pregunta natural de seguimiento. ¿Cree necesitar una cocina? ¿Deben todas las habitaciones ser del mismo tamaño? Si no, ¿cuál debería ser más grande o más pequeña? ¿Qué tan grande debe ser la casa en general? ¿Hay restricciones de diseño externo? Por ejemplo, las restricciones de construcción establecidas por la comunidad.

¿Qué habitaciones deberían estar más separadas? ¿Qué habitaciones deben estar juntas? El arte de obtener requisitos se encuentra al hacer preguntas reveladoras de seguimiento.

Diseño

La tercera fase describe, en detalle, las especificaciones, características y operaciones necesarias que satisfarán los requisitos funcionales del sistema propuesto que se implementará. Este es el paso para que los usuarios finales discutan y determinen sus necesidades específicas de información comercial para el sistema propuesto. Es durante esta fase que considerarán los componentes esenciales (hardware y / o software), estructura (capacidades de red), procesamiento y procedimientos para que el sistema logre sus objetivos

Una vez que se responden estas preguntas, ahora tenemos un conjunto inicial de requerimientos permitiéndonos comenzar a pensar en posibles diseños. La actividad de diseño implica tomar requisitos y esbozar una solución. Esta actividad implica producir un diseño conceptual y luego un diseño técnico, que da como resultado dos tipos de artefactos correspondientes, maquetas conceptuales (Conceptual Mockups) y diagramas técnicos

Figura 4. Modelo conceptual y técnico

Desarrollo

La cuarta fase es cuando comienza el trabajo real, en particular, cuando se contrata a un programador, ingeniero de redes y / o desarrollador de bases de datos para que realice el trabajo principal en el proyecto. Este trabajo incluye el uso de un diagrama de flujo para garantizar que el proceso del sistema esté organizado correctamente. La fase de desarrollo marca el final de la sección inicial del proceso. Además, esta fase significa el inicio de la producción. La etapa de desarrollo también se caracteriza por la instilación y el cambio. Centrarse en el entrenamiento puede ser un gran beneficio durante esta fase.

Figura 4. Código en lenguaje Java

Integración y pruebas

La quinta fase implica la integración de sistemas y las pruebas del sistema (de programas y procedimientos), normalmente realizadas por un profesional de aseguramiento de la calidad (QA), para determinar si el diseño propuesto cumple con el conjunto inicial de objetivos comerciales. Las pruebas pueden repetirse, específicamente para verificar errores, errores e interoperabilidad. Esta prueba se realizará hasta que el usuario final lo considere aceptable. Otra parte de esta fase es la verificación y validación, las cuales ayudarán a garantizar la finalización exitosa del programa.

Implementación

La sexta fase es cuando se escribe la mayor parte del código del programa. Además, esta fase implica la instalación real del sistema recientemente desarrollado. Este paso pone el proyecto en producción moviendo los datos y componentes del sistema antiguo y colocándolos en el nuevo sistema a través de una transición directa. Si bien esto puede ser un movimiento arriesgado (y complicado), la transición generalmente ocurre durante las horas de menor actividad, minimizando así el riesgo. Tanto los analistas de sistemas como los usuarios finales deberían ver ahora la realización del proyecto que ha implementado cambios

Operaciones y mantenimiento

La séptima y última fase implica el mantenimiento y las actualizaciones periódicas necesarias. Este paso es cuando los usuarios finales pueden ajustar el sistema, si lo desean, para mejorar el rendimiento, agregar nuevas capacidades o cumplir con los requisitos adicionales de los usuarios.

El SDLC ofrece una perspectiva de las distintas fases de trabajo necesarias para producir software. Comprender este trabajo permite a los equipos evitar los problemas de entrega al crear y poseer controles y contrapesos en las primeras etapas de nuestro ciclo de vida de desarrollo y entrega.

Modelos del SDLC

Existen varios modelos de ciclo de vida de desarrollo de software definidos y diseñados que se siguen durante el proceso de desarrollo de software. Estos modelos también se denominan “Modelos de proceso de desarrollo de software”. Cada modelo de proceso sigue una serie de pasos únicos para su tipo para garantizar el éxito en el proceso de desarrollo de software

  • Modelo de cacada
  • Modelo iterativo
  • Modelo en espiral
  • Modelo V
  • Modelo Big Bang

Otras metodologías relacionadas son Agile Model, RAD Model, Rapid Application Development, Prototyping Models, DVOPS.

Figura 5. Metodología SCRUM

ISO/IEC 12207 – Information Technology / Software Life Cycle Processes es el estándar para los procesos de ciclo de vida del software de la organización ISO. Siendo el proceso un conjunto de tareas, y un conjunto de pasos que involucran actividades, restricciones y recursos, produciendo una salida determinada, es decir un proceso es un conjunto de actividades y tareas que están relacionadas, y al ejecutarse conjuntamente transforman una entrada en una salida.

Beneficios del SDLC

Se han definido varios modelos / métodos de ciclo de vida de desarrollo de software (SDLC). Cada modelo de proceso sigue una serie de pasos únicos para su tipo para garantizar el éxito en el proceso de desarrollo de software. Hay muchas diferencias. Un buen modelo para un proyecto de software quizás no sea el mejor para otro proyecto de software. Depende de la escala del proyecto, el marco de tiempo y muchos más. Así que deberíamos tener una buena idea sobre los principales métodos SDLC y sus ventajas y desventajas.

Referencias

ALTVATER, A. L. E. X. A. N. D. R. A. (2020, 8 abril). What Is SDLC. stackify. https://stackify.com/what-is-sdlc/

Harnes, H. (2021, 7 octubre). Understanding The Phases Of The Software Development Life Cycle. harness. https://harness.io/blog/software-development-life-cycle/

SDLC: Seven Phases of the System Development Life Cycle. (s. f.). Innovativearchitects. Recuperado 9 de octubre de 2021, de https://www.innovativearchitects.com/KnowledgeCenter/basic-IT-systems/system-development-life-cycle.aspx

ISO/IEC/IEEE 12207:2017. (2021, 4 febrero). ISO. https://www.iso.org/standard/63712.html