1. Metodología XP
Integrantes:
Jailimer Montañez
Álvaro Rivas
2. HISTORIA
La Programación Extrema, como proceso de
creación de software diferente al
convencional, nace de la mano de kent beck
(autor de los libros más influyentes sobre el
tema).
Chrysler Corporation hacía tiempo que
estaba desarrollando una aplicación de
nóminas, pero sin demasiado éxito por parte
de la gente que tenía en el proyecto. El
verano de 1996, Beck entró en nómina en la
compañía y se le pidió de hacer esta
aplicación como trabajo. Es en esta
aplicación cuando nace la Programación Kent Beck Ingeniero del software
Extrema como tal
5. Fases
Planificación: Es la primera actividad en el proceso de
desarrollo. Comienza creando una serie de historias de
usuarios (similares a los casos de uso) que describen la
funcionalidad del software que se va a construir.
Diseño: El diseño en la programación extrema sigue el
principio de hacerlo todo simple .El diseño se va modificando
a lo largo de todo el proceso de desarrollo.
Codificación: se recomienda que después de diseñar las
historias el equipo no debe comenzar la codificación sino que
debe desarrollar una serie de pruebas de unidad que les
ayuden a centrarse en lo que debe implementase para pasar
esa prueba.
Pruebas: Las pruebas de unidad creadas deber ser
automatizadas para que puedan ejecutarse de manera fácil y
rápida.
6. Las características fundamentales del
método son:
-Desarrollo iterativo e incremental: pequeñas mejoras, unas tras
otras.
-Pruebas unitarias continuas, frecuentemente repetidas y
automatizadas, incluyendo pruebas de regresión
-Programación en parejas: se recomienda que las tareas de
desarrollo se lleven a cabo por dos personas en un mismo puesto.
-Frecuente interacción del equipo de programación con el cliente o
usuario.
Corrección de todos los errores antes de añadir nueva
funcionalidad. Hacer entregas frecuentes.
-Propiedad del código compartida: en vez de dividir la
responsabilidad en el desarrollo de cada módulo en grupos de
trabajo distintos, este método promueve el que todo el personal
pueda corregir y extender cualquier parte del proyecto.
Simplicidad en el código: La programación extrema apuesta que en
más sencillo hacer algo simple y tener un poco de trabajo extra para
cambiarlo si se requiere, que realizar algo complicado y quizás
nunca utilizarlo.
7. Valores de XP
Comunicación: Crear software requiere de
sistemas comunicados.
Simplicidad: Empezar con lo necesario y
requerido y trabajar desde ahí.
Retroalimentación: Del sistema, del cliente, y del
equipo.
Valentía: Programa para hoy y no para mañana.
Respeto: El equipo debe trabajar como uno, sin
hacer decisiones repentinas.
8. Actividades
Codificación: La parte mas importante de XP.
Pruebas: Nunca se puede estar seguro de algo
hasta haberlo probado.
Escuchar: Escuchar los requisitos del cliente
acerca del sistema a crear.
Diseño: Crear una estructura del diseño para
evitar problemas.
9. Roles de XP
Cliente:
Escribe “Historias de Usuario” y especifica Pruebas
Funcionales.
Establece prioridades, explica las Historias
Puede ser o no un usuario final
Tiene autoridad para decidir cuestiones relativas a las
Historias.
Programador:
Hace estimaciones sobre las Historias
Define Tareas a partir de las Historias y hace estimaciones
Implementa las Historias y las Pruebas Unitarias
Encargado de pruebas (Tester):
Ayuda al cliente a escribir las pruebas funcionales. Ejecuta
las pruebas regularmente, difunde los resultados en el equipo
y es responsable de las herramientas de soporte para
pruebas.
10. Encargado de seguimiento(Tracker):
Verifica las estimaciones realizadas, evalúa el progreso de cada
iteración y así como la factibilidad de los objetivos con las restricciones
de tiempo y recursos presentes. Mantiene contacto directo con el
equipo de desarrollo, realizando cambios para lograr los objetivos de
cada iteración.
Entrenador(coach):
Es responsable del proceso global. Experto en XP, provee de las
guías a los miembros del equipo para que se apliquen las prácticas
XP y se siga el proceso correctamente. Determina la tecnología y
metodologías a usar por el equipo de desarrollo.
Gestor (big boss):
Es el dueño del equipo y sus problemas. Experto en tecnología y
labores de gestión. Construye el plantel del equipo, obtiene los
recursos necesarios y maneja los problemas que se generan.
Administra a su vez las reuniones (planes de iteración, agenda de
compromisos, etc.).
No le dice al grupo lo que tiene que hacer, cuando hacerlo, ni verifica
el avance de las tareas.
11. Ciclo de vida de XP
• Exploración: En esta fase, los clientes plantean a grandes
rasgos las historias de usuario que son de interés para la
primera entrega del producto.
Planificación de la Entrega (Release):Se priorizan las
historias de usuario
Iteraciones.
Producción: Requiere prueba y comprobación extra del
funcionamiento del sistema antes de que éste se pueda
liberar al cliente.
Mantenimiento: Requiere de un mayor esfuerzo para
satisfacer también las tareas del cliente.
14. Tarjetas CRC (Clase - Responsabilidad – Colaborador).
Estas tarjetas se dividen en tres secciones que contienen la
información del nombre de la clase, sus responsabilidades y
sus colaboradores. En la siguiente figura se muestra cómo se
distribuye esta información.
15. Caso de Prueba de Aceptación
Código: Historia de Usuario (Nro. y Nombre):
Nombre:
Descripción:
Condiciones de Ejecución:
Entrada / Pasos de ejecución:
Resultado Esperado:
Evaluación de la Prueba:
16. Task card
Tarea de Ingeniería
Número Tarea: Historia de Usuario (Nro. y Nombre):
Nombre Tarea:
Tipo de Tarea :
Puntos Estimados:
Desarrollo / Corrección / Mejora / Otra (especificar)
Fecha Inicio: Fecha Fin:
Programador Responsable:
Descripción:
17. Ventajas y desventajas
Ventajas:
Programación organizada.
Menor taza de errores.
Satisfacción del programador.
Desventajas:
Es recomendable emplearlo solo en
proyectos a corto plazo.
Altas comisiones en caso de fallar.