Modulo III, Metodologia de Desarrollo de Software
Modulo III, Metodologia de Desarrollo de Software
Modulo III, Metodologia de Desarrollo de Software
MODULO III
CASO DE ESTUDIO: PROGRAMACION EXTREMA (XP)
Docente: Estudiante:
Ailicec Bolivar Mayerling Valecillo
Ingeniería en Informática C.I: 28.460.714
INTRODUCCIÓN.....................................................................................................................3
Historia...................................................................................................................................4
Principios básicos...................................................................................................................5
desarrollo de XP, fases: cliente e interacción con los mismos, definición y planificación del
Fases.....................................................................................................................................10
CONCLUSION........................................................................................................................17
RESUMEN...............................................................................................................................18
REFERENCIAS BIBLIOGRAFICAS.....................................................................................19
INTRODUCCIÓN
Cuando se requiere que un software sea desarrollado de manera ágil las metodologías
enfocadas a este tema son la solución para que los desarrolladores se adapten a los cambios a
los que puede estar sujeto un proyecto de software, y así asegurar un sistema que tenga éxito.
fundamentadas en valores que deben de mantener los participantes de proyecto que, a manera
de trabajo en grupo, pretende lograr como producto final un software con un muy alto grado
de calidad. Las etapas que recomienda seguir esta metodología se plantean de manera sencilla
Los métodos ágiles surgen como una inflexión en un momento o contexto definido, en
donde se hace necesario una renovación metodológica que busca satisfacer la necesidad de
realizar los proyectos de una forma más rápida sin disminuir la calidad del mismo.
Indistintamente en el año 2001 firman para Xp en el manifiesto ágil Kent Beck, Ward
Cinningham, Martin Fowler, James Grenning, Ron Jeffries, Brian Marick, y Robert C. Matin,
poco después y hasta hoy surge un gran número de libros y escritos que describen los pasos
Por lo tanto en este trabajo se presenta un ámbito general de lo que sería la metodología de
desarrollo como clave del éxito mediante el trabajo en equipo, el aprendizaje continuo y el
Historia
Los fundamentos de XP vienen de las prácticas tomadas a cabo por Kent Beck en un
proyecto para el pago de nóminas en Chrysler. El trabajo de Kent en este proyecto se hizo
popular por haber tenido éxito en tan sólo un año y dos meses cuando un equipo de 30
Esta aplicación de nóminas, llamada C3, pretendía sustituir una aplicación anterior hecha
con una tecnología antigua. En el momento de la incorporación de Kent al proyecto, tres años
calculaba que ejecutar el proceso de pago de nóminas llevaría unas 1000 horas. Diversas
actividades de mejora redujeron este tiempo a alrededor de 40 horas, luego a 12 y por último
unos años después, en el 2000, tras la compra de Chrysler por Daimler-Benz. Con esto puede
Principios básicos
- Retroalimentación.
- Entendimiento compartido.
RETROALIMENTACIÓN:
aceptación del programa, en el cual se definirán las entradas y salidas del sistema.
Básicamente se define lo que debe hacer el software desarrollado. Como si fuese una caja
negra.
concretamente las actividades que el sistema debe realizar. En esta fase se creará un
documento que contendrá historias de usuario que forman el plan de liberación, el cual define
los tiempos de entrega de la aplicación para poder recibir feedback por parte del cliente.
Cliente in-situ: el cliente (o su representante) deberá formar parte del equipo de desarrollo.
Se le dará poder para determinar los requisitos de la aplicación, definir la funcionalidad y dar
prioridad a determinadas cosas. Gracias a esto, habrá una fuerte interacción con los
a redactar. El cliente estará con el equipo durante todo el proceso de desarrollo del proyecto.
Pair-programming: este punto junto con el anterior son los más radicales de esta
metodología. Consiste en escribir código en parejas compartiendo una sola máquina. Según
los experimentos ya realizados sobre este método, se producen mejores y más consistentes
ENTENDIMIENTO COMPARTIDO
Diseño simple: el mejor programa será aquel que cumpla con los requisitos y sea más
más ni menos.
Metáfora: expresa la visión evolutiva del proyecto y define los objetivos del sistema
Estándar de programación: define las reglas para escribir y documentar código, además de
cómo se comunican las diferentes piezas de código desarrolladas por diferentes equipos. El
objetivo de esto es que parezca que el código ha sido escrito por una única persona.
minimizar las horas extras y mantener a los programadores frescos y descansados. De esta
manera, se generará mejor código. Si es necesario hacer horas extras, quiere decir que el
Programación en parejas: se recomienda que las tareas de desarrollo se lleven a cabo por
dos personas en un mismo puesto. Se supone que la mayor calidad del código escrito de esta
Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas
frecuentes.
Refactorización del código, es decir, rescribir ciertas partes del código para aumentar su
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. Las frecuentes pruebas de regresión
Simplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo
es más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se
comunicación resulta más fácil identificar qué se debe y qué no se debe hacer. Cuanto más
simple es el sistema, menos tendrá que comunicar sobre éste, lo que lleva a una
funcionales o no. Dichos requisitos deberán ser entendibles e implementables en unas pocas
semanas. Cada tarea, terminará siendo una tarea de programación asignada a un desarrollador
- Cliente: Obvio, encarga el trabajo, escribe las historias de usuario y prioriza tareas.
- Tester: Escribe pruebas funcionales junto al cliente y, ejecuta y difunde los resultado de las
pruebas regularmente.
- Coach: Es el responsable del equipo XP, se encarga de que este siga el proceso
correctamente.
- Consultor: Miembro externo experto en algún tema concreto al que acudir en caso de
problemas.
- Gestor: Unión entre el cliente y el equipo de desarrollo. Sus labores son de coordinación
principalmente.
Fases
definir las historias de usuario con el cliente. Las historias de usuario tienen la misma
finalidad que los casos de uso pero con algunas diferencias: Constan de 3 ó 4 líneas escritas
por el cliente en un lenguaje no técnico sin hacer mucho hincapié en los detalles; no se debe
adecuados, etc. Son usadas para estimar tiempos de desarrollo de la parte de la aplicación que
describen. También se utilizan en la fase de pruebas, para verificar si el programa cumple con
lo que especifica la historia de usuario. Cuando llega la hora de implementar una historia de
usuario, el cliente y los desarrolladores se reúnen para concretar y detallar lo que tiene que
hacer dicha historia. El tiempo de desarrollo ideal para una historia de usuario es entre 1 y 3
semanas.
Velocidad del proyecto: La velocidad del proyecto es una medida que representa la rapidez
con la que se desarrolla el proyecto; estimarla es muy sencillo, basta con contar el número de
historias de usuario que se pueden implementar en una iteración; de esta forma, se sabrá el
cupo de historias que se pueden desarrollar en las distintas iteraciones. Usando la velocidad
del proyecto controlaremos que todas las tareas se puedan desarrollar en el tiempo del que
aprecia que no es adecuada hay que negociar con el cliente un nuevo "Release Plan".
analiza si ese método o función es adecuado y está bien diseñado. De esta forma se consigue
2ª Fase: Diseño.
Diseños simples: La metodología X.P sugiere que hay que conseguir diseños simples y
sencillos. Hay que procurar hacerlo todo lo menos complicado posible para conseguir un
esfuerzo desarrollar.
Riesgos: Si surgen problemas potenciales durante el diseño, X.P sugiere utilizar una pareja de
desarrolladores para que investiguen y reduzcan al máximo el riesgo que supone ese
problema.
Funcionalidad extra: Nunca se debe añadir funcionalidad extra al programa aunque se piense
que en un futuro será utilizada. Sólo el 10% de la misma es utilizada, lo que implica que el
3ª Fase: Codificación.
El cliente es una parte más del equipo de desarrollo; su presencia es indispensable en las
distintas fases de X.P. A la hora de codificar una historia de usuario su presencia es aún más
necesaria. No olvidemos que los clientes son los que crean las historias de usuario y negocian
los tiempos en los que serán implementadas. Antes del desarrollo de cada historia de usuario
el cliente debe especificar detalladamente lo que ésta hará y también tendrá que estar presente
cuando se realicen los test que verifiquen que la historia implementada cumple la
funcionalidad especificada.
escalabilidad.
4ª Fase: Pruebas.
Se deben crear las aplicaciones que realizarán los test con un entorno de desarrollo
Hay que someter a tests las distintas clases del sistema omitiendo los métodos más
triviales.
Se deben crear los test que pasarán los códigos antes de implementarlos; en el apartado
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. Al mismo tiempo el equipo de desarrollo se
dependiendo del tamaño y familiaridad que tengan los programadores con la tecnología.
un cronograma en conjunto con el cliente. Una entrega debería obtenerse en no más de tres
meses. Esta fase dura unos pocos días. Las estimaciones de esfuerzo asociado a la
punto. Un punto, equivale a una semana ideal de programación. Las historias generalmente
velocidad del proyecto es utilizada para establecer cuántas historias se pueden implementar
historias. Al planificar por tiempo, se multiplica el número de iteraciones por la velocidad del
del sistema, se divide la suma de puntos de las historias de usuario seleccionadas entre la
implementación.
Iteraciones
Esta fase incluye varias iteraciones sobre el sistema antes de ser entregado. El Plan de
Entrega está compuesto por iteraciones de no más de tres semanas. En la primera iteración se
puede intentar establecer una arquitectura del sistema que pueda ser utilizada durante el resto
del proyecto. Esto se logra escogiendo las historias que fuercen la creación de esta
arquitectura, sin embargo, esto no siempre es posible ya que es el cliente quien decide qué
la última iteración el sistema estará listo para entrar en producción. Los elementos que deben
tomarse en cuenta durante la elaboración del Plan de la Iteración son: historias de usuario no
abordadas, velocidad del proyecto, pruebas de aceptación no superadas en la iteración
Producción
de que el sistema sea trasladado al entorno del cliente. Al mismo tiempo, se deben tomar
durante esta fase. Es posible que se rebaje el tiempo que toma cada iteración, de tres a una
semana. Las ideas que han sido propuestas y las sugerencias son documentadas para su
Mantenimiento
sistema en funcionamiento al mismo tiempo que desarrolla nuevas iteraciones. Para realizar
esto se requiere de tareas de soporte para el cliente. De esta forma, la velocidad de desarrollo
puede bajar después de la puesta del sistema en producción. La fase de mantenimiento puede
Es cuando el cliente no tiene más historias para ser incluidas en el sistema. Esto requiere
que se satisfagan las necesidades del cliente en otros aspectos como rendimiento y
confiabilidad del sistema. Se genera la documentación final del sistema y no se realizan más
genera los beneficios esperados por el cliente o cuando no hay presupuesto para mantenerlo.
Definición y características de los elementos del ciclo de vida
Al igual que otras metodologías de gestión de proyectos, tanto Ágiles como tradicionales,
el ciclo XP incluye:
Lo que caracteriza a XP, al igual que al resto de métodos Agiles es un ciclo de vida
cortos (llamados iteraciones), al fin de los cuales se generan unos entregables funcionales.
pero utilizando un conjunto de reglas y prácticas específicas de XP. Un proyecto con XP,
precisamente en estas condiciones que otras metodologías que requieren gran inversión de
tiempo en las etapas iniciales de análisis de requerimientos y diseño, muestran una
importancia la comunicación, el trabajo en equipo y el orden que se tiene en los procesos del
mismo, ya que dicha metodología trabaja de manera iterativa y cada incremento de software
RESUMEN
XP forma parte del conjunto de métodos ágiles que centran sus prioridades en las
clientes, es por ello que en este documento se presentan en forma resumida las características
principales, las actividades, las prácticas, el ciclo de vida, los artefactos y las críticas a esta
REFERENCIAS BIBLIOGRAFICAS
https://www.diegocalvo.es/metodologia-xp-programacion-extrema-metodologia-agil/
https://www.antoniomartel.com/2018/12/un-poco-de-historia-sobre-extreme-
programming.html
https://geekytheory.com/programacion-extrema-que-es-y-principios-basicos
https://sites.google.com/site/xpmetodologia/marco-teorico/caracteristicas
https://infow.wordpress.com/2011/10/22/desarrollo-agil-iv-extreme-programming-xp/
https://programacionextrema.tripod.com/fases.htm
http://oness.sourceforge.net/proyecto/html/ch05s02.html
https://proagilist.es/blog/agilidad-y-gestion-agil/agile-scrum/la-metodologia-xp/
#La_Metodologia_Xp_El_Ciclo_de_vida