SlideShare ist ein Scribd-Unternehmen logo
1 von 6
Downloaden Sie, um offline zu lesen
UNIVERSIDAD ESTATAL DE MILAGRO

              CARRERA:
 Ingeniería en Sistemas Computacionales


             SEMESTRE:
               Noveno C


  INVESTIGACIÓN INDIVIDUAL:
  MODELO XP (XTREME PROGRAMMING) PARA
        DESARROLLO DE PROYECTO


           CATEDRATICO:
  Máster: Richard Ramírez Anormaliza


              ALUMNA:
        Susana galarza ganán
MODELO XP (XTREME PROGRAMMING) PARA DESARROLLO DE PROYECTO


INTRODUCCIÓN

Los métodos ágiles surgen en un momento o contexto definido en donde es necesario una renovación
metodológica que busca satisfacer la necesidad de realizar los proyectos de una forma rápida sin disminuir
la calidad del mismo, pero, sí reducir la documentación, pasos, procesos y tiempo.
Las metodologías ágiles son sin duda uno de los temas recientes en Ingeniería de Software que están
acaparando gran interés.

CARACTERISTICAS DE XP

En XP se trabaja estrechamente con el cliente, se hace pequeñas iteraciones cada dos semanas, donde no
existe mas documentación que el código en si; cada versión contiene las modificaciones necesarias según
como el cliente vaya retroalimentando al sistema, por eso es necesaria la disponibilidad del cliente durante
el desarrollo.

XP utiliza Historias de Usuarios, es una frase que representa a una función que realizará el sistema. Cada
Historia de Usuario no puede demorar en desarrollarse más de una semana, si así lo requiere, debe de
segmentarse.

También es un requisito en XP definir un Estándar en el Tipo de Codificación, lo cual le permite a los
programadores tener definido un sólo estilo al momento de programar.

Los programadores trabajan en parejas intercambiándose en el tipeo, esta forma de trabajo tiene ventajas
como:
       Detecta fácilmente los errores de programación, uno de los programador que está visualizando
       controla al que tipea
       El programador poco experimentado aprende del que más lo está.

El Testing en cada iteración se realiza para corregir mientras se programa. De esta forma se va cubriendo
las deficiencias que cada versión padezca.
El código existente puede ser manipulado por todo el equipo de trabajo, de esta manera los programadores
en parejas pueden mejorar cada sección de código que utilicen, esto requiere de un Testing (Pruebas) del
mismo y la re-implementación en el sistema general.
Cada dos semanas se le entrega al cliente una versión, el cual lo verifica, realiza el Feedback
(realimentación) y se continúa con el desarrollo, este ciclo continúa hasta que el sistema cumpla con las
expectativas del cliente, acto que concluirá el proyecto.

GESTIÓN DE REQUISITOS EN EL DESARROLLO DE SOFTWARE

La metodología Xtreme Programming (XP) pretende que el desarrollo de un proyecto de software sea un
desarrollo ágil, disciplinado y aporte soluciones sencillas.
Tiene un enfoque adaptativo en el que la planificación del proyecto progresa a medida que surgen cambios.
Los principios de actuación claves alrededor de los cuales se fundamenta la metodología XP consiste en:
        Acortar los ciclos de desarrollo
        Involucrar al cliente desde el principio hasta el final de cada ciclo
Las técnicas de trabajo que proporciona XP consiguen minimizar el impacto que los cambios suponen en un
proyecto de desarrollo de Software.
Acortar los ciclos de desarrollo y reforzar la comunicación con el cliente permiten:
        Centrarse cada vez en un problema muy concreto y en el momento justo
        Solucionarlo de manera consensuada, inmediata y no arrastrarlo a lo largo del proyecto
        Comenzar cada nuevo ciclo de desarrollo sobre una versión intermedia contrastada, verificada y
        aceptada por el cliente

ROLES Y RESPONSABILIDADES EN XP

