Está en la página 1de 7

Alumnos: Peralta Soto Gustavo M#327117 Hernndez Durn Francisco Javier M# 318170 Carrillo Conwey Lidia Isabel M# 329446

Materia: Ingeniera de Software.

Maestro: Gomero Portilla Alejandro.

Tema: Programacin Extrema.

Ensenada, Baja California en 16 de Febrero del 2013.

Programacin Extrema
La Programacin Extrema (XP) es quizs el mtodo gil mejor conocido y ms ampliamente usado. El Nombre lo acuo Beck (en el ao 2000) debido a que el enfoque se desarroll llevando a niveles extremos las prcticas reconocidas, como el desarrollo iterativo. Por ejemplo, en la xp muchas versiones actuales de un sistema pueden desarrollarse mediante diferentes programadores, integrarse y ponerse a prueba en un solo da. En la programacin extrema, los requerimientos se expresan como escenarios (llamados historia de usuario), que se implementan directamente como una serie de tareas. Los programadores trabajan en pares y antes de escribir el cdigo desarrollan pruebas para cada tarea. Todas las pruebas deben ejecutarse con xito una vez que el nuevo cdigo se integre en el sistema. Entre las liberaciones del sistema existe un breve lapso. La programacin extrema incluye algunas prcticas, las cuales refleja los principios de los mtodos agiles:

1- El Desarrollo incremental se apoya en pequeas y frecuentes liberaciones del sistema. Los


requerimientos se fundamentan en simple historia del cliente, o bien en escenarios usados como base para decidir que funcionalidad debe incluirse en un incremento del sistema.

2- La Inclusin del cliente se apoya atreves de un enlace continuo con el cliente en el equipo
de desarrollo. El representante del cliente participa en el desarrollo y es responsable de definir las pruebas de aceptacin para el sistema.

3- Las Personas y los procesos se basan en la programacin en pares en la prioridad colectiva


del cdigo del sistema y en un proceso de desarrollo sustentable que no incluye jornadas de trabajo excesivamente largas.

4-

El cambio se acepta mediante liberaciones regulares del sistema hacia los clientes,

desarrollo de primera prueba, refactorizacin para evitar degeneraciones del cdigo e integracin continua de nueva funcionalidad.

5-

Mantener la simplicidad se logra mediante la refactorizacin constante, que mejora la

calidad del cdigo y con el uso de diseo simple que no anticipa innecesariamente futuros cambios del sistema.

En un proceso de programacin extrema los clientes intervienen estrechamente en la especificacin y priorizacin de los requerimientos del sistema. A continuacin esta un listado de los principios que maneja la programacin extrema (XP) el cual

Planeacin incremental: Los requerimientos se registran en tarjetas de historia y las historias que se van a incluir en una liberacin se determinan por el tiempo disponible y la prioridad relativa. Liberaciones pequeas: Al principio se desarrolla el conjunto mnimo de funcionalidad til, que ofrece valor para el negocio, las liberaciones del sistema son frecuentes y agregan incrementalmente funcionalidad a la primera liberacin. Diseo simple: Se realiza un diseo suficiente para cubrir solo aquellos requerimientos actuales. Desarrollo de la primera prueba: Se usa un marco de referencia de prueba de unidad automatizada al escribir las pruebas para la nueva pieza de funcionalidad antes de que esta ltima se implemente. Refactorizacin: Se espera que todos los desarrolladores refactoricen de manera continua el cdigo y tan pronto como sea posible, se encuentren mejoras de este.

Programacin en pares: Los desarrolladores trabajan en pares y cada uno comprueba el trabajo del otro, adems ofrecen apoyo para que se realicen siempre un buen trabajo. Propiedad Colectiva: Los desarrolladores en pares laboran en todas las reas del sistema, de manera que no se desarrollan islas de experiencia ya que todos los desarrolladores se responsabilizan por todo el cdigo.

Integracin Continua: Tan pronto como este completa una tarea se integra en todo el sistema. Despus de tal integracin deben aprobarse todas las pruebas en unidad en el sistema.

Ritmo sustentable: Grandes cantidades de tiempo extra no se consideran aceptable el efecto de este tiempo libre es reducir la calidad de cdigo y de trmino medio.

