Blogia

INGENIERIA DE SOFTWARE

PROGRAMACION EXTREMA

PROGRAMACION EXTREMA

La programación extrema o eXtreme Programming (XP) es un enfoque de la ingenieria de software formulado por Kent Beck, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es el más destacado de los procesos agiles 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.

INTERACCION CON EL CLIENTE

INTERACCION CON EL CLIENTE

En este tipo de programación el cliente pasa a ser parte implicada en el equipo de desarrollo.

Su importancia es máxima en el momento de tratar con los usuarios y en efectuar las reuniones de planificación. Tiene un papel importante de interacción con el equipo de programadores, sobre todo después de cada cambio, y de cada posible problema localizado, mostrando las prioridades,expresando sus sensaciones... En este tipo de programación existirán pruebas de aceptación de la programación que ayudarán a que su labor sea lo más provechosa posible.

Al fin y al cabo, el cliente se encuentra mucho más cerca del proceso de desarrollo. Se elimina la fase inicial de recopilación de requerimientos, y se permite que éstos se vayan cogiendo a lo largo del proyecto, de una manera ordenada. De esta forma se posibilita que el cliente pueda ir cambiando de opinión sobre la marcha, pero a cambio han de estar siempre disponibles para solucionar las dudas del equipo de desarrollo.

En XP aparece un nuevo concepto llamado “Historia de usuario”. Se trata de una lista de características que el cliente necesita que existan en el producto final. Estas constan de dos fases.

En la primera fase, el cliente describe con sus propias palabras las características y, es el responsable del equipo, el encargado de informarlo de las dificultades técnicas de cada una de ellas y de su coste. A consecuencia de este diálogo, el cliente deja por escrito un conjunto de historias y las ordena en función de la prioridad que tienen pera él. De esta manera ya es posible definir unas fechas aproximadas para ellos.

 En la segunda fase, el cliente cogerá las primeras historias a implementar y las dividirá en trabajos a realizar. El cliente también participa, pero hay más peso por parte del equipo de desarrolladores, esto dará como resultado una planificación más exacta. Este método se repetirá para cada historia. A diferencia de otras técnicas, como puede ser UML, en el caso de XP, se exige que sea el cliente el encargado de escribir los documentos con las especificaciones de lo que realmente quiere, como un documento de requisitos de usuario.

DISEÑO,DESARROLLO Y PRUEBAS

DISEÑO,DESARROLLO Y PRUEBAS

El desarrollo es la parte más importante en el proceso de la programación extrema. Todos los

trabajos tienen como objetivo que se programen lo más rápidamente posible, sin interrupciones y en

dirección correcta.

También es muy importante el diseño, y se establecen los mecanismos, para que éste sea revisado y

mejorado de manera continuada a lo largo del proyecto, según se van añadiendo funcionalidades al

mismo.

La clave del proceso de desarrollar XP es la comunicación. La mayoría de los problemas en los

proyectos son por falta de comunicación en el equipo.

En XP, aparece un nuevo concepto llamado Metáfora. Su principal objetivo es mejorar la

comunicación entre todos los integrantes del equipo, al crear una visión global y común de lo que se

quiere desarrollar. La metáfora tiene que ser expresada en términos conocidos por los integrantes

del equipo, por ejemplo comparando el sistema que se desarrollará con alguna cosa de la vida real.

Antes de empezar a codificar se tienen que hacer pruebas unitarias, es decir:

Cada vez que se quiere implementar una parte de código, en XP, se tiene que escribir una prueba

sencilla, y después escribir el código para que la pase. Una vez pasada se amplía y se continúa. En

XP hay una máxima que dice "Todo el código que puede fallar tiene que tener una prueba".

Con estas normas se obtiene un código simple y funcional de manera bastante rápida. Por esto es

importante pasar las pruebas al 100%.

Respecto a la integración del soft, en XP se ha de hacer una integración continua, es decir, cada vez

se tienen que ir integrando pequeños fragmentos de código, para evitar que al finalizar el proyecto

se tenga que invertir grandes esfuerzos en la integración final. En todo buen proyecto de XP, tendría

que existir una versión al día integrada, de manera que los cambios siempre se realicen en esta

última versión.

Otra peculiaridad de XP es que cada programador puede trabajar en cualquier parte del programa.

De esta manera se evita que haya partes "propietarias de cada programador". Por esto es tan

importante la integración diaria.

