2. 6/1/2016 [Nombre del proyecto]
Introducción
• La programación extrema es una metodología ágil que
mas se utiliza. Permiten a un equipo crear frecuentes
lanzamientos de software llamados incrementos. El código
se mantiene en constante edición, movimiento y testeo por
lo que promueve su adaptación a las situaciones.
3. 6/1/2016 [Nombre del proyecto]
Antecedentes
• Las primeras ideas y métodos asociados con la
programación extrema surguieron en la década
de 1990.
• En 1999 se publicó el primer trabajo
fundamental de la materia por Kent Beck.
• Otros trabajos fundamentales como los de Ron
Jeffries que nos proporcionan detalles
técnicos, Beck y Fowler que nos hablan de la
planeación.
4. 6/1/2016 [Nombre del proyecto]
Historias del usuario
Valores
Criterios de las pruebas de iteración
Plan de iteración
Diseño simple
cartas CRC
Soluciones pico
prototipos
Programación
en pareja
integración continua
Prueba de unidad
Pruebas de aceptación
Lanzamiento
Incremento de software
Velocidad calculada del
proyecto
refabricación
5. 6/1/2016 [Nombre del proyecto]
Características
• Utiliza el paradigma de desarrollo orientado a objetos.
• Abarca un conjunto de reglas y prácticas que ocurren en un marco de
trabajo desarrollado en cuatro actividades:
– Planeación
– Diseño
– Codificación
– Prueba
"La programación extrema es una disciplina de desarrollo de software que
se basa en valores de simplicidad, comunicación, retroalimentación y
audacia"
Ron Jeffiries
6. 6/1/2016 [Nombre del proyecto]
Planeación
• Inicia con la creación de las Historias de usuario:
– Describen la características y la funcionalidad requeridas para el
software que se construirá.
– Son escritas por el cliente y les asigna una prioridad.
• Equipo de XP
– Evalúan cada historia y les asignan un costo (semanas de desarrollo).
– Si las historias son muy largas, se le pide al usuario que la fragmente en
historias mas reducidas.
7. 6/1/2016 [Nombre del proyecto]
Planeación
• Acuerdo
– El equipo de trabajo y el cliente establecen qué historias se
incluirán, la fecha de entrega y su agrupamiento para un
lanzamiento.
– Desarrollo del planteamiento:
1. Todas las historias son implementadas (pocas semanas)
2. Se implementan primero las historias de mayor importancia
3. Se implementan primero las historias de mayor riesgo
8. 6/1/2016 [Nombre del proyecto]
Planeación
• Entrega del primer incremento de software.
– Se calcula la velocidad del proyecto (numero de historias implementadas
en el primer lanzamiento)
1. Estima fechas de entrega
2. Determina si existen compromisos excesivos
• El cliente puede agregar, cambiar, dividir o eliminar historias
conforme el desarrollo, por lo que el equipo modificará sus planes
conforme a ello.
9. 6/1/2016 [Nombre del proyecto]
Diseño
• Se sigue el principio "mantenimiento simple”.
• Apoyo de tarjetas CRC (Clase-Responsabilidad- Colaboradores),
que identifica y organiza las clases orientas a objetos.
• La solución pico es un prototipo utilizado cuando en el diseño se
quiere evitar riesgos ante un problema complicado.
• Se apoya en la refabricación cuyo objetivo es mejorar el diseño
interno del código sin alterar su comportamiento externo.
10. 6/1/2016 [Nombre del proyecto]
Diseño
• Se dice que se diseña antes y despues de la
codificación, debido a la refabricación, la misma
contrucción ayuda a identificar que aspectos pueden
mejorarse.
11. 6/1/2016 [Nombre del proyecto]
Codificación
• Desarrollo de pruebas de unidad:
– Reafirma cada una de las historias que debe incluir el
lanzamiento actual (incremento de software).
– El desarrollador se centra en lo que debe implementarse para
pasar la prueba de unidad.
– Una vez que el código esta completo, ofrece una
retroalimentación a los desarrolladores.
12. 6/1/2016 [Nombre del proyecto]
Codificación
• Programación en pareja
– Se recomienda que dos personas trabajen en la codificación
de una historia.
– Cada integrante tiene un papel diferente, mientras que uno se
dedica a la codificación del diseño el otro, supervisa que se
sigan con los estándares de codificación y que se cumpla el
diseño propuesto.
• Integración continua
– El equipo de integración se encarga de incorporar el trabajo de
todos los equipos.
13. 6/1/2016 [Nombre del proyecto]
Pruebas
• Las pruebas de unidad se implementan en un marco de
trabajo automatizable (deben ejecutarse de manera fácil y
repetitiva).
• Pruebas de validación e integración (a diario) dan un
indicativo del proceso e identificación de los riesgos.
• Pruebas de aceptación, las espefica el cliente y se
enfocan en caracterésticas generales y funcionalidades que
sean visibles y revisables al cliente.