Descarga la aplicación para disfrutar aún más
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
Compartir