Exposición de Programación Extrema para la clase de Ing. de Software en la Universidad Autónoma de Baja California, Ensenada, plantel Valle Dorado. Hecha por Licenciados en Informática.
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Is.exp.1.327117 Programación Extrema
1. Alumnos:
Peralta Soto Gustavo M#327117
Hernández Durán Francisco Javier
M#318170Carrillo Conwey Lidia Isabel M#329446
Materia: Ingeniería de Software.
Maestro: Gomero Portilla Alejandro.
Tema: Programación Extrema.
Ensenada, Baja California en 16 de Febrero del
2013.
2. Programación Extrema
La Programación Extrema (XP) es quizás el método ágil mejor conocidoy más ampliamente
usado.
El Nombre lo acuño Beck (en el año 2000) debido a que el enfoque se desarrolló llevando a
niveles extremos las prácticas 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 día.
En la programación 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 código desarrollan pruebas para cada
tarea.
Todas las pruebas deben ejecutarse con éxito una vez que el nuevo código se integre en el
sistema. Entre las liberaciones del sistema existe un breve lapso. La programación extrema
incluye algunas prácticas, las cuales refleja los principios de los métodos agiles:
1-El Desarrollo incremental se apoya en pequeñas 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 Inclusión 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 aceptación para el sistema.
3- Las Personas y los procesos se basan en la programación en pares en la prioridad colectiva
del código 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, refactorización para evitar degeneraciones del código e
integración continua de nueva funcionalidad.
5-Mantener la simplicidad se logra mediante la refactorización constante, que mejora la
calidad del código y con el uso de diseño simple que no anticipa innecesariamente futuros
cambios del sistema.
3. En un proceso de programación extrema los clientes intervienenestrechamente en la
especificación y priorización de los requerimientos del sistema.
A continuación esta un listado de los principios que maneja la programación extrema (XP) el
cual
Planeación incremental:
Los requerimientos se registran en tarjetas de historia y las historias que se van a incluir en
una liberación se determinan por el tiempo disponible y la prioridad relativa.
Liberaciones pequeñas:
Al principio se desarrolla el conjunto mínimo de funcionalidad útil, que ofrece valor para el
negocio, las liberaciones del sistema son frecuentes y agregan incrementalmente
funcionalidad ala primera liberación.
Diseño simple:
Se realiza un diseño 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.
Refactorización:
Se espera que todos los desarrolladores refactoricen de manera continua el código y tan
pronto como sea posible, se encuentren mejoras de este.
4. Programación en pares:
Los desarrolladores trabajan en pares y cada uno comprueba el trabajo del otro, además
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 código.
Integración Continua:
Tan pronto como este completa una tarea se integra en todo el sistema. Después de tal
integración 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 código y de término 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 liberación futura del
software.
Las tarjetas de historia son las entradas principales al proceso de planeación de programación
extrema o el juego de planeación.
Historias de Usuario
Representan una breve descripción del comportamiento del sistema, emplea terminología del
cliente sin lenguaje técnico, se realiza una por cada característica 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 creación de las pruebas de aceptación.
Son tarjetas físicas en las cuales se anota una descripción de una funcionalidad del sistema, en
una oración, se le da un número y un título para ser identificada.
5. Historia de Usuario
Número: Nombre Historia de Usuario:
Modificación (o extensión) de Historia de Usuario (Nro. y Nombre):
Usuario: Iteración Asignada:
Prioridad en Negocio:
Puntos Estimados:
(Alta / Media / Baja)
Riesgo en Desarrollo:
Puntos Reales:
(Alto / Medio / Bajo)
Descripción:
Observaciones:
Desventajas XP
Las desventajas son que no se tiene la definición del costo y el tiempo de desarrollo; el sistema
va creciendo después de cada entrega al cliente y nadie puede decir que el cliente no querrá
una función más; se necesita de la presencia constante del usuario, lo cual en la realidad es
muy difícil de lograr.
Otra desventaja es la programación en parejas, algunos desarrolladores son celosos del código
que escriben y no les es grato que alguien más modifique las funciones que realizó o que su
código sea desechado por no cubrir el estándar.
6. Una vez diseñadas 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 implementación el cliente prioriza las historias y elige aquellas que pueden
usarse inmediatamente para entregar apoyo empresarial útil. Laintención es identificar
funcionalidad útil que pueda implementarse en aproximadamente dos semanas cuando la
siguiente liberación 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 función.
Conclusión
La Programación extrema en nuestra opinión es muy interesante, no sabíamos casi nada al
respecto de los estilos y métodos de llevar a cabo un programa para su venta a los
consumidores, este método resulta ser uno de los más rápidos y más usados, donde se
programa en intervalos cortos de tiempo, denvez de un periodo largo de tiempo y también
se tiene un contacto muy cercano con el cliente para poder corregir bugs repetitivamente
y tener una mejor aprobación 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 cuestión 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 opinión sobre lo que se está haciendo y se
eliminan inseguridades que normalmente uno tiene.
Estamos conscientes que existen otros métodos (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 programación. Con esto terminamos nuestra conclusión.
7. Bibliografía:
Libro: Ingeniería de Software
Autor: IanSommerville
Editorial:Pearson, Addison WeleyEdición: Novena edición 2011
Libro: Extreme ProgrammingExplained
Autor: Beck, K. A. (2004) Extreme ProgrammingExplained
Editorial: Addison Wesley.
Edición: 1ra Edición.