Existen diferentes roles (actores) y responsabilidades en XP para diferentes tareas y propósitos durante el
proceso:
Programador (Programmer)
       Responsable de decisiones técnicas
       Responsable de construir el sistema
       Sin distinción entre analista, diseñadores o codificadores
       En XP los programadores diseñan, programan y realizan las pruebas

Cliente (Customer)
         Es parte del equipo
         Determina que construir y cuándo
         Escribe test funcionales para determinar cuándo está completo un determinado aspecto

Entrenador (Coach)
       El líder del equipo toma las decisiones importantes
       Principal responsable del proceso
       Tiende a estar en un segundo plano a medida que el equipo madura

Rastreador (Tracker)
       Metric Man
       Observar sin molestar
       Conserva datos históricos

Probador (Tester)
       Ayuda al cliente con las pruebas funcionales
       Se asegura de que los test funcionales se ejecutan

CICLO DE VIDA

El ciclo de vida de XP según una iteración de desarrollo es el tiempo en el que se realiza un conjunto de
funciones determinadas que en XP corresponden a un conjunto de Historias de Usuarios.
Las iteraciones son cortas ya que entre mas rápido se le entreguen los desarrollos al cliente mucha mas
retroalimentación se va a obtener, lo cual significa una mejor calidad del producto a largo plazo. Existe un
nivel de análisis inicial orientado a programar las iteraciones de desarrollo y cada iteración incluye, diseño,
codificación y pruebas.

Fase que se subdivide el ciclo de vida de XP ver Anexo 1

Fase de Exploración.-en esta fase la Historia de Usuarios es de gran interés para la primera entrega del
producto, lo que permite al equipo de desarrollo familiarizarse con las herramientas, tecnologías y prácticas
que se utilizara en el proyecto.
Se construye un prototipo que pruebe las tecnologías y explore las posibilidades de la arquitectura del
sistema. La fase de exploración se toma semanas o meses dependiendo del tamaño y familiaridad que
tengan los programadores con la tecnología.

Fase de Planeamiento.-los programadores consideran el esfuerzo que requiere cada historia y a partir de
allí se define el cronograma. Para el primer release (liberación), la duración del cronograma no excede más
de dos meses, se toma en cuenta varias iteraciones para lograr un release. La primera iteración crea un
sistema con la arquitectura del sistema completo, esto se hará seleccionando las historias que harán
cumplir la construcción de la estructura para el sistema completo. Las historias serán seleccionadas por el
cliente para cada iteración, al final de la última iteración el sistema estará listo para la producción.

Fase de Producción.-requiere prueba y comprobación extra del funcionamiento del sistema antes de que
esta pueda liberar al cliente. Durante esta fase, las iteraciones pueden ser aceleradas de una a tres
semanas, las ideas y las sugerencias que se pospongan se documentan para una puesta en práctica
posterior, por ejemplo en la fase de mantenimiento.

Fase de Mantenimiento.-requiere de un mayor esfuerzo para satisfacer las tareas del cliente. Así la
velocidad del desarrollo puede desacelerar después de que el sistema esté en la producción. La fase de
mantenimiento puede requerir la incorporación de nueva gente y cambiar la estructura del equipo.
Fase de Muerte.-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 cambios en la arquitectura.
La muerte del proyecto también puede ocurrir cuando el sistema no genere los beneficios esperados por el
cliente o cuando no hay presupuesto par mantenerlo.

VALORES EN XP

XP se basa en cuatro valores, que deben estar presentes en el equipo de desarrollo para que el proyecto
tenga éxito

Comunicación.-uno de los problemas que existen en los proyectos de software es la falta de comunicación
entre los miembros del equipo, la comunicación es fundamental dentro del equipo ya que la documentación
es escasa y siempre va ha prevalecer un diálogo frontal, cara a cara entre desarrolladores, gerentes y
cliente los cuales son los medios básicos de comunicación, y para desarrollar un producto de manera
eficiente y satisfactoria es necesario que exista un alto nivel de comunicación entre los miembros del
equipo.

