Ciclo de vida de desarrollo de software

 

!Hola!



El Ciclo de vida de desarrollo de software (SDLC – Systems Development Life Cycle) es una secuencia de etapas bien definidas y estructuradas que considera lo que se necesita para validar el proceso de desarrollo de software, es decir, es el orden que siguen los procedimientos, actividades, acciones y tareas requeridas para la creación de un producto de software.

Esas fases o etapas son:



¿Qué se busca con esta estructura? Seguir sistemáticamente una serie de pasos para forjar, poner en marcha y mantener un producto de software desde que se define la necesidad del producto hasta que se cumple el objetivo por el cual fue creado.

¿Qué sucede en cada una de estas fases? Veamos:

1. Comunicación: Es el momento en que el cliente contacta con la organización, en este punto se realiza la solicitud del producto, el cliente plantea la necesidad del producto, cuáles son las condiciones del producto. En esta etapa se busca entender los objetivos de las personas involucradas en el proyecto con relación al producto y especificar los requerimientos que ayuden a definir las características y funciones del software.

2. Planificación: En esta fase se produce un “mapa” para guiar a los miembros del equipo de desarrollo del producto de software, es decir, en esta etapa se define varios aspectos que determinara como y sobre que sé trabajar a lo largo del ciclo de vida de desarrollo del software.

¿Cuáles son los objetivos de esta fase?

-Comunicar el ámbito y recursos al personal de desarrollo y al cliente.

-Definir los riesgos y sugerir técnicas de control del riesgo.

-Definir los costes y planificación temporal para la revisión de la gestión.

-Proporcionar un enfoque general del desarrollo del software para todo el personal relacionado con el proyecto.

-Describir cómo se garantizará la calidad y se gestionarán los cambios.

Estos aspectos son planteados en el plan del proyecto (¡el mapa!).

Ejemplo: https://drive.google.com/file/d/1vD2wuylVny9z7z0yRk8uRtdnlxSMznwB/view?usp=sharing

. Análisis: El objetivo de esta fase es especificar de manera detallada lo que el cliente solicita, es decir, se definen los requerimientos del sistema a desarrollar y como debe funcionar este para cumplir con lo que el cliente necesita.

¿Qué se hace en esta fase?

Levantamiento de información: Se busca saber cuales son las tareas que realiza la organización que solicita el producto y cuales de estas tareas se relacionan con el sistema a desarrolla, también se examina que es lo que el usuario final necesita que haga el software y cuáles son los roles que van a interactuar con este.

Definen los requerimientos: Estos son los requisitos con lo que debe cumplir el sistema, pueden ser funcionales (Representan lo que el software debe y no debe hacer, es decir, como debe funcionar) y no funcionales (se refieren a las propiedades de sistema, como su seguridad, mantenibilidad, usabilidad y rendimiento).

Definen las limitaciones del producto y se idéntica el impacto que tendrá el proyecto sobre la organización que solicito el producto.

Aquí puedes encontrar un ejemplo:

https://drive.google.com/file/d/0Bwykwn6YiYb5N3U2RFl5MUdMajJ1MXgwbFc2UXZrdXBXcERn/view?usp=sharing&resourcekey=0-sMQ4TbAzMLWhJNE51W2mkA

 

Definición de los casos de uso: Un caso de uso es la descripción de una actividad o acción. Se representan en un diagrama de casos de uso, este muestra los roles y cuáles de esas actividades debe realizar cada rol, entre estos roles también se incluye el sistema.

Ejemplos:  https://drive.google.com/file/d/0Bwykwn6YiYb5NXlZd3E5VGFjQ1Yzc2QxWTAyU2VRSWN1YXhV/view?usp=sharing&resourcekey=0-LzC8jBCdhIDmrI9YoAZt6A

4. Diseño: En esta fase se busca representar de manera gráfica la solución al problema basándose en los resultados de las fases anteriores. Se diseña la estructura general del proyecto.

En esta etapa sé:

Modela las clases u objetos del sistema: Se crea un “boceto” del sistema con el fin de entender el panorama general del proyecto, se busca entender mejor los requerimientos de sistema a través del diseño de diagramas que describen la estructura interna del producto de software.

