1
Introduccin a Extreme Programming
Gerardo Fernndez Escribano9-12-2002
Ingeniera del Software II
ndice
1. Qu es eXtreme Programming (XP)?2. Introduccin a la metodologa XP3. Fases de la metodologa XP4. Introduccin a la Prueba Unitaria del software5. Conclusiones
2
1. Qu es eXtreme Programming?
Problema de la Entrega
Problema de la Integracin
1. Qu es eXtreme Programming?
En qu consiste XP?
La Programacin Extrema es una metodologa ligera de desarrollo de software que se basa en la simplicidad, la comunicacin y la realimentacin o reutilizacin del cdigo desarrollado.
Origen de la metodologa XP
Desarrollada por Kent Beck.
Todo en el software cambia. Los requisitos cambian. El diseo cambia. El negocio cambia. La tecnologa cambia. El equipo cambia. Los miembros del equipo cambian. El problema no es el cambio en s mismo, puesto que sabemos que el cambio va a suceder; el problema es la incapacidad de adaptarnos a dicho cambio cuando ste tiene lugar. Kent Beck.
3
2. Introduccin a la metodologa XP
Las cuatro variables
Coste: Mquinas, especialistas y oficinasTiempo: Total y de EntregasCalidad: Externa e InternaAlcance: Intervencin del cliente
2. Introduccin a la metodologa XP
El coste del cambio
Requisitos Anlisis Diseo Implementacin Pruebas Produccin
4
2. Introduccin a la metodologa XP
Uso de la metodologa XP
XP surgo como respuesta y posible solucina los problemas derivados del cambio en losrequerimientosXP se plantea como una metodologa a emplear en proyectos de riesgoXP aumenta la productividad
2. Introduccin a la metodologa XP
Trabajando con Extreme Programming
Iteracin Pruebas de aceptacin
Historias de usuarios
Plan de entregas
Aprobacindel cliente Pequeas
entregas
Siguiente iteracin
Depuracin de erroresNuevas historias de usuariosVelocidad del proyecto
ArchitecturalSpike
Spike
Skike = Pequeo programa que explora posibles soluciones potenciales
Planes deiteracin ltima versin
Requerimientos
Metforadel sistema
Escenarios de test
Estimacionesdudosas
Estimacionesseguras
5
3. Fases del la Metodologa XP
Trabajando con Extreme Programming
6. Reuniones
5. Rotaciones
4. Iteraciones
3. Velocidad de Proyecto
2. Plan de Entregas
1. Historias de Usuario
I. Planificacin
5. Reciclaje
4. Funcionalida mnima
3. Soluciones Puntuales
2. Tarjetas CRC
1. Metfora del Sistema
II. Diseo
4. Integracin
3. Programacin por parejas
2. Unidad de Pruebas
1. Disponibilidad del cliente
III. Desarrollo
2. Pruebas de Aceptacin
1. Implantacin
IV. Pruebas
Extreme Programming
3. Fases de la Metodologa XP
6
3. Fases de la Metodologa XP (planificacin)
Historias de usuario
Las historias de usuario tienen el mismo propsito que los casos de uso.Las escriben los propios clientes, tal y como ven ellos las necesidades del sistema.Las historias de usuario son similares al empleo de escenarios, con la excepcin de que no se limitan a la descripcin de la interfaz de usuario. Tambin conducirn el proceso de creacin de los test de aceptacin(empleados para verificar que las historias de usuario han sidoimplementadas correctamente).Existen diferencias entre estas y la tradicional especificacin de requisitos. La principal diferencia es el nivel de detalle. Las historias de usuario solamente proporcionaran los detalles sobre la estimacin del riesgo y cunto tiempo conllevar la implementacin de dicha historia de usuario.
3. Fases de la Metodologa XP (planificacin)
7
3. Fases de la Metodologa XP (planificacin)
Escribir una Historia(cliente)
Estimar la Historia(programador)
Spike(programador)
Dividir una Historia(cliente)
"No s cmo""Demasiado compleja"
Anlisis
Planificacin
Clasificar las historias
Determinar el alcance(cliente)
Fijar la velocidad(tracker)
en funcin del riesgo(cliente y programador)
3. Fases de la Metodologa XP (planificacin)
Leer las
Historias
Detallar las
Tareas
Tareas sin
asignarSeleccionar y
estimar las Tareas
"Estoy demasiado ocupado""Es demasiado grande"
Programador 1 Programador 2 Programador 3 Programador 4
Tormenta de ideas
Reparto de Tareas
Un plan de iteracin puede verse como:
8
3. Fases de la Metodologa XP (planificacin)
Iteraciones y planes de iteracin
3. Fases de la Metodologa XP (planificacin)
RotacionesLa rotaciones evitarn que las personas se conviertan en si mismas en un cuello de botella. Las rotaciones permitirn que todo el mundoconozca cmo funciona el sistema.
ReunionesReuniones de seguimiento diarias
CorreccionesDeberemos corregir el proceso cuando ste falle. Todo el mundo debe estar al corriente de los cambios. Para que esto funcione correctamente hay que crear unidades de prueba de cada mdulo que se desarrolle.
9
3. Fases de la Metodologa XP (diseo)
Simplicidad
La simplicidad es la llave
Elegir una metfora para el sistema
La tarea de elegir una metfora para el sistema nos permitir mantenerla coherencia de nombres de todo aquello que se va a implementar.
Tarjetas CRC
3. Fases de la Metodologa XP (diseo)
Spike
Un programa Spike, es un programa muy simple que explora una posiblesolucin al problema
Limitando la funcionalidad
Las mejoras al final
Reciclaje
El reciclaje implicar mantener el cdigo limpio y fcil de comprender, modificar y ampliar
10
3. Fases de la Metodologa XP (desarrollo)
Disponibilidad del usuarioEstndares de implementacinUnidades de prueba o testProgramacin parejasIntegracin del cdigoFrecuencia en la integracin del cdigoEl cdigo es propiedad de todosDejar la optimizaciones para el finalNo a las horas extras
3. Fases de la Metodologa XP (desarrollo)
El ciclo de XP
anlisis
test
codificacin
diseo
11
3. Fases de la Metodologa XP (desarrollo)
3. Fases de la Metodologa XP (pruebas)
Unidades de test o pruebas: Pilar bsico
Implantacin:El cdigo ser implantado cuando supere sus correspondientes unidades de test
Proteccin contra fallos: Solucin, un test
Pruebas de aceptacin: Evaluacin del cliente
12
3. Fases de la Metodologa XP (pruebas)
Un da de trabajo con XP
4. Introduccin a la Prueba Unitaria del software
13
5. Conclusiones
Un buen diseo establece una forma directa y planificada de construir unaaplicacin,el diseo es la actividad predominante en XP (diseo diario).XP, y otras metodologas livianas parten de una serie de suposiciones bastantedifciles de encontrar en el mercado del desarrollo del software actual:1. Las personas son claves en los procesos de desarrollo de software.2. Los programadores son profesionales responsables, no requieren de supervisin.3. Los procesos se aceptan y acuerdan, no se imponen.4. Desarrolladores y gerentes comparten el liderazgo del proyecto.5. El trabajo de los desarrolladores con las personas que tienen la experiencia en el
negocio es regular, no eventual.
Conviene recordar que ninguna metodologa har el trabajo por ti, porque ninguna metodologa trabaja sola.
6. Trabajando con XP
14
6. Trabajando con XP
6. Trabajando con XP