Retroalimentación.-el cliente brinda retroalimentación a las funciones desarrolladas e incluyen sus
comentarios en la próxima iteración para una mejor comprensión de sus necesidades, la retroalimentación
constante y el involucramiento por parte del cliente garantizan un alto grado de satisfacción en el cliente.

Simplicidad.-siempre se debe mantener las cosas más simples mientras nos apegamos al proceso que nos
lleva a cumplir con los requerimientos del sistema que se esta construyendo.

Coraje.- los desarrolladores involucrados deben de tener la actitud necesaria para lograr un cambio y
alcanzar resultados de alta calidad, sin importar cuanto tiempo se ha invertido previamente en el mismo.

DIFERENCIAS FUNDAMENTALES DE EXTREME PROGRAMMING

        No hay requisitos explícitos sino que el cliente participa en el desarrollo
        Se empieza por automatizar las pruebas
        Se desarrolla siempre la versión más simple posible que resuelva el problema
        Se ejecutan todas las pruebas todos los días
        Se cambia el diseño (aunque sea radicalmente) siempre que haga falta


CONCLUSION

Las metodologías ágiles de desarrollo de Software, en particular Extreme Programming (XP), es una de las
tendencias de mayor impacto en la industria del desarrollo de Software, es una metodología reciente (tiene
alrededor de 5 años). La filosofía de XP es satisfacer al completo las necesidades del cliente, por eso lo
integran como una parte más del equipo de desarrollo.
XP inicialmente fue creada para el desarrollo de aplicaciones dónde el cliente no sabe muy bien lo que
quiere, lo que provoca un cambio constante en los requisitos que debe cumplir la aplicación. Por este motivo
es necesaria una metodología ágil como XP que se adapte a las necesidades del cliente y dónde la
aplicación se va reevaluando en periodos de tiempos cortos.
También una de las cualidades más destacables en una metodología ágil es su sencillez, tanto en su
aprendizaje como en su aplicación.
XP está diseñada para el desarrollo de aplicaciones que requieran un grupo de programadores pequeño,
donde la comunicación sea más factible que en grupos de desarrollo grandes. La comunicación es un punto
importante y debe realizarse entre los programadores, los jefes de proyecto y los clientes donde el entorno
físico sea un ambiente de armonía que permita una buena comunicación y colaboración entre los miembros
del equipo durante el tiempo de desarrollo del proyecto, alguna resistencia por parte del cliente o del equipo
de desarrollo hacia las prácticas y principios puede conducir al fracaso total, ya que el clima de trabajo, la
colaboración y la relación son punto claves para llegar al éxito.
ANEXO

Anexo1. Descripción de cada fase en las que se subdivide el ciclo de vida de Xtreme Programming
BIBLIOGRAFIA:
1. http://elezeta.net/2004/08/27/extreme-programming-xp/

2. http://www.monografías.com/trabajos51/programacion-extrema/programacion-extrema.shtml

3. http://www.willydev.net/descargas/masyxp.pdf

4. http://iie.fing.edu.uy/~josej/docs/XP%20-%20Jose%20JosKowicz.pdf


5. Libro Extreme Programming [ Novatec Editora - Año 2004 ]


6. http://audiemangt.blogspot.com/2010/05/metodologia-agil-extreme-programming-xp.html


7. http://www.malvarezonline.com/serendipity/index.php?/archives/12-eXtreme-Programming.html


8. http://www.planetacodigo.com/wiki/glosario:extreme_programming

Weitere ähnliche Inhalte

Was ist angesagt?

Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa CondeProceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa CondeSam Espinosa
 
Modelos del ciclo de vida del software
Modelos del ciclo de vida del softwareModelos del ciclo de vida del software
Modelos del ciclo de vida del softwareAbner Torres
 
Metodologias De Desarrollo De Software
Metodologias De Desarrollo De SoftwareMetodologias De Desarrollo De Software
Metodologias De Desarrollo De Softwareguesta1695670
 
