top of page

| TEMA 5 | PROGRAMACIÓN EXTREMA (XP)

I. 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. (Canós, J; Letelier, P y Penadés, M. s.f.)


Para quienes trabajan en la metodología ágil es más importante hacer un software de buena calidad, que hacer una documentación excelente, pero para que el software sea funcionarle se necesita la colaboración constante del cliente y los miembros de un equipo de trabajo.


La programación extrema en sí, comienza mucho antes de que Kent Beck, el creador de las metodologías agiles propusiera su nombre, ya que en 1989 Cunningham quien trabaja para la compañía “Wyatt Software” utilizó muchas técnicas que adoptaban principios de XP. (Espinoza, E. 2007).


Fue en 1999 cuando el Ingeniero en ciencias de la computación Beck, dio nombre a esta metodología ágil, aduciendo que serviría para realizar un producto final con excelencia, desde ahí quienes apoyan estos principios han hecho que esta metodología sea muy conocida, sin embargo, qué es la programación extrema y en que consiste, respondiendo a esta pregunta se puede decir que es una metodología ligera que controla los riesgos que hay en la creación del software, mediante los valores que deben tener el variado equipo de desarrollo, es así que podemos decir que su principal objetivo es entregar un software de calidad en el tiempo requerido. (Espinoza, E. 2007).

II. OBJETIVO


El objetivo de esta clase es conocer acerca de una de las metodologías de desarrollo ágil, esta es la programación extrema o también conocida como XP.


III. MARCO TEÓRICO

3.1. VALORES XP


La programación extrema define 5 valores primordiales que son un motor para la realización de actividades que simplifiquen realizar el software, en el siguiente gráfico se definen los valores de XP.


1.png

Gráfico 3.1: Valores XP.


3.2. PROCESO XP


La forma en la que se establecen las reglas de desarrollo XP se dan en base a la programación orientada a objetos, en este tipo de desarrollo se establecen 4 actividades estructurales que son expuestas en el siguiente gráfico.


2.png

Gráfico 3.2: Proceso XP.


3.2.1. PLANEACIÓN


La planificación se realiza por etapas, es decir, que es iterativa, sin embargo, no puede haber una planificación sin que antes haya habido comunicación con el cliente, en esta reunión con el cliente, el establece sus requerimientos lo cual hace que el equipo de software entienda cuáles son las características y funcionabilidades que se necesitan.


Cuando el desarrollador entiende lo que escucha del cliente, este puede ser capaz de hacer los casos de uso, en los cuales el cliente puede asignar prioridades entre todas las funciones del software. (Tecno Tips. 2012).


5.png

Gráfico 3.3: Planificación en XP.


3.2.1.1. VELOCIDAD EN LA PLANEACIÓN


Se puede apreciar la velocidad de un software, contando los casos de uso que fueron realizados e implementados en la primera iteración o entrega, esta medición de la velocidad, ayuda a estimar fechas y programar actividades y compromiso con las funcionabilidades del software.


3.2.2. DISEÑO


El diseño es la guía para la implementación del sistema, por lo tanto debe ser claro, y para poder ser claro necesita de simplicidad, ya que no sólo será entendido por el programador sino que también en muchas ocasiones, por el usuario. En el diseño se pueden también asignar las responsabilidades y módulos de cada persona en el equipo.


6.png

Gráfico 3.4: Diseño en XP.


3.2.2.1. REDISEÑO


Significa que un sistema puede cambiar, y si este lo hace, no debe afectar su comportamiento externo, es decir, cuando existe un problema en el que se quiere rediseñar o rehacer el software se hace sin que la estructura cambie para el usuario, es como si se hiciera una limpieza de código la cual es muy importante para su posterior documentación.


El diseño es una tarea que siempre se está realizando, antes y después de que el software es codificado y en su transcurso, y cuando el software ya está codificado en ocasiones se vuelve a diseñar una funcionabilidad y es ahí donde entra el rediseño.


3.2.3. CODIFICACIÓN


Para poder empezar en la codificación, antes se debieron hacer pruebas unitarias de avances en diseño a los clientes, para así, poder establecer los requerimientos primordiales.


Uno de los mejores mecanismos para hacer que la codificación funcione de manera correcta es la unión de dos personas del equipo, es decir, la programación en parejas, cada una de estas personas, con características distintas y especializadas en distintas áreas puede encargarse de tareas distintas dentro de un mismo código.


