Ciclo de vida de desarrollo de software
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:
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.
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.
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:
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
Publicar un comentario