Ejemplo:  https://drive.google.com/file/d/0Bwykwn6YiYb5dHNIRDZISXgybXBtekpzTmhBU0s3NG5mRUxJ/view?usp=sharing&resourcekey=0-ZIbZY0uAYnPW8R9Pbo6yuQ

Modelado de la base de datos: Al igual que en la fase anterior se busca definir una estructura, en este caso, la estructura interna de la base de datos del sistema

Ejemplo (En la sección de Modelos Relacionales de las Clases en el Modelo Lógico verás la representación gráfica de las tablas de la base de datos): https://drive.google.com/file/d/0Bwykwn6YiYb5eHRTaks2NVRvYXoyRmY2QVJwS3VVSExodU0w/view?usp=sharing&resourcekey=0-X3g9zP2k94adhUsiKO7eiw

Otros diagramas desarrollados en esta fase:

https://drive.google.com/file/d/0Bwykwn6YiYb5SmwzLTRWX0V3UnF3SjkzTWZiVDAtdEtIQjRR/view?usp=sharing&resourcekey=0-CdB7MjOe_d0Rstoj_w_flg

Diseño de la interfaz de usuario: Se diseña la parte del sistema con la cual el usuario interactúa directamente, se busca una interfaz basada en los requerimientos del sistema previamente establecidos que permita al sistema y a los usuarios cumplir con sus objetivos.

Nota: En ocasiones las fases de análisis y diseño se trabajan como una sola.

5. Implementación o desarrollo: En esta fase se definen las herramientas adecuadas para el desarrollo, un entorno de desarrollo y el lenguaje de programación, entre otros productos, que faciliten la creación del producto. También hay que tener en cuenta la adquisición de recursos necesarios para que el software funcione.

6. Pruebas: cometer errores es de humanos, esta fase busca detectar defectos en el sistema o producto de software antes de su lanzamiento, aunque lo más conveniente es realizar pruebas de software desde el inicio del ciclo de vida de desarrollo del software.

Si deseas entender mejor el por qué es conveniente realizar pruebas tempranas te recomiendo el siguiente artículo: EarlyTesting: Aliado estratégico en las pruebas de software de Ever Curiel Moran, 2.º vicepresidente Calidad de Software at Banco BHD León

7. Instalación y despliegue: En esta etapa se pone el software en funcionamiento, es decir, se instala el software, se prueba la integración, la adaptabilidad, la portabilidad, la seguridad, usabilidad de este y se instalan las configuraciones posteriores necesarias. Se le entrega el producto al solicitante que lo evalúa y que le da retroalimentación, misma que se basa en dicha evaluación.

8. Mantenimiento: Por último, pero no menos importante en el ciclo de vida de desarrollo del software la fase de uso y mantenimiento, en esta el producto ya está terminado y se requiere ser monitoreado y mantenimiento de forma continua para asegurarse que el sistema siga funcionando correctamente. Dado que el software ni se rompe ni se desgasta con el uso, su mantenimiento incluye tres puntos diferenciados:

-Mantenimiento Correctivo: Se refiera a eliminar los defectos detectados durante la vida útil del producto.

-Mantenimiento adaptativo: busca como adaptarlo a nuevas necesidades que surjan en la organización que lo solicito.

-Mantenimiento perfectivo: Se centra en añadirle nuevas funcionalidades al sistema desarrollado con el objetivo de tener un producto completo.

 Las etapas del ciclo de vida del desarrollo de software se pueden poner en práctica de distintas maneras. En ámbito de desarrollo de software existen básicamente dos tipos de metodología, la metodología de desarrollo tradicionales y la metodología de desarrollo ágil, está a su vez se dividen en otras.

Si deseas ver una de estas metodologías te invito a leer este artículo. Metodología de desarrollo ágil scrum

Próximamente, estaré hablado sobre metodologías de desarrollo tradicionales con ejemplos.

Esto es todo por hoy, espero que este artículo te haya servido ya sea que estés empezando o seas un experto en el área, te invito a compartirlo con tus amigos y colegas, si tienes alguna pregunta u observación sobre el tema no dudes en dejarlo en la sección de comentarios.

¡Sígueme en  LinkedIn Betania Jimenez!



¡Gracias por leer!



 

Comentarios

Entradas más populares de este blog

Niveles de pruebas de software

7 principios de las pruebas de calidad de software

Conceptos básicos para un QA