Resumen acerca del ciclo de vida del desarrollo de software, realizado con base en algunos libros de culto, como el importante trabajo de Jacobson-Booch-Rumbaugh y la súper valiosa contribución de Sutherland-Schwaber d|^^|b
2. ¿QUÉ ES UN CICLO DE VIDA DEL SOFTWARE?
• El ciclo de vida del software es un marco de referencia
que contiene los procesos, las actividades y las tareas
involucradas en el desarrollo, la explotación y el
mantenimiento de un producto software, abarcando la
vida del sistema desde la definición hasta la finalización
de su uso.
4. • En esta fase se recopila, examina y formulan los
requerimientos del cliente y se examina cualquier
restricción que se pueda aplicar. Se definen la arquitectura y
los estándares técnicos a emplearse.
Con base en lo anterior, mediante el análisis de los
requerimientos, se estiman el esfuerzo y tiempo necesarios
para realizar el proyecto.
• PLANIFICACIÓN Y ANÁLISIS
5. • La implementación consiste en la programación del código,
sin importar el lenguaje de programación y la plataforma
tecnológica.
Durante la implementación se deben realizar todas las
pruebas de software orientadas al aseguramiento y
aceptación funcional.
• IMPLEMENTACIÓN
6. • Si bien durante la implementación se realizan pruebas para
el aseguramiento de la calidad y la aceptación funcional del
producto, en esta fase se realizan pruebas especializadas
para validar la robustez, seguridad y desempeño del
software una vez integrado con el ecosistema que tendrá en
el ambiente de producción.
• PRUEBAS E INTEGRACIÓN
7. • Una vez que el producto ha sido validado y se ha certificado
su funcionamiento, robustez, seguridad y desempeño, se
procede a desplegarlo en el ambiente de producción.
La puesta en producción implica actividades como
capacitación, gestión de cambio y el inicio del
mantenimiento.
Siempre es necesario contar con un plan de reverso en caso
de que llegara a fallar la puesta en producción.
• PUESTA EN PRODUCCIÓN
9. • CICLO DE VIDA EN CASCADA
• Cada fase comienza cuando
termina la anterior.
• Asume que se conocen todos
los requisitos.
• Se tarda mucho en disponer
del software.
• Es mejor que no seguir
ningún ciclo de vida.
• La planificación es “ideal”.
10. • CICLO DE VIDA EVOLUTIVO
• Cuanto mayor es un proyecto, menor
es la probabilidad de éxito (informe
CHAOS).
• Obtener todos los requerimientos al
comienzo es prácticamente imposible,
las necesidades de clientes y usuarios
evolucionan durante el desarrollo.
• Ciclos requisitos-desarrollo-evaluación
• El resultado de cada evolución genera
la siguiente versión del software.
• Es recomendable para proyectos de
innovación.
11. • CICLO DE VIDA INCREMENTAL (1)
• Repetición de varios ciclos
de vida en cascada.
• Se suele aplicar a
desarrollos de gran tamaño.
• Al final de cada ciclo se
entrega una versión parcial
del software incrementada
con cierta funcionalidad
nueva respecto a las
anteriores.
12. • CICLO DE VIDA INCREMENTAL (2)
• Los ciclos se repiten hasta
obtener un producto completo.
• Los usuarios disponen antes del
software, aunque no sea
completo y pueden sugerir
mejoras (nuevos requisitos)
13. • CICLO DE VIDA ITERATIVO (1)
• Repetición de varios ciclos de
vida en cascada.
• Se suele aplicar a desarrollos en
los que los requisitos no están
claros.
• Al final de cada ciclo se entrega
una versión completa del
software mejorada respecto a
la anterior.
14. • CICLO DE VIDA ITERATIVO (2)
• Las primeras versiones pueden
ser prototipos que se desechan
posteriormente.
• Los ciclos se repiten hasta
obtener un producto
satisfactorio.
• Los usuarios deben evaluar el
producto en cada iteración y
proponer mejoras.
15. • CICLO DE VIDA EN LOS MÉTODOS ÁGILES
• Son ciclos de vida evolutivos
con iteraciones de corta
duración (2 a 4 semanas) para
favorecer la comunicación con
clientes y usuarios.
• En cada iteración se incorporan
nuevas peticiones de clientes y
usuarios (requerimientos).
16. • MANIFIESTO ÁGIL DE 2001
• http://agilemanifesto.org
/iso/es/principles.html
17. • FRAMEWORK SCRUM
• Scrum es un marco de trabajo simple que
promueve la colaboración en los equipos para
lograr desarrollar productos complejos. Ken
Schwaber y Jeff Sutherland han escrito La
Guía Scrum para explicar Scrum de manera
clara y simple.
• Scrum es un proceso de gestión
que reduce la complejidad en el
desarrollo de productos para
satisfacer las necesidades de los
clientes. La gerencia y los
equipos de Scrum trabajan
juntos alrededor de requisitos y
tecnologías para entregar
productos funcionando de
manera incremental usando el
empirismo.
18. • CICLO DE VIDA DEL PROCESO UNIFICADO
• Proceso iterativo e incremental
propuesto por los creadores de
UML.
• Define 6 fases: inicio,
elaboración, construcción,
transición, producción y
retirada.
• En cada fase del desarrollo se
producen una o más iteraciones
y se obtiene una versión
evaluable del software.
19. • HERRAMIENTAS / FRAMEWORKS /
ESTÁNDARES
TFS Atlassian IBM
Jazz
PMBOK 5; ITIL v3;
COBIT 5; Scrum/ISACA
ISO 25010: ISO 27001; WCAG
2.0; ISO 9001
Para un proceso de desarrollo de software
exitoso es recomendable combinar:
• Los estándares pertinentes
• Los marcos de referencia/trabajo
adecuados y complementarios
• Las herramientas necesarias para facilitar
el trabajo, la gestión y la colaboración
20. REFERENCIAS
• JACOBSON, BOOCH, RUMBAUGH, “El Proceso Unificado de
Desarrollo de Software”, Addison Wesley, 2000.
• SUTHERLAND, SCHWABER, “The Scrum Guide”, 2017.
• PRESSMAN, “Ingeniería del Software” McGraw Hill, 2005.