Modelo xp para desarrollo de proyecto
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
23,789
On Slideshare
23,789
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
605
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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