4. Desarrollo ágil de software

15,539 views

Published on

El desarrollo ágil de software son métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requerimientos y soluciones evolucionan mediante la colaboración de grupos auto organizados y multidisciplinarios.

Published in: Education
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
15,539
On SlideShare
0
From Embeds
0
Number of Embeds
136
Actions
Shares
0
Downloads
588
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

4. Desarrollo ágil de software

  1. 1. Sesión IV: Desarrollo ágil Ing. Luis Alfredo Fernández Vizcarra lfernandez@speedy.com.pe lfernandez@coesi.com.pe
  2. 2. Vistazo rápido: Desarrollo ágil ¿Qué es? •Combina una filosofía y un conjunto de directrices de desarrollo. •La filosofía busca satisfacción del cliente y cumplir con el tiempo de entrega. •Las direcciones de desarrollo resaltan la entrega del software y la comunicación activa y continua entre los desarrolladores y los clientes. ¿Quién lo hace? •Los ingenieros de software y otros participantes del proyecto trabajan juntos en un equipo ágil: un equipo con organización propia y que controla su propio destino. ¿Por qué es importante? •Representa una opción razonable a la ingeniería convencional para ciertas clases de software y ciertos tipos de proyectos de software. ¿Cuáles son los pasos? •Las actividades básicas del marco de trabajo se conservan, pero éstas se conforman como un conjunto mínimo de tareas que empuja al equipo de proyecto hacia la construcción y la entrega. ¿Cuál es el producto obtenido? •Es un “incremento de software en funcionamiento”, el cual se entrega al cliente en una fecha prometida. ¿Cómo puedo estar seguro de que lo he hecho correctamente? •Si el equipo está de acuerdo en que el proceso funciona y producen incrementos de software entregables que satisfacen al cliente.
  3. 3. Manifiesto del Desarrollo Ágil Los individuos y sus interacciones, sob re los procesos y las herramientas 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
  4. 4. ¿QUÉ ES LA AGILIDAD? CARACTERÍSTICAS Es más que una respuesta efectiva al cambio. Estimula las estructuras y actitudes de los equipos para la comunicación sea más fácil. Resalta la entrega rápida del software operativo y le resta importancia a los productos de trabajo intermedio. Incorpora al cliente una parte del equipo de desarrollo.
  5. 5. Principios de agilidad Satisfacción al cliente Adaptación a los cambios Entregas de software Trabajo en equipo Motivación en el trabajo Diálogo Software funcional Desarrollo sostenible Atención continua Simplicidad Organización Efectividad
  6. 6. ¿QUÉ ES UN PROCESO ÁGIL? Un proceso ágil debe ser adaptable en forma incremental a un proyecto y a condiciones técnicas que cambian con rapidez. Incluye una estrategia incremental de desarrollo. Los incrementos de software deben entregarse en cortos periodos para que la adaptación mantenga un buen ritmo con el cambio. Permite al cliente evaluar el incremento de software de manera regular, proporcionar la retroalimentación al equipo, e influir sobre las adaptaciones del proceso para adecuar la retroalimentación
  7. 7. POLÍTICAS DEL DESARROLLO ÁGIL Existe un debate considerable sobre los beneficios y la aplicabilidad del desarrollo ágil del software como alternativa a procesos de ingeniería del software más convencionales. Existen varios modelos de proceso, cada uno con un enfoque sutilmente diferente. Dentro de cada modelo hay un conjunto de “ideas” (tareas de trabajo).Muchos conceptos de agilidad son tan sólo adaptaciones de buenos conceptos de la ingeniería del software. “Hay mucho que ganar si se considera lo mejor de ambas escuelas, y nada que ganar si se denigra alguno de los dos enfoques”
  8. 8. FACTORES HUMANOS El desarrollo ágil se centra en los talentos y las habilidades de los individuos, puesto que el proceso se ajusta a personas y equipos específicos. RASGOS CLAVES ENTRE LA GENTE DE UN EQUIPO Y EL EQUIPO MISMO: - Competencia - Enfoque común - Colaboración - Habilidad para la toma de decisiones - Capacidad de resolución de problemas confusos - Confianza y respeto mutuo - Organización propia
  9. 9. MODELOS ÁGILES DEL PROCESO: Programación Extrema (PE) PROGRAMACIÓN EXTREMA (PE) Características Sugiere algunas técnicas innovadores y poderosas que permiten a un equipo ágil crear frecuentes lanzamientos de software al entregar características y funcionalidad que describe y después prioriza el cliente. Organizada como cuatro actividades del marco de trabajo: Enfoque orientado a objetos Planeación Diseño Codificación Pruebas
  10. 10. Programación Extrema (PE) Planeación Diseño Prueba Incremento del Software Velocidad calculada del proyecto Codificación Historias de usuario Valores Criterios de las pruebas de iteración Plan de iteración Diseño simple Cartas CRC Programación en parejas Prueba unitaria Pruebas de aceptación Soluciones pico Prototipos Lanzamiento refabricación Integración continua
  11. 11. DESARROLLO ADAPTATIVO DE SOFTWARE (DAS) CARACTERÍSTICAS Destaca la colaboración humana y la organización propia del equipo Utiliza un proceso iterativo que incorpora : La planeación del ciclo adaptativo Métodos de recopilación de requisitos relativamente rigurosos Un ciclo iterativo de desarrollo: Grupos enfocados en el cliente Revisiones técnicas formales como mecanismos de retroalimentación en tiempo real. Organizado con tres actividades del marco de trabajo: Especulación Colaboración Aprendizaje
  12. 12. Desarrollo adaptativo de software (DAS) Especulación Colaboración Incremento del Software Ajuste para ciclos subsecuentes Aprendizaje Planeación del ciclo adaptativo Enunciado de la misión Restricciones del proyecto Requisitos básicos Plan de lanzamiento en el tiempo Recopilación de requisitos JAD Especificaciones mínimas Lanzamiento Componentes implementados / probados Grupos de enfoque para retroalimentación Revisiones técnicas formales Post mortem
  13. 13. Método de Desarrollo de Sistemas Dinámicos (MDSD) Define tres diferentes ciclos iterativos: Precedidos por dos actividades del ciclo de vida adicionales: Aboga por el uso de programas y sugiere que solo se requiere el trabajo suficiente para cada incremento de software y así facilitar el movimiento hacia el incremento próximo. CARACTERÍSTICAS Iteración funcional del modelo Iteración de diseño Construcción e implementación Estudio de factibilidad Estudio de negocios
  14. 14. LA MELÉ CARACTERÍSTICAS - Uso de un conjunto de patrones de proceso de software efectivos en proyectos con límites de tiempo muy ajustados, requisitos cambiantes y que son críticos para el negocio. - Cada patrón de proceso define un conjunto de tareas de desarrollo y permite al equipo de melé construir un proceso que se adapte a las necesidades del proyecto.
  15. 15. Flujo de Proceso de la Melé
  16. 16. CRISTAL CARACTERÍSTICAS - Conjunto de modelos ágiles de proceso que pueden adaptarse a las características específicas de un proyecto. - Adopta una estrategia iterativa, pero se ajusta al rigor del proceso para incluir proyectos de tamaños y complejidades diferentes.
  17. 17. DESARROLLO CONDUCIDO POR CARACTERÍSTICAS (DCC) CARACTERÍSTICAS - Es algo más “formal” que otros métodos ágiles. - Concede una mayor importancia al proyecto y a su gestión que otros enfoques ágiles.
  18. 18. Desarrollo conducido por características Más forma que contenido Desarrollar un modelo general Una lista de características agrupadas en conjuntos y áreas de contenido Elaborar una lista de características Un plan de desarrollo Propietarios de clase Propietarios del conjunto de características Plan por características Un paquete de diseño (secuencias) Diseño por característica Función cliente – valor completado Construcción por característica
  19. 19. MODELADO ÁGIL (MA) CARACTERÍSTICAS - El modelado es esencial para todos los sistemas, pero que la complejidad, tipo y tamaño del modelo debe ajustarse al software que será construido. - Proporciona una guía útil para los profesionales durante las tareas de análisis y diseño.
  20. 20. Bruegge, B., Dutoit, A.H., Ingeniería del Software Orientado a Objetos, cap. 1 Jacobson, I., Booch, G., Rumbaugh, J., El Proceso Unificado de Desarrollo de Software, cap. 1 Pressman, R.S., Ingeniería del Software. Un enfoque práctico, cap. 1 y 2 Sommerville, I., Ingeniería de Software, cap. 1, 2 y 3 Referencias

×