Está en la página 1de 12

equipo

El cliente forma parte de nuestro

LabVida ESPOL FIEC Ingeniera de Software II

INTEGRANTES: Leonel Bernab Marco Prieto Roberto Villn Michael Wong

Programacin Extrema (Borrador)


Versin 1.0

Materia: Ingeniera de Software 2 Profesor: Ing. Vernica Macas Ultima Revisin: 18/12/2010 LabVida

ESCUELA SUPERIOR POLITCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computacin Versin: 1.0 Pg. 1 de 12

equipo

El cliente forma parte de nuestro

Historial de Revisin
Fecha Versin Descripcin Autor

18/12/10

1.0

Creacin del borrador para la exposicin de Programacin Extrema.

MP, LB, MW, RV

Materia: Ingeniera de Software 2 Profesor: Ing. Vernica Macas Ultima Revisin: 18/12/2010 LabVida

ESCUELA SUPERIOR POLITCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computacin Versin: 1.0 Pg. 2 de 12

equipo

El cliente forma parte de nuestro

INTRODUCCIN En el mbito empresarial de la programacin y el desarrollo de software resulta vital la definicin temprana, de forma clara y completa, de las necesidades del usuario (cliente) para la definicin de la calidad del software a elaborar, de tal forma que el proceso de desarrollo apunte a la satisfaccin de las mismas y que el producto logrado corresponda a lo planificado. Por otra parte, el desarrollo de software abarca un proceso, que al igual que toda actividad humana, est expuesta a la ocurrencia de errores y la inclusin de cambios lo que la hace dinmica y no rgida ni del todo predecible o controlable. En tal sentido, la programacin tradicional abri paso a nuevas propuestas de programacin que permitieran considerar estos aspectos como elementos inherentes y bsicos en la elaboracin de un software, por lo que la metodologa y proceso a desarrollar requiere ser flexible y adaptable, adems de permitir la revisin continua del trabajo. Por estas razones, surge la Programacin Extrema que propone el llevar ciertas actividades rgidas a un extremo para dar la versatilidad y adaptabilidad necesarias al proceso de tal forma que se minimicen los elementos adversos optimizando el trabajo. De all que este modelo de programacin se clasifique dentro de las metodologas giles. Debido a su contribucin en cuanto al modo de concebir y llevar a cabo el desarrollo de un software se hace necesario conocer esta metodologa tericamente a fin de comprenderla, valorarla y poder comparar lo que ofrece con el resto de mtodos principales usados en el desarrollo de software. En consecuencia se ha llevado a cabo una investigacin acerca de la XP, Extreme Programming cuyos resultados se exponen en el presente informe, que incluye: definicin, origen, caractersticas, objetivos, principios, variables, valores, las actividades y prcticas que abarca, artefactos que usa, el ciclo de vida del proceso, actores involucrados y algunas crticas que se hacen a este modelo.

Materia: Ingeniera de Software 2 Profesor: Ing. Vernica Macas Ultima Revisin: 18/12/2010 LabVida

ESCUELA SUPERIOR POLITCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computacin Versin: 1.0 Pg. 3 de 12

equipo

El cliente forma parte de nuestro

LA PROGRAMACIN EXTREMA La expresin programacin extrema es la traduccin (del ingls) de Extreme Programming (XP) acuada por Kent Beck. Fue denominada extrema porque lleva a lmites extremos algunos elementos y actividades comunes de la forma tradicional de programar. Por esta razn, tal como lo expresa Beck, (1999) la XP es una metodologa gil para pequeos a medianos equipos, que modela el proceso de desarrollo de software cuando los requerimientos son ambiguos o rpidamente cambiantes. Algunos autores (Anaya, 2009: Agull, 2005; Urbina, 2009; Fowler, 2003) consideran que la programacin extrema como una metodologa de programacin que se tipifica como gil por ser adaptable y flexible a diferencia de la tradicional. No obstante otros autores (Calero, 2003; Fernndez, 2002; Wake, 2005) difieren de esta posicin y aluden que, ms que una metodologa la XP se constituye en un modelo del proceso de programacin e incluso una disciplina, ya que no slo muestra los pasos a seguir en el desarrollo del software sino que especfica la dinmica entre los actores y la operatividad en el desarrollo del proyecto.

Materia: Ingeniera de Software 2 Profesor: Ing. Vernica Macas Ultima Revisin: 18/12/2010 LabVida

ESCUELA SUPERIOR POLITCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computacin Versin: 1.0 Pg. 4 de 12

equipo

El cliente forma parte de nuestro