medolos tradicionales de desarrollo de software ( cascada - espiral)
medolos tradicionales de desarrollo de software ( cascada - espiral)medolos tradicionales de desarrollo de software ( cascada - espiral)
medolos tradicionales de desarrollo de software ( cascada - espiral)Cristhian Aguilar
 
Metodología xp
Metodología xpMetodología xp
Metodología xpPiskamen
 
Metodología tradicional
Metodología tradicionalMetodología tradicional
Metodología tradicionalJesenia Escobar
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
facci Xp-scrum
facci Xp-scrumfacci Xp-scrum
facci Xp-scrumafrancoing
 
Metogologias de Desarrollo de Software Tradicionales VS Agiles
Metogologias de Desarrollo de Software Tradicionales VS AgilesMetogologias de Desarrollo de Software Tradicionales VS Agiles
Metogologias de Desarrollo de Software Tradicionales VS Agilesfmmeson
 
Modelo Descrptivos Del Proceso Del Sofware
Modelo Descrptivos  Del  Proceso Del SofwareModelo Descrptivos  Del  Proceso Del Sofware
Modelo Descrptivos Del Proceso Del Sofwareluisfe
 
Metodologias Rup Xp
Metodologias Rup XpMetodologias Rup Xp
Metodologias Rup Xpda4
 
Metodologías tradicionales: Desarrollo de Software
Metodologías tradicionales: Desarrollo de Software Metodologías tradicionales: Desarrollo de Software
Metodologías tradicionales: Desarrollo de Software Juan C. S. Suárez
 
Introducción a la programación extrema (XP)
Introducción a la programación extrema (XP)Introducción a la programación extrema (XP)
Introducción a la programación extrema (XP)guestba5383
 
Modelo espiral win win
Modelo espiral win winModelo espiral win win
Modelo espiral win winkhinkhe
 
El Proceso Unificado
El Proceso UnificadoEl Proceso Unificado
El Proceso UnificadoSofylutqm
 
Proceso Unificado de Desarrollo
Proceso Unificado de DesarrolloProceso Unificado de Desarrollo
Proceso Unificado de DesarrolloFausto J Loja Mora
 

Was ist angesagt? (20)

Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa CondeProceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
 
Procesos del Software
Procesos del SoftwareProcesos del Software
Procesos del Software
 
Modelos del ciclo de vida del software
Modelos del ciclo de vida del softwareModelos del ciclo de vida del software
Modelos del ciclo de vida del software
 
Metodologias De Desarrollo De Software
Metodologias De Desarrollo De SoftwareMetodologias De Desarrollo De Software
Metodologias De Desarrollo De Software
 
Modelos de Desarrollo de Software - INF162 - 2017
Modelos de Desarrollo de Software - INF162 - 2017Modelos de Desarrollo de Software - INF162 - 2017
Modelos de Desarrollo de Software - INF162 - 2017
 
medolos tradicionales de desarrollo de software ( cascada - espiral)
medolos tradicionales de desarrollo de software ( cascada - espiral)medolos tradicionales de desarrollo de software ( cascada - espiral)
medolos tradicionales de desarrollo de software ( cascada - espiral)
 
Metodología xp
Metodología xpMetodología xp
Metodología xp
 
Unidad 2. Metodologías de Desarrollo
Unidad 2. Metodologías de DesarrolloUnidad 2. Metodologías de Desarrollo
Unidad 2. Metodologías de Desarrollo
 
Metodología tradicional
Metodología tradicionalMetodología tradicional
Metodología tradicional
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
facci Xp-scrum
facci Xp-scrumfacci Xp-scrum
facci Xp-scrum
 
Metogologias de Desarrollo de Software Tradicionales VS Agiles
Metogologias de Desarrollo de Software Tradicionales VS AgilesMetogologias de Desarrollo de Software Tradicionales VS Agiles
Metogologias de Desarrollo de Software Tradicionales VS Agiles
 
