La programación extrema o eXtreme Programming (XP) es un enfoque de la ingeniería de software formulado por Kent Beck, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es la más destacada de los procesos ágiles de desarrollo de software. Al igual que éstos, la programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos.Se puede considerar la programación extrema como la adopción de las mejores metodologías de desarrollo de acuerdo a lo que se pretende llevar a cabo con el proyecto, y aplicarlo de manera dinámica durante el ciclo de vida del software.
Las características fundamentales del método son:
* Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras.
* Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación. Véase, por ejemplo, las herramientas de prueba JUnit orientada a Java y DUnit orientada a Delphi e inspirada en JUnit.
* 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 manera -el código es revisado y discutido mientras se escribe- es más importante que la posible pérdida de productividad inmediata.
* Frecuente interacción del equipo de programación con el cliente o usuario. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo.
* Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes.
* Refactorización del código, es decir, reescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento. Las pruebas han de garantizar que en la refactorización no se ha introducido ningún fallo.
* Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de 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 garantizan que los posibles errores serán detectados.
* Simplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrá añadir funcionalidad si es necesario. La programación extrema apuesta que es más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca utilizarlo.
Articulo Completo Wikipedia
martes, 2 de octubre de 2007
Suscribirse a:
Comentarios de la entrada (Atom)
Entradas populares
-
Cada vez que utilizo Git para realizar el tracking y el control de versiones en un software más estoy convencido de las bondades que bri...
-
A la hora de crear arte hecho codigo fuente, muchas veces necesitamos un buen editor para escribir nuestro codigo, un compilador a mano o in...
-
Los Diagramas de Tiempo de UML se usan para mostrar el cambio en el estado o valor de uno o más elementos tomando en cuenta el factor tiemp...
-
Un diagrama de colaboración, se puede decir que es una forma alternativa al diagrama de secuencias a la hora de mostrar un escenario. Este t...
-
En la arquitectura de programación de niveles, el término “nivel” y “capa” no significa lo mismo ni tampoco son similares El término ...
-
Hoy les quería dejar un How-To de como hago para fusionar Symfony2 y el Bootstrap de Twitter , de esa forma lograr tener unas mejores vista...
-
Los Casos de Usos no forma parte de la llamada Fase de Diseño, sino parte de la fase de Análisis, respondiendo el interrogante ¿Qué? . De f...
-
Un estado es una condición durante la vida de un objeto, de forma que cuando dicha condición se satisface se lleva a cabo alguna acción o se...
-
Este es otro tip de Vim para poder sobrellevar todas las situaciones que se nos presenten, por alguna razón hoy me encontré con la sigui...
-
Yaml es un formato de serealización de datos inspirado básicamente en los lenguajes Python y XML que desde hace 13 años ya se transfor...
No hay comentarios.:
Publicar un comentario