Ingenieria de SoftwareDescripción completa
Views 189 Downloads 6 File size 1MB
Sesión IV: Desarrollo ágil
Ing. Luis Alfredo Fernández Vizcarra [email protected] [email protected]
Vistazo rápido: Desarrollo ágil ¿Qué es?
¿Quién lo hace?
•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.
• 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?
¿Cuáles son los pasos?
• Representa una opción razonable a la ingeniería convencional para ciertas clases de software y ciertos tipos de proyectos de software.
• 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?
¿Cómo puedo estar seguro de que lo he hecho correctamente?
• Es un “incremento de software en funcionamiento”, el cual se entrega al cliente en una fecha prometida.
• Si el equipo está de acuerdo en que el proceso funciona y producen incrementos de software entregables que satisfacen al cliente.
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
CARACTERÍSTICAS
¿QUÉ ES LA AGILIDAD? 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.
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
¿QUÉ ES UN PROCESO ÁGIL? Incluye una estrategia incremental de desarrollo.
Un proceso ágil debe ser adaptable en forma incremental a un proyecto y a condiciones técnicas que cambian con rapidez.
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
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”
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
MODELOS ÁGILES DEL PROCESO: Programación Extrema (PE) 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.
PROGRAMACIÓN EXTREMA (PE)
Planeación
Características
Diseño
Enfoque orientado a objetos
Organizada como cuatro actividades del marco de trabajo:
Codificación Pruebas
Programación Extrema (PE) Historias de usuario Valores Criterios de las pruebas de iteración Planeación Plan de iteración
Diseño simple Cartas CRC
Soluciones pico Prototipos
Diseño refabricación
Prueba
Codificación
Lanzamiento Incremento del Software Velocidad calculada del proyecto
Pruebas de aceptación
Programación en parejas Prueba unitaria
Integración continua
DESARROLLO ADAPTATIVO DE SOFTWARE (DAS) La planeación del ciclo adaptativo
CARACTERÍSTICAS
Destaca la colaboración humana y la organización propia del equipo
Métodos de recopilación de requisitos relativamente rigurosos Grupos enfocados en el cliente
Utiliza un proceso iterativo que incorpora : Un ciclo iterativo de desarrollo:
Organizado con tres actividades del marco de trabajo:
Especulación Colaboración
Aprendizaje
Revisiones técnicas formales como mecanismos de retroalimentación en tiempo real.
Desarrollo adaptativo de software (DAS) 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 Colaboración
Especulación
Aprendizaje
Lanzamiento Incremento del Software Ajuste para ciclos subsecuentes
Componentes implementados / probados Grupos de enfoque para retroalimentación Revisiones técnicas formales Post mortem
Método de Desarrollo de Sistemas Dinámicos (MDSD)
CARACTERÍSTICAS
Define tres diferentes ciclos iterativos:
Precedidos por dos actividades del ciclo de vida adicionales:
Iteración funcional del modelo Iteración de diseño Construcción e implementación
Estudio de factibilidad Estudio de negocios
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.
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.
Flujo de Proceso de la Melé
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.
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.
Desarrollo conducido por características Desarrollar un modelo general
Elaborar una lista de características
Más forma que contenido
Una lista de características agrupadas en conjuntos y áreas de contenido
Plan por características
Diseño por característica
Construcción por característica
Un plan de desarrollo Propietarios de clase Propietarios del conjunto de características
Un paquete de diseño (secuencias)
Función cliente – valor completado
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.
Referencias
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