Modelo Descrptivos Del Proceso Del Sofware
Modelo Descrptivos  Del  Proceso Del SofwareModelo Descrptivos  Del  Proceso Del Sofware
Modelo Descrptivos Del Proceso Del Sofware
 
Modelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiralModelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiral
 
Metodologias Rup Xp
Metodologias Rup XpMetodologias Rup Xp
Metodologias Rup Xp
 
Metodologías tradicionales: Desarrollo de Software
Metodologías tradicionales: Desarrollo de Software Metodologías tradicionales: Desarrollo de Software
Metodologías tradicionales: Desarrollo de Software
 
Introducción a la programación extrema (XP)
Introducción a la programación extrema (XP)Introducción a la programación extrema (XP)
Introducción a la programación extrema (XP)
 
Modelo espiral win win
Modelo espiral win winModelo espiral win win
Modelo espiral win win
 
El Proceso Unificado
El Proceso UnificadoEl Proceso Unificado
El Proceso Unificado
 
Proceso Unificado de Desarrollo
Proceso Unificado de DesarrolloProceso Unificado de Desarrollo
Proceso Unificado de Desarrollo
 

Ähnlich wie Modelo xp para desarrollo de proyecto

Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp0202278446
 
Especial ingenieria de software
Especial ingenieria de softwareEspecial ingenieria de software
Especial ingenieria de softwarealejandor reyes
 
Especial ingenieria de software
Especial ingenieria de softwareEspecial ingenieria de software
Especial ingenieria de softwarealejandor reyes
 
Metodologia xp (tarea msmad)
Metodologia xp (tarea msmad)Metodologia xp (tarea msmad)
Metodologia xp (tarea msmad)Renata Briseño
 
Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3Bruno
 
Las metodologías usadas en el Desarrollo de SW en el Perú
Las metodologías usadas en el Desarrollo de SW en el PerúLas metodologías usadas en el Desarrollo de SW en el Perú
Las metodologías usadas en el Desarrollo de SW en el PerúPagina web Peru - F5mas
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xpjhon
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xpljds
 
Comparación de dos Metodologias
Comparación de dos MetodologiasComparación de dos Metodologias
Comparación de dos Metodologiaszonajava
 
Metodología ágil de programación extrema
Metodología ágil de programación extremaMetodología ágil de programación extrema
Metodología ágil de programación extremaRafael Hernandez
 
Metodología ágil de programación extrema
Metodología ágil de programación extremaMetodología ágil de programación extrema
Metodología ágil de programación extremaMiguelGonzalezLo
 
Metodos agiles 3
Metodos agiles 3Metodos agiles 3
Metodos agiles 3paotacuba
 
FACCI METODOLOGIAS AGILES
FACCI METODOLOGIAS AGILESFACCI METODOLOGIAS AGILES
FACCI METODOLOGIAS AGILESafrancoing
 
Metodologias xp
Metodologias xpMetodologias xp
Metodologias xpElvisAR
 

Ähnlich wie Modelo xp para desarrollo de proyecto (20)

Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
 
Monografia de xp
Monografia de xpMonografia de xp
Monografia de xp
 
Especial ingenieria de software
Especial ingenieria de softwareEspecial ingenieria de software
Especial ingenieria de software
 
Especial ingenieria de software
Especial ingenieria de softwareEspecial ingenieria de software
Especial ingenieria de software
 
Luis
LuisLuis
Luis
 
Metodologia xp (tarea msmad)
Metodologia xp (tarea msmad)Metodologia xp (tarea msmad)
Metodologia xp (tarea msmad)
 
Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3
 
Las metodologías usadas en el Desarrollo de SW en el Perú
Las metodologías usadas en el Desarrollo de SW en el PerúLas metodologías usadas en el Desarrollo de SW en el Perú
Las metodologías usadas en el Desarrollo de SW en el Perú
 
Programación Extrema - Metodología Ágil
Programación Extrema - Metodología Ágil Programación Extrema - Metodología Ágil
Programación Extrema - Metodología Ágil
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xp
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xp
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xp
 
