Logo Studenta

análisis de sistemasUnidad 7 2 - Desarrollo Agil

¡Este material tiene más páginas!

Vista previa del material en texto

DESARROLLO DESARROLLO 
ÁGIL
ANÁLISIS DE SISTEMAS
UNIDAD VII: MÉTODOS ÁGILES
¿Qué es?
� La Ingeniería de Software Ágil combina una 
filosofía con un conjunto de lineamientos de 
desarrollo. 
La filosofía pone énfasis en satisfacción del cliente � La filosofía pone énfasis en satisfacción del cliente 
y en la entrega rápida de software incremental, 
métodos informales, mínima ingeniería de 
software. 
� Enfatizan la entrega sobre el análisis y el diseño, y 
la comunicación activa y continua entre 
desarrollador-cliente.
Manifiesto por el 
desarrollo ágil
� Ken Beck en 2001 y otros 16 notables lo firmaron.
� Según el Manifiesto se valora:
◦ Los individuos y sus interacciones, sobre los procesos y las 
herramientasherramientas
◦ El software que funciona, más que la documentación 
exhaustiva
◦ La colaboración con el cliente, y no tanto la negociación 
del contrato
◦ Responder al cambio, mejor que apegarse a un plan
Las metodologías ágiles 
enfatizan en
� Comunicación cara a cara, 
� Software funcionando como la prueba 
fundamental del progreso, 
� Técnicas de ingeniería,� Técnicas de ingeniería,
� Demostración frecuente de progreso,
� Colaboración entre negocio y equipo de 
desarrollo,
� Retrospectivas y mejora continua.
Alternativa a la Ing. de 
Software convencional
� El desarrollo ágil proporciona beneficios 
importantes, pero no es aplicable a todos los 
proyectos, productos, personas y situaciones.
¿ Se descartan los valiosos principios, conceptos, 
métodos y herramientas de la Ing. De Sw?
No. Sólo representa un alternativa a la Ing. de Sw. 
convencional para ciertos tipos de software y de 
proyectos. 
¿Qué es la agilidad?
� Según Jacobson Agilidad es una palabra 
que describe un proceso del software 
moderno.
� La agilidad puede aplicarse a cualquier � La agilidad puede aplicarse a cualquier 
proceso de software, es necesario que el 
equipo adapte las tareas, hacerlas directa, 
hacer una planificación fluida, eliminar 
productos de trabajo que no sean 
esenciales, poner énfasis en la entrega 
incremental.
Programación Extrema 
(XP)
� Beck define cinco valores. Cada 
uno de ellos se usa como un motor 
para actividades, acciones y 
tareas.tareas.
�Comunicación
� Simplicidad
� Retroalimentación
� Valentía 
� Respeto
Valores de XP
◦ Comunicación eficaz entre los ingenieros de 
software y otros participantes. Énfasis en la 
colaboración.
◦ Simplicidad: que los desarrolladores diseñen sólo 
las necesidades inmediatas, en lugar de 
considerar las del futuro.considerar las del futuro.
◦ Retroalimentación de 3 fuentes: software 
implementado, el cliente y miembros del equipo 
de desarrollo.
◦ Valentía para diseñar para hoy y no sucumbir a 
diseñar para mañana. 
◦ Respeto: con cada entrega exitosa, el equipo 
desarrolla más respeto por el proceso XP
Proceso de XP
Planeación
Diseño
Codificación
Plan de iteración
Prototipos
Codificación
Prueba
Incremento 
Programación 
de a pares
Pruebas de aceptación
Evolución de los ciclos 
de vida
Desarrollo Adaptativo 
de Software (DAS)
� Propuesto por Highsmith para sistemas 
complejos. 
� Sus fundamentos se centran en:
� Colaboración humana 
� Organización propia del equipo.
� Ciclo de vida: 3 fases
� Especulación
� Colaboración
� Aprendizaje
Proceso DAS
Especulación Colaboración
Aprendizaje
Incremento 
Ciclo de vida DAS
�� Especulación: Especulación: planeación adaptativa del 
ciclo. Definir el conjunto de ciclos de 
entrega (incrementos). Se revisa al terminar 
cada ciclo.
�� Colaboración: Colaboración: comunicación y trabajo en �� Colaboración: Colaboración: comunicación y trabajo en 
equipo y confianza.
�� Aprendizaje: Aprendizaje: los desarrolladores 
sobreestiman su propia comprensión, por lo 
que deberán mejorar su nivel de 
entendimiento.
Scrum
� Concebido por Sutherland, su nombre 
proviene de una jugada de rugby.
� Define principios que guían las 
actividades del proceso: requerimientos, 
análisis, diseño, evolución y entrega.análisis, diseño, evolución y entrega.
� Utiliza un conjunto de patrones de 
proceso para proyectos con tiempos 
apretados y requerimientos cambiantes.
� Dentro de cada actividad se trabaja con 
un patrón de proceso: sprint o carrera.
Flujo del Scrum
Patrones de proceso
� Retraso (backlog): lista de prioridades de 
los requerimientos, se pueden ir 
agregando otros aspectos al retraso y el 
gerente evalúa las prioridades.
� Sprint: unidad de trabajo que debe 
ajustarse a una caja de tiempo (30 días). 
Durante el sprint no se introducen 
cambios, lo que brinda un ambiente a 
corto plazo estable.
Patrones de proceso (II)
� Reuniones Scrum: breves de 15 minutos 
en forma diaria:
�¿Qué hiciste desde la última reunión?
�¿Qué obstáculos estás encontrando?
�¿Qué planeas hacer mientras llega la siguiente 
reunión?
�Un maestro Scrum dirige la reunión.
�Ayuda a descubrir problemas potenciales de 
manera temprana. 
�Lleva a la “socialización del conocimiento”.
Patrones de proceso (III)
�Demostraciones preliminares:
Implementar un incremento al cliente , 
para que lo evalúe.
Las demostraciones preliminares no Las demostraciones preliminares no 
contienen toda la funcionalidad 
planeada, sino hasta que se cumpla la 
caja de tiempo establecida.
Método de desarrollo de 
sistemas dinámicos (MDSD):
�MDSD proporciona una estructura para 
construir y dar mantenimiento a sistemas 
que cumplan restricciones apretadas de que cumplan restricciones apretadas de 
tiempo mediante la realización de 
prototipos incrementales en un ambiente 
controlado de proyectos.
Ciclo de vida de MDSD
� Estudio de factibilidad
� Estudio del negocio: requerimientos
� Iteración del modelo funcional: prototipos que 
muestran al cliente la funcionalidad
Diseño e iteración de la construcción: revisan � Diseño e iteración de la construcción: revisan 
prototipos. 
� Implementación: incremento operacional.
Criystal
� Cockburn creó la Familia Criystal a fin de 
obtener un enfoque de Maniobrabilidad.
� La familia Criystal es un conjunto de � La familia Criystal es un conjunto de 
ejemplos de procesos ágiles que han 
demostrado ser efectivos para diferentes 
tipos de proyectos.
Buenas prácticas
Programación de a Pares
� Todo el software de producción se construye con dos 
programadores en la misma máquina
� Se hace una revisión online del código, resultando en 
un mejor diseño, testing e implementación
� Mejora la comunicación dentro del equipo

Continuar navegando