El desarrollo agil

Ingenieria de SoftwareDescripción completa

Views 189 Downloads 6 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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