CARACTERSTICAS DE LA PROGRAMACIN EXTREMA La programacin extrema, es una metodologa gil para desarrollar software. En contraste con las metodologas tradicionales, burocrticas y poco giles, la XP tiene las siguientes caractersticas: 1. Est orientada a quien produce y usa el software. 2. Reduce el costo del cambio en todas las etapas del ciclo de vida del sistema. 3. Combina las que han demostrado ser las mejores prcticas para desarrollar software y las lleva al extremo. Cuando se aplica los principios de la XP, el costo del cambio idealmente, se mantiene constante. La XP puede describirse por los siguientes puntos: Empieza en pequeo y aade funcionalidad con retroalimentacin continua. El manejo del cambio se convierte en parte sustantiva del proceso. El costo del cambio no depende de la fase o etapa. No introduce funcionalidades antes de que sean necesarias. El cliente o el usuario se convierte en miembro del mismo equipo. La XP prescribe un conjunto de valores y prcticas, que permite a los desarrolladores dedicarse a lo que hacen mejor: programar. La XP elimina la necesidad de dedicar tiepo a labores tediosas y burocrticas, prescritas por los procesos no giles, tales como: exhaustivos documentos de proyecto, diagramas de Gantt, enormes
Materia: Ingeniera de Software 2 Profesor: Ing. Vernica Macas Ultima Revisin: 18/12/2010 LabVida ESCUELA SUPERIOR POLITCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computacin Versin: 1.0 Pg. 5 de 12

volmenes de listas interminables, etc.

de

requerimientos,

equipo

El cliente forma parte de nuestro

untas

de

revisin

VALORES DE LA PROGRAMACIN EXTREMA Los valores fundamentales de la XP pueden resumirse de la siguiente manera: Comunicacin: Algunos problemas en los proyectos tienen su origen cuando alguien no dice algo importante en su momento. XP hace casi imposible la falta de comunicacin. Simplicidad: En relacin al proceso y la codificacin, XP propone el principio de hacer la cosa ms simple que funcionar. Es mejor hacer hoy algo simple, que hacerlo complicado y sin probabilidades de uso maana. Retroalimentacin: La retroalimentacin concreta y frecuente del cliente, el equipo y los usuarios finales, da una mayor oportunidad para dirigir el esfuerzo eficientemente. Coraje: El coraje como valor, existe en el contexto de los otros 3 valores.

METODOLOGA AGIL Las metodologas giles forman parte del movimiento de desarrollo gil de software, que se basan en la adaptabilidad de cualquier cambio como medio para aumentar las posibilidades de xito de un proyecto.

El Manifiesto de la metodologa gil: 1. Al individuo y las interacciones del equipo de desarrollo sobre el proceso y las herramientas. 2. Desarrollar software que funciona ms que conseguir una buena documentacin. 3. La colaboracin con el cliente ms que la negociacin de un contrato.
Materia: Ingeniera de Software 2 Profesor: Ing. Vernica Macas Ultima Revisin: 18/12/2010 LabVida ESCUELA SUPERIOR POLITCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computacin Versin: 1.0 Pg. 6 de 12

4. Responder a los cambios ms que seguir estrictamente un plan. Las Metodologas giles (MAs) valoran:

equipo

El cliente forma parte de nuestro

Al individuo y las interacciones en el equipo de desarrollo ms que a las actividades y las herramientas. Desarrollar software que funciona ms que conseguir una buena documentacin Minimalismo respecto del modelado y la documentacin del sistema. La colaboracin con el cliente ms que la negociacin de un contrato. Responder a los cambios ms que seguir estrictamente una planificacin.

METODOLOGA GIL (XP) VS TRADICIONAL

Metodologa gil Pocos Artefactos. El modelado es prescindible, modelos desechables. Pocos Roles, ms genricos y flexibles No existe un contrato tradicional, debe ser bastante flexible Cliente es parte del equipo de desarrollo (adems in-situ)
Materia: Ingeniera de Software 2 Profesor: Ing. Vernica Macas Ultima Revisin: 18/12/2010 LabVida

Metodologa Tradicional Ms Artefactos. El modelado es esencial, mantenimiento de modelos Ms Roles, ms especficos

Existe un contrato prefijado

El cliente interacta con el equipo de desarrollo mediante reuniones


ESCUELA SUPERIOR POLITCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computacin Versin: 1.0 Pg. 7 de 12

equipo

El cliente forma parte de nuestro

Orientada a proyectos pequeos. Corta duracin (o entregas frecuentes), equipos pequeos (< 10 integrantes) y trabajando en el mismo sitio La arquitectura se va definiendo y mejorando a lo largo del proyecto nfasis en los aspectos humanos: el individuo y el trabajo en equipo Se esperan cambios durante el proyecto

Aplicables a proyectos de cualquier tamao, pero suelen ser especialmente efectivas/usadas en proyectos grandes y con equipos posiblemente dispersos

Se promueve que la arquitectura se defina tempranamente en el proyecto nfasis en la definicin del proceso: roles, actividades y artefactos Se espera que no ocurran cambios de gran impacto durante el proyecto

Materia: Ingeniera de Software 2 Profesor: Ing. Vernica Macas Ultima Revisin: 18/12/2010 LabVida

ESCUELA SUPERIOR POLITCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computacin Versin: 1.0 Pg. 8 de 12

equipo

El cliente forma parte de nuestro

ESQUEMA DE LA PROGRAMACIN EXTREMA La programacin extrema utiliza un enfoque orientado a objetos como paradigma de programacin preferido. En la siguiente imagen podemos observar el ciclo de vida tpico que utiliza esta metodologa.