Comparación de dos Metodologias
Comparación de dos MetodologiasComparación de dos Metodologias
Comparación de dos Metodologias
 
Metodología ágil de programación extrema
Metodología ágil de programación extremaMetodología ágil de programación extrema
Metodología ágil de programación extrema
 
Metodología ágil de programación extrema
Metodología ágil de programación extremaMetodología ágil de programación extrema
Metodología ágil de programación extrema
 
Metodos agiles 3
Metodos agiles 3Metodos agiles 3
Metodos agiles 3
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
FACCI METODOLOGIAS AGILES
FACCI METODOLOGIAS AGILESFACCI METODOLOGIAS AGILES
FACCI METODOLOGIAS AGILES
 
Metodologias xp
Metodologias xpMetodologias xp
Metodologias xp
 
Programación extrema (xp)
Programación extrema (xp)Programación extrema (xp)
Programación extrema (xp)
 

Modelo xp para desarrollo de proyecto

  • 1. UNIVERSIDAD ESTATAL DE MILAGRO CARRERA: Ingeniería en Sistemas Computacionales SEMESTRE: Noveno C INVESTIGACIÓN INDIVIDUAL: MODELO XP (XTREME PROGRAMMING) PARA DESARROLLO DE PROYECTO CATEDRATICO: Máster: Richard Ramírez Anormaliza ALUMNA: Susana galarza ganán
  • 2. MODELO XP (XTREME PROGRAMMING) PARA DESARROLLO DE PROYECTO INTRODUCCIÓN Los métodos ágiles surgen en un momento o contexto definido en donde es necesario una renovación metodológica que busca satisfacer la necesidad de realizar los proyectos de una forma rápida sin disminuir la calidad del mismo, pero, sí reducir la documentación, pasos, procesos y tiempo. Las metodologías ágiles son sin duda uno de los temas recientes en Ingeniería de Software que están acaparando gran interés. CARACTERISTICAS DE XP En XP se trabaja estrechamente con el cliente, se hace pequeñas iteraciones cada dos semanas, donde no existe mas documentación que el código en si; cada versión contiene las modificaciones necesarias según como el cliente vaya retroalimentando al sistema, por eso es necesaria la disponibilidad del cliente durante el desarrollo. XP utiliza Historias de Usuarios, es una frase que representa a una función que realizará el sistema. Cada Historia de Usuario no puede demorar en desarrollarse más de una semana, si así lo requiere, debe de segmentarse. También es un requisito en XP definir un Estándar en el Tipo de Codificación, lo cual le permite a los programadores tener definido un sólo estilo al momento de programar. Los programadores trabajan en parejas intercambiándose en el tipeo, esta forma de trabajo tiene ventajas como: Detecta fácilmente los errores de programación, uno de los programador que está visualizando controla al que tipea El programador poco experimentado aprende del que más lo está. El Testing en cada iteración se realiza para corregir mientras se programa. De esta forma se va cubriendo las deficiencias que cada versión padezca. El código existente puede ser manipulado por todo el equipo de trabajo, de esta manera los programadores en parejas pueden mejorar cada sección de código que utilicen, esto requiere de un Testing (Pruebas) del mismo y la re-implementación en el sistema general. Cada dos semanas se le entrega al cliente una versión, el cual lo verifica, realiza el Feedback (realimentación) y se continúa con el desarrollo, este ciclo continúa hasta que el sistema cumpla con las expectativas del cliente, acto que concluirá el proyecto. GESTIÓN DE REQUISITOS EN EL DESARROLLO DE SOFTWARE La metodología Xtreme Programming (XP) pretende que el desarrollo de un proyecto de software sea un desarrollo ágil, disciplinado y aporte soluciones sencillas. Tiene un enfoque adaptativo en el que la planificación del proyecto progresa a medida que surgen cambios. Los principios de actuación claves alrededor de los cuales se fundamenta la metodología XP consiste en: Acortar los ciclos de desarrollo Involucrar al cliente desde el principio hasta el final de cada ciclo Las técnicas de trabajo que proporciona XP consiguen minimizar el impacto que los cambios suponen en un proyecto de desarrollo de Software. Acortar los ciclos de desarrollo y reforzar la comunicación con el cliente permiten: Centrarse cada vez en un problema muy concreto y en el momento justo Solucionarlo de manera consensuada, inmediata y no arrastrarlo a lo largo del proyecto Comenzar cada nuevo ciclo de desarrollo sobre una versión intermedia contrastada, verificada y aceptada por el cliente ROLES Y RESPONSABILIDADES EN XP Existen diferentes roles (actores) y responsabilidades en XP para diferentes tareas y propósitos durante el proceso:
  • 3. Programador (Programmer) Responsable de decisiones técnicas Responsable de construir el sistema Sin distinción entre analista, diseñadores o codificadores En XP los programadores diseñan, programan y realizan las pruebas Cliente (Customer) Es parte del equipo Determina que construir y cuándo Escribe test funcionales para determinar cuándo está completo un determinado aspecto Entrenador (Coach) El líder del equipo toma las decisiones importantes Principal responsable del proceso Tiende a estar en un segundo plano a medida que el equipo madura Rastreador (Tracker) Metric Man Observar sin molestar Conserva datos históricos Probador (Tester) Ayuda al cliente con las pruebas funcionales Se asegura de que los test funcionales se ejecutan CICLO DE VIDA El ciclo de vida de XP según una iteración de desarrollo es el tiempo en el que se realiza un conjunto de funciones determinadas que en XP corresponden a un conjunto de Historias de Usuarios. Las iteraciones son cortas ya que entre mas rápido se le entreguen los desarrollos al cliente mucha mas retroalimentación se va a obtener, lo cual significa una mejor calidad del producto a largo plazo. Existe un nivel de análisis inicial orientado a programar las iteraciones de desarrollo y cada iteración incluye, diseño, codificación y pruebas. Fase que se subdivide el ciclo de vida de XP ver Anexo 1 Fase de Exploración.-en esta fase la Historia de Usuarios es de gran interés para la primera entrega del producto, lo que permite al equipo de desarrollo familiarizarse con las herramientas, tecnologías y prácticas que se utilizara en el proyecto. Se construye un prototipo que pruebe las tecnologías y explore las posibilidades de la arquitectura del sistema. La fase de exploración se toma semanas o meses dependiendo del tamaño y familiaridad que tengan los programadores con la tecnología. Fase de Planeamiento.-los programadores consideran el esfuerzo que requiere cada historia y a partir de allí se define el cronograma. Para el primer release (liberación), la duración del cronograma no excede más de dos meses, se toma en cuenta varias iteraciones para lograr un release. La primera iteración crea un sistema con la arquitectura del sistema completo, esto se hará seleccionando las historias que harán cumplir la construcción de la estructura para el sistema completo. Las historias serán seleccionadas por el cliente para cada iteración, al final de la última iteración el sistema estará listo para la producción. Fase de Producción.-requiere prueba y comprobación extra del funcionamiento del sistema antes de que esta pueda liberar al cliente. Durante esta fase, las iteraciones pueden ser aceleradas de una a tres semanas, las ideas y las sugerencias que se pospongan se documentan para una puesta en práctica posterior, por ejemplo en la fase de mantenimiento. Fase de Mantenimiento.-requiere de un mayor esfuerzo para satisfacer las tareas del cliente. Así la velocidad del desarrollo puede desacelerar después de que el sistema esté en la producción. La fase de mantenimiento puede requerir la incorporación de nueva gente y cambiar la estructura del equipo.
  • 4. Fase de Muerte.-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 cambios en la arquitectura. La muerte del proyecto también puede ocurrir cuando el sistema no genere los beneficios esperados por el cliente o cuando no hay presupuesto par mantenerlo. VALORES EN XP XP se basa en cuatro valores, que deben estar presentes en el equipo de desarrollo para que el proyecto tenga éxito Comunicación.-uno de los problemas que existen en los proyectos de software es la falta de comunicación entre los miembros del equipo, la comunicación es fundamental dentro del equipo ya que la documentación es escasa y siempre va ha prevalecer un diálogo frontal, cara a cara entre desarrolladores, gerentes y cliente los cuales son los medios básicos de comunicación, y para desarrollar un producto de manera eficiente y satisfactoria es necesario que exista un alto nivel de comunicación entre los miembros del equipo. Retroalimentación.-el cliente brinda retroalimentación a las funciones desarrolladas e incluyen sus comentarios en la próxima iteración para una mejor comprensión de sus necesidades, la retroalimentación constante y el involucramiento por parte del cliente garantizan un alto grado de satisfacción en el cliente. Simplicidad.-siempre se debe mantener las cosas más simples mientras nos apegamos al proceso que nos lleva a cumplir con los requerimientos del sistema que se esta construyendo. Coraje.- los desarrolladores involucrados deben de tener la actitud necesaria para lograr un cambio y alcanzar resultados de alta calidad, sin importar cuanto tiempo se ha invertido previamente en el mismo. DIFERENCIAS FUNDAMENTALES DE EXTREME PROGRAMMING No hay requisitos explícitos sino que el cliente participa en el desarrollo Se empieza por automatizar las pruebas Se desarrolla siempre la versión más simple posible que resuelva el problema Se ejecutan todas las pruebas todos los días Se cambia el diseño (aunque sea radicalmente) siempre que haga falta CONCLUSION Las metodologías ágiles de desarrollo de Software, en particular Extreme Programming (XP), es una de las tendencias de mayor impacto en la industria del desarrollo de Software, es una metodología reciente (tiene alrededor de 5 años). La filosofía de XP es satisfacer al completo las necesidades del cliente, por eso lo integran como una parte más del equipo de desarrollo. XP inicialmente fue creada para el desarrollo de aplicaciones dónde el cliente no sabe muy bien lo que quiere, lo que provoca un cambio constante en los requisitos que debe cumplir la aplicación. Por este motivo es necesaria una metodología ágil como XP que se adapte a las necesidades del cliente y dónde la aplicación se va reevaluando en periodos de tiempos cortos. También una de las cualidades más destacables en una metodología ágil es su sencillez, tanto en su aprendizaje como en su aplicación. XP está diseñada para el desarrollo de aplicaciones que requieran un grupo de programadores pequeño, donde la comunicación sea más factible que en grupos de desarrollo grandes. La comunicación es un punto importante y debe realizarse entre los programadores, los jefes de proyecto y los clientes donde el entorno físico sea un ambiente de armonía que permita una buena comunicación y colaboración entre los miembros del equipo durante el tiempo de desarrollo del proyecto, alguna resistencia por parte del cliente o del equipo de desarrollo hacia las prácticas y principios puede conducir al fracaso total, ya que el clima de trabajo, la colaboración y la relación son punto claves para llegar al éxito.
  • 5. ANEXO Anexo1. Descripción de cada fase en las que se subdivide el ciclo de vida de Xtreme Programming
  • 6. BIBLIOGRAFIA: 1. http://elezeta.net/2004/08/27/extreme-programming-xp/ 2. http://www.monografías.com/trabajos51/programacion-extrema/programacion-extrema.shtml 3. http://www.willydev.net/descargas/masyxp.pdf 4. http://iie.fing.edu.uy/~josej/docs/XP%20-%20Jose%20JosKowicz.pdf 5. Libro Extreme Programming [ Novatec Editora - Año 2004 ] 6. http://audiemangt.blogspot.com/2010/05/metodologia-agil-extreme-programming-xp.html 7. http://www.malvarezonline.com/serendipity/index.php?/archives/12-eXtreme-Programming.html 8. http://www.planetacodigo.com/wiki/glosario:extreme_programming