Estos ltimos no se especifican como listas de actividades requeridas del sistema. En cambio el cliente del sistema forma parte del equipo de desarrollo y discute los escenarios con otros miembros del equipo. En conjunto, desarrollan una tarjeta de historia que encapsula las necesidades del cliente. Entonces el equipo de desarrollo implementa dicho escenario en una liberacin futura del software. Las tarjetas de historia son las entradas principales al proceso de planeacin de programacin extrema o el juego de planeacin.

Historias de Usuario Representan una breve descripcin del comportamiento del sistema, emplea terminologa del cliente sin lenguaje tcnico, se realiza una por cada caracterstica principal del sistema, se emplean para hacer estimaciones de tiempo y para el plan de lanzamientos, reemplazan un gran documento de requisitos y presiden la creacin de las pruebas de aceptacin. Son tarjetas fsicas en las cuales se anota una descripcin de una funcionalidad del sistema, en una oracin, se le da un nmero y un ttulo para ser identificada.

Historia de Usuario Nmero: Nombre Historia de Usuario:

Modificacin (o extensin) de Historia de Usuario (Nro. y Nombre): Usuario: Prioridad en Negocio: Puntos Estimados: (Alta / Media / Baja) Riesgo en Desarrollo: Puntos Reales: (Alto / Medio / Bajo) Descripcin: Iteracin Asignada:

Observaciones:

Desventajas XP Las desventajas son que no se tiene la definicin del costo y el tiempo de desarrollo; el sistema va creciendo despus de cada entrega al cliente y nadie puede decir que el cliente no querr una funcin ms; se necesita de la presencia constante del usuario, lo cual en la realidad es muy difcil de lograr. Otra desventaja es la programacin en parejas, algunos desarrolladores son celosos del cdigo que escriben y no les es grato que alguien ms modifique las funciones que realiz o que su cdigo sea desechado por no cubrir el estndar.

Una vez diseadas las tarjetas de historia el equipo de desarrollo las descompone en tareas y estima el esfuerzo y los recursos requeridos para implementar cada tarea. Esto involucra por lo general discusiones con el cliente para refinar los requerimientos. Entonces para su implementacin el cliente prioriza las historias y elige aquellas que pueden usarse inmediatamente para entregar apoyo empresarial til. La intencin es identificar funcionalidad til que pueda implementarse en aproximadamente dos semanas cuando la siguiente liberacin del sistema est disponible para el cliente. Desde luego conforme cambian los requerimientos las historias no implementadas cambian o se desechan. Se demandan cambios para un sistema que ya se entreg, se desarrollan nuevas tarjetas de historia y otra vez el cliente decide si dichos cambios tienen prioridad sobre la nueva funcin.

Conclusin
La Programacin extrema en nuestra opinin es muy interesante, no sabamos casi nada al respecto de los estilos y mtodos de llevar a cabo un programa para su venta a los consumidores, este mtodo resulta ser uno de los ms rpidos y ms usados, donde se programa en intervalos cortos de tiempo, denvez de un periodo largo de tiempo y tambin se tiene un contacto muy cercano con el cliente para poder corregir bugs repetitivamente y tener una mejor aprobacin del usuario y de los clientes. Aunque al mismo tiempo, esto suena muy cansado y desgastante para los programadores, se puede apreciar que puedes llegar a mejores resultados en cuestin de tener contentos a los clientes y por supuesto al usuario que tuvo la idea de dicho proyecto, dado que se trabaja en pares, siempre se tiene una segunda opinin sobre lo que se est haciendo y se eliminan inseguridades que normalmente uno tiene. Estamos conscientes que existen otros mtodos (algunos de ellos los ojeamos en el libro que utilizamos) y estamos interesados en saber sobre ellos en futuras clases, esperamos aprender cosas tiles en este curso, en caso de que alguno de nosotros trabaje en el campo de la programacin. Con esto terminamos nuestra conclusin.

Bibliografa:
Libro: Ingeniera de Software Autor: Ian Sommerville Editorial: Pearson, Addison Weley Edicin: Novena edicin 2011 Libro: Extreme Programming Explained Autor: Beck, K. A. (2004) Extreme Programming Explained Editorial: Addison Wesley. Edicin: 1ra Edicin.