Planificacin: Es la primera actividad en el proceso de desarrollo. Comienza creando una serie de historias de usuarios (similares a los casos de uso) que describen la funcionalidad del software que se va a construir. El cliente les asigna una prioridad y el equipo de desarrollo evala cada una y le asigna un periodo de desarrollo. Si la historia supera ms de tres semanas de desarrollo se divide la historia en historias menores. Una vez establecido un acuerdo detallando la fecha de entrega, el equipo de desarrollo ordena las historias para implementar antes las que tengan mayor prioridad. Conforme avanza el trabajo de desarrollo, el cliente puede agregar nuevas historias con nueva funcionalidad, de esta manera, la programacin extrema es una metodologa que acepta fcilmente requisitos cambiantes durante el desarrollo de software. Diseo: El diseo en la programacin extrema sigue el principio de hacerlo todo simple. El diseo se va modificando a lo largo de todo el proceso de desarrollo.
Materia: Ingeniera de Software 2 Profesor: Ing. Vernica Macas Ultima Revisin: 18/12/2010 LabVida ESCUELA SUPERIOR POLITCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computacin Versin: 1.0 Pg. 9 de 12

Codificacin: La programacin extrema recomiendo que despus de disear las historias el equipo no deba comenzar la codificacin sino que debe desarrollar una serie de pruebas de unidad que les ayuden a centrarse en lo que debe implementase para pasar esa prueba. Un concepto clave en esta etapa es la programacin en pareja de tal forma que dos personas trabajan juntas en un ordenador para crear el cdigo de una historia siguiendo un estndar de codificacin. Este enfoque asegura la calidad del cdigo, ya que dos cabezas piensan mejor que una, adems permite la rpida comunicacin entre las dos personas y un mejor conocimiento del problema que se quiere solucionar. Pruebas: Las pruebas de unidad creadas deber ser automatizadas para que puedan ejecutarse de manera fcil y rpida. De esta forma podemos modificar el cdigo y asegurarnos que funciona pese a los cambios producidos.

equipo

El cliente forma parte de nuestro

RESUMEN Podemos resumir la programacin extrema de la siguiente manera: - Planificacin incremental: Los requerimientos se registran en tarjetas de historias. Los desarrolladores dividen estas historias en Tareas de desarrollo. - Entregas pequeas: Primero se desarrolla una versin con la funcionalidad ms importante. Despus se van aadiendo funcionalidades a las distintas entregas. - Diseo sencillo: Solo se lleva a cabo el diseo necesario para cumplir con los requerimientos actuales. - Desarrollo previamente probado: Se utilizan pruebas automatizadas antes de escribir cdigo. - Programacin en parejas: Las parejas de desarrolladores trabajan en todas las reas del sistema. - Integracin continua: Cuando acaba el trabajo de una historia se integra en el sistema entero. despus de la integracin se deben pasar todas las pruebas de unidad. - Cliente presente: El cliente debe estar disponible ya que es miembro del equipo de desarrollo y es responsable de formular los requerimientos del sistema para que se puedan implementar.

Materia: Ingeniera de Software 2 Profesor: Ing. Vernica Macas Ultima Revisin: 18/12/2010 LabVida

ESCUELA SUPERIOR POLITCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computacin Versin: 1.0 Pg. 10 de 12

equipo

El cliente forma parte de nuestro

REFERENCIAS:
Extreme Programming: http://www.menloinnovations.com/freestuff/articles/extremeprogramming.ht m 10.1.1.95.613: http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.95.613&rep=rep1&type=pdf 10.1.1.18.2870: http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.18.2870&rep=rep1&type=pdf 10.1.1.26.1711: http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.26.1711&rep=rep1&type=pdf re02-essen.doc: http://c2.com/cgi/wiki?ExtremeProgrammingModifiedPaper 10.1.1.19.6220: http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.19.6220&rep=rep1&type=pdf Programacin Extrema: http://www.extremeprogramming.org/ http://www.willydev.net/descargas/articulos/general/xplibreap.aspx Cutter Consortium Extreme Programming: http://rockfish-cs.cs.unc.edu/COMP290-s03/xp-highsmith.pdf

Materia: Ingeniera de Software 2 Profesor: Ing. Vernica Macas Ultima Revisin: 18/12/2010 LabVida

ESCUELA SUPERIOR POLITCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computacin Versin: 1.0 Pg. 11 de 12

Rbrica de Co-Evaluacin

equipo

El cliente forma parte de nuestro

Leonel Bernab Leonel Bernab Marco Prieto Roberto Villn Michael Wong TOTAL 100 100 100 100 100

Marco Prieto 100 100 100 100 100

Roberto Villn 100 100 100 100 100

Michael Wong 100 100 100 100 100

Materia: Ingeniera de Software 2 Profesor: Ing. Vernica Macas Ultima Revisin: 18/12/2010 LabVida

ESCUELA SUPERIOR POLITCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computacin Versin: 1.0 Pg. 12 de 12

También podría gustarte