Para terminar, otra peculiaridad que tiene la XP. La de fomentar la programación en parejas, es

decir, hacer que los programadores no trabajen en solitario, sino que siempre estarán con otra

persona. Una pareja de programadores ha de compartir el teclado, el monitor y el ratón. El principio

fundamental de este hecho es realizar de manera continua y sin parar el desarrollo de código. Las

parejas tienen que ir cambiando de manera periódica, para hacer que el conocimiento se difunda en

el grupo. Está demostrado que de esta manera el trabajo es más eficaz y también se consigue más y

mejor código.

 

 

INGENIERIA DE SOFTWARE

INGENIERIA DE SOFTWARE

Ingeniería de software es la disciplina dentro de la informática encargada de la creación de software de calidad. El software es el conjunto de instrucciones que permite al hardware de la computadora desempeñar trabajo útil. En las últimas décadas del siglo XX, las reducciones de costo en hardware llevaron a que el software fuera un componente que participa en muchos de los dispositivos usados por las sociedades industrializadas. Asimismo, se considera parte del software a la documentación generada durante el desarrollo del proyecto.

En el 2004, en los Estados Unidos, la Oficina de Estadísticas del Trabajo (U. S. Bureau of Labor Statistics) contó 760.840 ingenieros de software de computadora con trabajo.[1] El término "ingeniero de software", sin embargo, se utiliza en forma genérica en el ambiente empresarial, y no todos los ingenieros de software poseen realmente títulos de Ingeniería de universidades reconocidas.

Algunas personas piensan que Desarrollo de Software es un término más apropiado que Ingeniería de Software para el proceso de crear software. Personas como Pete McBreen (autor de "Software Craftmanship") cree que el término IS implica niveles de rigor y prueba de procesos que no son apropiados para todo tipo de desarrollo de software.

HISTORIA DE LA PROGRAMACION EXTREMA

HISTORIA DE LA PROGRAMACION EXTREMA

La Programación Extrema, como proceso de creación de software diferente al convencional, nace de la mano de Kent Beck (gurú de la XP y autor de los libros más influyentes sobre el tema).

Chrysler Corporation hacía tiempo que estaba desarrollando una aplicación de nóminas, pero sin demasiado éxito por parte de la gente que tenía en el proyecto. El verano de 1996, Beck entró en nómina en la compañía y se le pidió de hacer esta aplicación como trabajo. Es en esta aplicación cuando nace la Programación Extrema como tal.

Beck reconoció que el proceso (o metodología) de creación de software o la carencia de este era la causa de todos los problemas y llegó a la conclusión que para proporcionar un proceso que fuera flexible era necesario realizar ciertos cambios en la estructura o manera de hacer de los programadores, los cuales se tenían que acomodar al cambio a realizar.

El tenía varias ideas de metodologías para la realización de programas que eran cruciales para el buen desarrollo de cualquier sistema.

Las ideas primordiales de su sistema las comunicó en la revista C++ Magazine en una entrevista que ésta le hizo el año 1999. En ésta decía que él estaba convencido que la mejor metodología era un proceso que enfatizase la comunicación dentro del equipo, que la implementación fuera sencilla, que el usuario tenía que estar muy informado y implicado y que la toma de decisiones tenía que ser muy rápida y efectiva.

Los autores (o mejor dicho, los propulsores como el propio Kent Beck, Ward Cunningham o Ron Jeffries entre otros) de la Programación Extrema, fueron a la web Portland Pattern Repository y empezaron a hablar de ella y promocionarla, de lo que era y cómo realizarla. Estos propulsores de la XP hablaban de ella en cada ocasión que tenían y en cada página que, poco o mucho hablara de temas de programación.

Este hecho, llegó a molestar a buena parte de la comunidad que intentaba discutir sobre temas de programación. Fue tanta esta molestia que nació el fenómeno XP Free Zone (zona libre de XP) en determinadas webs como petición de no hablar de Programación Extrema en ella.

La discusión sobre temas de diseño de modelos de programación sobre los cambios recientes se hizo tema difícil porque la mayoría de la actividad fue relacionada con la Programación Extrema. Eventualmente, y debido a ésto, la mayoría de la gente que solía discutir sobre los temas de diseño de modelos de programación fue apartándose de este ambiente para discutir sus ideas en otros ambientes más "reservados". La comunidad empezó a referirse a estos sitios como a Salas Wiki (Wards Wiki).