7.png

Gráfico 3.5: Codificación en XP.


3.2.4. PRUEBAS


Las pruebas unitarias son la medida de comprobación de la funcionabilidad de cada uno de los módulos o componentes del sistema, estas pueden ser ejecutadas a diario y brindan una información del avance que tiene el proyecto.


8.png

Gráfico 3.6: Pruebas en XP.


Hacer pruebas de funcionamiento es primordial si se requiere un software sin errores, y realizar pruebas a diario y por separado ayuda a que lo que se entregue al cliente sea un producto final confiable.


Las pruebas no solamente las realiza el desarrollador con su equipo, sino que también interviene el cliente, él tiene la última palabra, y si tiene nuevos requerimientos puede darlos en el momento de las pruebas, a esto se le llama pruebas del cliente.


3.3. XP INDUSTRIAL


Este tipo de programación extrema es una variante de XP, la cual se enfoca mucho más en el cliente y obviamente en sus requerimientos, su característica en común con XP es la realización de las pruebas. Este tipo de XP denominado también IXP tiene 6 técnicas explicadas a continuación.


3.png

Gráfico 3.7: Técnicas de XP Industrial.


3.4. DEBATE XP


  • La programación extrema tiene muchas ventajas, sin embargo no es aconsejable si no se disminuye el costo del tiempo de producción, debido a que tiene muchas limitaciones, por ejemplo, qué pasaría si los programadores se encuentran en lugares separados, entonces no se podría dar la programación en pares. (Pressman, R. 2010).

  • Otra de sus limitaciones es la documentación, la cual es importante como manual para el usuario y para siguientes programadores.

  • XP, se orienta demasiado a la POO (Programación Orientada a Objetos) asumiendo que todos los proyectos trabajan bajo la misma.

  • Existen demasiadas pruebas en el software lo cual puede llevar al retraso y a una excesiva fabricación de diseño.

4.png

Gráfico 3.8: Personas a favor y encontra de XP


IV. CONCLUSIÓN

La programación extrema es una metodología muy ligera que facilita la creación de un proyecto de software, ya que es eficiente y flexible, esta tiene técnicas y herramientas que le facilitan llegar a una meta la cual es satisfacer al cliente mediante la entrega oportuna de un software de calidad.


Uno de los más grandes ejemplos de sistemas de software que implementan la Programación extrema, es el software libre, el cual no tiene una excelente documentación, pero si, en muchos casos, excelencia de calidad.


Existen algunos contras en cuanto a XP y algunas de sus técnicas, por ejemplo las pruebas constantes podrían ocasionar una pérdida de tiempo en el diseño, por lo que el desarrollo podría volverse no tan ligero.


La programación extrema mediante sus 4 actividades estructurales de planeación, diseño, codificación y pruebas, busca volverse cada vez más popular en el mundo del desarrollo, logrando así ser muy nombrada en la actualidad, permitiendo que muchas personas la conozcan.

V. BIBLIOGRAFÍA


Blanco, S. s.f. Metodologías de desarrollo. (En línea). ES. Consultado, 06 de mayo de 2015. Formato HTML. Disponible en: http://www.marblestation.com/?p=644


Canós, J; Letelier, P y Penadés, M. s.f. Metodología de Software Ágil. ES. Consultado, 06 de mayo de 2015. Formato PDF. Disponible en: http://noqualityinside.com/nqi/nqifiles/XP_Agil.pdf


Carvajal, J. 2008. Metodologías Ágiles. ES. Consultado, 06 de mayo de 2015. Formato PDF. Disponible en: https://upcommons.upc.edu/pfc/bitstream/2099.1/5608/1/50015.pdf


Espinoza, E. 2007. Maestría en Ingeniería de Sistemas con Mención en Gestión En Tecnología de la Información. PE. Consultado, 06 de mayo de 2015. Formato PPT. Disponible en: http://es.slideshare.net/edgarespinoza/programacion-extrema?next_slideshow=1


Pressman, R. 2010. Ingeniería de software: Un enfoque práctico. 7 ed. México. Mc Graw Hill. p 805.

Tecno Tips. 2012. Programación extrema: “Metodología para desarrollo ágil de aplicaciones”. Universo, Veracruz, ME. Jun, 11. p 1.


bottom of page