Академический Документы
Профессиональный Документы
Культура Документы
Estas fases se dividen, a su vez, en subfases de desarrollo que poseen una serie de
pasos que permiten realizar un adecuado desarrollo del proyecto.
Fase: Planificación del proyecto.
Historias de usuario: El primer paso de cualquier proyecto que siga la metodología X.P
es definir las historias de usuario con el cliente. Las historias de usuario tienen la
misma finalidad que los casos de uso pero con algunas diferencias: Constan de 3 ó 4
líneas escritas por el cliente en un lenguaje no técnico sin hacer mucho hincapié en los
detalles; no se debe hablar ni de posibles algoritmos para su implementación ni de
diseños de base de datos adecuados, etc. Son usadas para estimar tiempos de
desarrollo de la parte de la aplicación que describen. También se utilizan en la fase
de pruebas, para verificar si el programa cumple con lo que especifica la historia de
usuario. Cuando llega la hora de implementar una historia de usuario, el cliente y los
desarrolladores se reúnen para concretar y detallar lo que tiene que hacer dicha
historia. El tiempo de desarrollo ideal para una historia de usuario es entre 1 y 3
semanas.
Fase: Diseño.
Diseños simples: La metodología X.P sugiere que hay que conseguir diseños simples y
sencillos. Hay que procurar hacerlo todo lo menos complicado posible para conseguir
un diseño fácilmente entendible e impleméntable que a la larga costará menos tiempo
y esfuerzo desarrollar.
Las tarjetas C.R.C representan objetos; la clase a la que pertenece el objeto se puede
escribir en la parte de arriba de la tarjeta, en una columna a la izquierda se pueden
escribir las responsabilidades u objetivos que debe cumplir el objeto y a la derecha, las
clases que colaboran con cada responsabilidad.
Fase: Codificación.
La optimización del código siempre se debe dejar para el final. Hay que hacer que
funcione y que sea correcto, más tarde se puede optimizar.
X.P afirma que la mayoría de los proyectos que necesiten más tiempo extra que el
planificado para ser finalizados no podrán ser terminados a tiempo se haga lo que se
haga, aunque se añadan más desarrolladores y se incrementen los recursos. La
solución que plantea X.P es realizar un nuevo "Release plan" para concretar los nuevos
tiempos de publicación y de velocidad del proyecto.
Se deben crear las aplicaciones que realizarán los test con un entorno de desarrollo
específico para test.
Hay que someter a tests las distintas clases del sistema omitiendo los métodos más
triviales.
Se deben crear los test que pasarán los códigos antes de implementarlos; en el
apartado anterior se explicó la importancia de crear antes los test que el código.
Un punto importante es crear test que no tengan ninguna dependencia del código que
en un futuro evaluará. Hay que crear los test abstrayéndose del futuro código, de esta
forma aseguraremos la independencia del test respecto al código que evalúa.
El uso de los test es adecuado para observar la refactorización. Los test permiten
verificar que un cambio en la estructura de un código no tiene por qué cambiar su
funcionamiento.
Test de aceptación. Los test mencionados anteriormente sirven para evaluar las
distintas tareas en las que ha sido dividida una historia de usuario. Para asegurar el
funcionamiento final de una determinada historia de usuario se deben crear "Test de
aceptación"; estos test son creados y usados por los clientes para comprobar que las
distintas historias de usuario cumplen su cometido.
Esta metodología trabaja cuatro fases principales que a la vez contienen subfases de
desarrollo, en la figura 5. se detalla el diagrama correspondiente a la metodología XP.
1
Ibíd.
2
Ibíd.
Figura 5. Fases del la Metodología XP
(Tomado de Introducción a Extreme Programming)3
Las historias de usuario tienen el mismo propósito que los casos de uso, pero no son lo
mismo. Las escriben los propios clientes tal y como ven ellos las necesidades del
3
Introducción a Extreme Programming [en línea]. (Consultado en Marzo de 2008)
http://www.dsi.uclm.es/asignaturas/42551/trabajosAnteriores/Presentacion-XP.pdf
sistema. Por tanto serán descripciones cortas y escritas en el lenguaje del usuario, sin
terminología técnica4.
Notas:
Tareas de Seguimiento
Fecha Estado Hacer Observaciones
El Plan de entregas está basado en las historias de usuario, se usan para crear los
planes de iteración y consisten en un cronograma elaborado en conjunto con el cliente
con fechas de pequeñas entregas que son revisadas en cada reunión ya que allí están
presentes tanto desarrolladores como usuarios. De esta forma se puede trazar el plan
de entregas en función de dos parámetros: tiempo de desarrollo ideal y grado de
importancia para el cliente. Las iteraciones individuales son planificadas en detalle
justo antes de que comience cada iteración.
En las iteraciones los clientes seleccionan las historias de usuario que serán
implementadas en cada iteración, también seleccionan las historias de usuario que no
4
Introducción a Extreme Programming [en línea]. (Consultado en Marzo de 2008
http://www.dsi.uclm.es/asignaturas/42551/trabajosAnteriores/Trabajo-XP.pdf
5
Ibíd.
pasaron el test de aceptación que se realizó al terminar la iteración anterior. El trabajo
de cada iteración es expresado en tareas de programación que son asignadas a un
programador como responsable, pero llevadas a cabo por parejas de programadores.
Una tarjeta CRC representa un objeto, mediante la utilización de estas tarjetas se logra
que todo el equipo de trabajo contribuya en la tarea de diseño ya que en ellas se
definen las acciones que cumple cada clase6.
El diseño de estas tarjetas permite el trabajo en equipo y cumple con tres principios
básicos: Cargo o Clase, Responsabilidad y Colaboración (CRC). Las tarjetas CRC
6
Introducción a Extreme Programming [en línea]. (Consultado en Marzo de 2008)
http://www.dsi.uclm.es/asignaturas/42551/trabajosAnteriores/Trabajo-XP.pdf
permiten que el equipo completo contribuya en la tarea del diseño, en ellas se registra
el nombre de la clase a modo de título, las responsabilidades se colocan a la izquierda
y las clases que se implican en cada responsabilidad a la derecha, en la misma línea
que su requerimiento correspondiente como se muestra en la figura 7.
La fase de Desarrollo reúne una serie de características o cualidades que basan todo el
desarrollo general del proyecto:
Disponibilidad del cliente.
Unidad de Pruebas.
Programación por parejas.
Para la metodología XP es fundamental contar con el apoyo y la disponibilidad del
cliente7, porque es la persona encargada de revisar y decidir si lo que se está haciendo
cubre las necesidades adecuadas para el proyecto; de este modo el cliente se
convierte en parte del equipo. En la plantación previa del proyecto el cliente es quien
elige las historias de usuarios que se deben utilizar a lo largo de la implementación. Es
con el cliente con quien se negocian los plazos para las entregas de avances de la
ejecución del proyecto. Luego es el quién revisa los resultados obtenidos y aprueba el
funcionamiento del proyecto.
Para que el plan de desarrollo tenga éxito es indispensable que las personas que lo
trabajan cuenten con la herramienta y el conocimiento suficiente para sacarlo
adelante. De esta manera, se incrementará la calidad del software desarrollado sin
afectar el tiempo de entrega. Para que funcione la programación en parejas, ambas
personas deben crear un método que les ayude a avanzar de manera eficiente en la
implementación del proyecto; mientras uno trabaja en la implementación de tareas, el
otro verifica que se esté desarrollando el proyecto de acuerdo a los parámetros de
calidad establecidos.
Fase de pruebas, las unidades o test de pruebas son parte indispensable de la Extreme
Programming (XP). Estas se convierten en una herramienta de desarrollo y material de
apoyo, mas no en un paso de verificación que puede despreciarse por más que parezca
que el código esté funcionando correctamente. Es por esto que la metodología XP
7
Introducción a Extreme Programming [en línea]. (Consultado en Marzo de 2008)
http://www.dsi.uclm.es/asignaturas/42551/trabajosAnteriores/Trabajo-XP.pdf
exige constantes pruebas en el desarrollo, ya que descubrir todos los errores que
puedan presentarse lleva tiempo y más si se dejan para el final del proyecto.
3. METODOLOGIA DE DESARROLLO.
En esta fase se realizó toda la planeación general de proyecto, el Dr. Nicolás Barbosa
como usuario final relato los requerimientos del proyecto y entrego la documentación
correspondiente al test de Carrera de Navette de la Batería de condición física Eurofit,
con base en esta historia de usuario, con el Ingeniero Efraín Patiño, director del
proyecto se realizó la distribución de tareas, el cronograma de entregas y la
programación de las reuniones que se muestran a continuación.
3.2. DISEÑO
Para esta fase se realizo el análisis de las historias de usuario y los requerimientos con
el fin de diseñar el software, se desarrollo una metáfora del sistema en la cual se relata
el funcionamiento del sistema, las tarjetas CRC para realizar la distribución de las
tareas especifica y un plan de posibles errores para implementar la solución,
inicialmente se presento un diseño en borrador al cliente y luego de las correcciones
realizadas se procedió al desarrollo
3.2.1 Metáfora del sistema Este sistema representa la sistematización del test de
Carrera Navette el cual se realiza en un espacio plano con dos líneas paralelas a 20 m
de distancia, los participantes de la prueba se encuentran registran en la base de datos
QAPACE con sus datos principales, documento, nombre, edad, peso, talla, entre otros,
son consultados por medio del software e incluidos en la tabla de registros de la
prueba que esta diseñada para 10 participantes, una vez la tabla se encuentre
diligenciada o con al menos un participante se da inicio a la prueba, los participantes se
pondrán en marcha al oír la señal de salida, tendrán que desplazarse hasta la línea
contraria (20 m) y pisarla esperando volver a oír la siguiente señal y repetirán
constantemente este ciclo hasta que no pueda llegar a pisar la línea en el momento
que lo señale el magnetófono. Durante cada ciclo de desplazamiento por medio de
los sensores se garantiza que el participante llegue a los dos extremos y se registra el
dato correspondiente a un palier o periodo que es cuando el participante regrese a su
sitio de origen.
3.2.2. Tarjetas CRC. Se realizo la distribución de las tareas registrando en las tarjetas
CRC las principales responsabilidades del sistema y especificando las acciones a realizar
por cada una. Las principales responsabilidades que implementa el sistema son:
Conexión a Base de Datos, Consulta, registro y realizar prueba, para cada una se realizo
su respectiva tarjeta CRC.
Luego de tener definido un diseño previo con las validaciones necesarias y la solución a
posibles errores, se procede a realizar el desarrollo del software con la aprobación y
acompañamiento continuo del cliente.
3.4. PRUEBAS.
3.4.1. Implantación.
FALTA COMPLETAR
I. Exploración
En esta fase, los clientes plantean a grandes rasgos las historias de usuario que
son de interés para la primera entrega del producto. Al mismo tiempo el equipo
de desarrollo se familiariza con las herramientas, tecnologías y prácticas que se
utilizarán en el proyecto. Se prueba la tecnología y se exploran las posibilidades
de la arquitectura del sistema construyendo un prototipo. La fase de exploración
toma de pocas semanas a pocos meses, dependiendo del tamaño y familiaridad
que tengan los programadores con la tecnología.
III. Iteraciones
Esta fase incluye varias iteraciones sobre el sistema antes de ser entregado. El
Plan de Entrega está compuesto por iteraciones de no más de tres semanas. En la
primera iteración se puede intentar establecer una arquitectura del sistema que
pueda ser utilizada durante el resto del proyecto. Esto se logra escogiendo las
historias que fuercen la creación de esta arquitectura, sin embargo, esto no
siempre es posible ya que es el cliente quien decide qué historias se
implementarán en cada iteración (para maximizar el valor de negocio). Al final
de la última iteración el sistema estará listo para entrar en producción. Los
elementos que deben tomarse en cuenta durante la elaboración del Plan de la
Iteración son: historias de usuario no abordadas, velocidad del proyecto, pruebas
de aceptación no superadas en la iteración anterior y tareas no terminadas en la
iteración anterior. Todo el trabajo de la iteración es expresado en tareas de
programación, cada una de ellas es asignada a un programador como
responsable, pero llevadas a cabo por parejas de programadores.
IV. Producción
V. Mantenimiento
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 ocurre cuando el sistema no genera los beneficios esperados por el
cliente o cuando no hay presupuesto para mantenerlo.