Beruflich Dokumente
Kultur Dokumente
572
tamarakasiak@ugd.edu.ar; diegodoy@ugd.edu.ar
Resumen
Administrar Proyectos de Software siguiendo Programacin Extrema (XP) implica implementar, de forma conjunta y al extremo, prcticas ya conocidas en el mbito del Desarrollo de Software, lo que torna a esta actividad an ms compleja. Como una manera de tratar esta complejidad, es que se ha construido un Modelo Dinmico de Simulacin (siguiendo los lineamientos de la Dinmica de Sistemas), que agrupa las variables involucradas en un proyecto llevado a cabo con XP, que permite analizar el efecto de la implementacin conjunta de las prcticas de dicha metodologa y ayuda en la gestin de este tipo de proyectos. El modelo presentado en este trabajo corresponde al Subsistema de Desarrollo de Tareas, uno de los ms importantes. Este modelo se ha validado con datos de dos proyectos reales. Adems, se han diseado y ejecutado una serie de experimentos sobre el mismo y se ha realizado el Anlisis de Sensibilidad de sus variables ms importantes. El modelo construido sirve como ayuda a administradores de proyectos novatos, permitindoles conocer de antemano las consecuencias de sus decisiones.
Trabajo de Grado titulado Modelo de Simulacin Dinmico de Gestin de Proyectos de Desarrollo de Software que utilizan Programacin Extrema, de la carrera Licenciatura en Sistemas de Informacin de la Universidad Gastn Dachary.
Introduccin
En el mbito de la Ingeniera del Software la evolucin de las Metodologas de Desarrollo de Software ha llevado a la aparicin de las denominadas Metodologas giles, las cuales estn destinadas a romper con la rigidez de las Tradicionales, caracterizadas por la extensa documentacin del proceso de desarrollo y por la inflexibilidad ante los cambios. Una de las Metodologas giles ms importante y reconocida es la Programacin Extrema (XP) [1], para aquellos proyectos de software donde el cambio en los requerimientos es la norma. Por tal motivo rene un conjunto de prcticas sencillas ya conocidas, pero que en este caso son llevadas a cabo conjuntamente y en forma extrema. Debido a esto, la gestin de proyectos de desarrollo de software se torna algo impredecible y compleja y es difcil anticipar por sus administradores, los efectos que tiene sobre la marcha del mismo, la aplicacin de las diferentes prcticas de XP. No obstante, si bien existen actualmente diversas herramientas destinadas a ayudar a los administradores de proyectos en la estimacin y toma de decisiones, como ser los Modelos Dinmicos de Simulacin, que permiten evaluar diferentes alternativas de decisin en la gestin, sin intervenir en el desarrollo real del proyecto, la mayora de ellos han
Contexto
El trabajo presentado aqu se realiz en el marco de la lnea de investigacin denominada Simulacin como herramienta para la Mejora de los Procesos de Software iniciada hace dos aos en el C.I.T.I.C. Como uno de los resultados de esta lnea se presenta parte del
2012
WICC 2012
573
sido desarrollados para proyectos que se llevan a cabo con Metodologas Tradicionales, como ser el modelo de Abdel- Hamid y Madnick [2] y el Modelo Dinmico Reducido [3]. El modelo de Abdel-Hamid y Madnick, que data de los aos 90, no tiene en cuenta las fases de Definicin de Requisitos, Operacin y Mantenimiento, por lo que se centra en el Diseo, Codificacin, Revisin, Correccin y Pruebas, considerando que los requisitos del proyecto se mantienen estables a lo largo del ciclo de vida. Por otro lado, si bien este modelo est dividido en cuatro subsistemas complejos (Gestin de Recursos Humanos, Produccin de Software, Control y Planificacin), este est destinado a simular proyectos que se llevan a cabo bajo Metodologas Tradicionales, ya que en la poca de su surgimiento an no se hablaba de Metodologas giles ni de cambios de requerimientos durante el desarrollo. Lo mismo ocurre para el caso del Modelo Dinmico Reducido, el cual constituye una reduccin del Modelo de Abdel Hamid y Madnick. Los dos criterios de reduccin ms importantes, en los que se bas este modelo son por un lado, agregar las variables de nivel ms relevantes del Modelo de Abdel-Hamid y Madnick y, por otro, elegir los bucles de realimentacin adecuados a las variables de nivel elegidas.
suficientes para elegir la mejor opcin a ser aplicada en el sistema real. Esto es posible ya que el modelo habilita a los administradores a realizar cambios en variables crticas del proyecto, como ser recursos, tiempo, tareas a desarrollar, etc., y observar las repercusiones de dichos cambios en el resto del proyecto, y lo ms importante, sin comprometer la ejecucin real del mismo. Como se mencion, el modelo refleja el efecto del uso de prcticas XP en proyectos de desarrollo de software y para ello, su estructura permite simular el desarrollo de una versin o entrega de un proyecto XP a la vez. Es decir, como XP presenta un estilo de desarrollo iterativo e incremental, dentro de un proyecto se negocian con el cliente varias entregas o versiones, por lo que el modelo, est destinado a simular las versiones de a una por vez.
2012
WICC 2012
574
<Time>
<Cantidad de dias promedio que lleva integrar una tarea> <Cantidad de dias promedio que lleva correr todas las PU>
<Cantidad de dias promedio que lleva poner en produccion una tarea>
Tareas integradas
Tareas a desarrollar
Flujo de realizacion de PU globales sobre tareas Numero medio estimado de tareas con errores de codificacion Flujo de deteccion de tareas con errores Tareas codificadas Flujo de codificacion de tareas
Tareas en produccion
De esta forma, una vez planificadas las tareas, se encuentran inicialmente en el nivel Tareas a desarrollar, y luego van pasando por todos los niveles hasta llegar al nivel Tareas en Produccin, el cual representa la cantidad de tareas desarrolladas en cada iteracin. Adems del subsistema presentado, el modelo se compone de los siguientes subsistemas: Recursos Humanos, Factor de Carga, Presin en el Plazo, Desarrollo de Pruebas de Unidad, Desarrollo de Pruebas de Aceptacin, Planificacin, Desarrollo de Tareas Extras, Desarrollo de Historias de Usuario, Horas de Trabajo por da y Actualizacin de los Das Ideales de Ingeniera por Historia de Usuario y por Tarea.
desarrollada en 85 das por 1 slo programador. Los datos de las iteraciones, de este caso se pueden ver en el Cuadro 1.
Iteracin Historias de Usuario (HU) 4 3 4 3 Tareas en Promedio por HU 12 9 12 9 Duracin Real en das 45 10 20 10
1 2 3 4
De acuerdo con los datos del Cuadro 1, el Grfico 1 refleja el Flujo de Planificacin de Tareas, que tambin pertenece al subsistema de la Figura 1.
Flujo de planificacion de tareas
20
15
tareas/dia
Validacin
En la validacin se utilizaron datos reales de dos Proyectos realizados con XP. El primero es un proyecto de Desarrollo de un Sistema de Gestin de una Empresa de Confecciones, cuyos detalles se pueden ver en [7]. El segundo fue el Sistema ONess, un Proyecto Open Source para el "Negocio Textil Mayorista [8]. Este, consisti en una versin (dividida en 4 iteraciones), que fue
10
0 1 24 47 Time (Day) 70 93
Por otro lado, en el Grfico 2 se puede ver que el modelo se comport de acuerdo con los datos del caso de validacin, alcanzndose el nivel de Tareas
2012
WICC 2012
575
para
cada
Tamao de la version en HU 20
17.5
15
45
tareas
12.5
30
15
3
0 1 24 47 Time (Day) 70 93
2
Experimentos realizados
Al igual que en la validacin, el modelo ha sido simulado bajo diversas condiciones que representan situaciones tpicas en proyectos XP. En este caso se presenta uno de los experimentos realizados, el cual se refiere al desarrollo de una versin de un proyecto XP, la cual engloba 15 HU a ser completadas en 45 das. Esta versin fue dividida en 3 iteraciones de 5 HU cada una. As tambin, del desarrollo de la misma participaron 6 pares de programadores (4 novatos y 8 expertos). En este escenario se analiz la incorporacin de 3 HU ms al final de la primera iteracin, el abandono del proyecto de 2 programadores al comienzo de la segunda iteracin y la re-planificacin de HU no acabadas al final de primera y segunda iteracin. De esta forma, en el Grfico 3 se puede observar como aumenta el tamao de la versin, de 15 para 18 HU, al actualizarse la cantidad de HU al final de la primera iteracin (da 14). Por otro lado, en el Grfico 4 se puede observar como la cantidad de Pares de Programadores disminuye el da 15 (comienzo de la segunda iteracin), cuando 2 programadores abandonan el equipo de desarrollo. Debido a esta situacin, el crecimiento en la cantidad de Programadores Expertos (que aumenta a medida que los novatos adquieren experiencia) se ve interrumpido el da 15, como se puede apreciar en el Grfico 5.
12
23 Time (Day)
34
45
7
pares
4 1 5 9 13 17 21 25 Time (Day) 29 33 37 41 45
Finalmente, en el Grfico 6 se refleja la replanificacin de HU no acabadas al final de las 2 primeras iteraciones. La replanificacin en la iteracin 1 corresponde al hecho de que, como se observa en el Grfico 5, la cantidad de programadores expertos es baja al comienzo de la versin, y por lo tanto, la cantidad de horas de trabajo diarias disponibles para desarrollo es tambin baja en este etapa. La replanificacin en la iteracin 2 corresponde, en cambio, al incremento en la cantidad de HU planificadas para dicha iteracin (Grfico 3) y al abandono del proyecto por parte de 2 programadores tal como se mostr en el Grfico 4.
2012
WICC 2012
576
hu/dia
Trabajos Futuros
1 5 9 13 17 21 25 Time (Day) 29 33 37 41 45
Resultados
En el presente trabajo se ha construido un Modelo de Simulacin Dinmico de Gestin de Proyectos de Desarrollo de Software que utilizan XP, lo cual hace que se diferencie de otros trabajos en los que se modelan proyectos con Metodologas Tradicionales. De esta forma, el modelo puede ser usado como herramienta para analizar el efecto que tiene el uso de prcticas de XP en proyectos de software. En este sentido, es preciso mencionar que las prcticas que quedaron reflejadas en el modelo, de acuerdo Kent Beck en [9], son las siguientes: El juego de la planificacin, Versiones pequeas, Hacer pruebas, Recodificacin, Programacin en parejas, Integracin continua y 40 horas semanales, que son las que fueron posibles de representar utilizando Dinmica de Sistemas. Para ofrecer una buena flexibilidad el modelo permite la alteracin de valores durante su ejecucin, como ser la cantidad de requerimientos del cliente, las fechas de comienzo y entrega de cada iteracin, la cantidad de requerimientos a ser desarrollados en cada iteracin, la cantidad de programadores, las horas extras agregadas por da, el porcentaje de tiempo destinado a cada etapa del desarrollo, el factor de carga del equipo de desarrollo, entre otras. La validacin del modelo realizada con los proyectos [7] y [8] como casos de entrenamiento fue positiva ya que el mismo se comport de acuerdo con los datos reales. Finalmente, luego de validar el modelo, ejecutarlo bajo diferentes escenarios y realizar el anlisis de sensibilidad, se ha llegado a la conclusin de que el mismo cumple con sus objetivos y puede ser utilizado como herramienta para evaluar diferentes decisiones de gestin
Como trabajos futuros se plantea la posibilidad de lograr desarrollar un modelo ntegro que permita simular el desarrollo completo de un Proyecto, es decir, con todas sus versiones a la vez. Una variante que podra ser incorporada al modelo es la Planificacin por alcance dentro de la Metodologa XP ya que el mismo fue construido basndose en la Planificacin por tiempo. Adems sera interesante la construccin de una jerarqua de Modelos Dinmicos para simular Proyectos llevados a cabo con Metodologas giles. Dicha jerarqua de modelos podra estar inspirada en la presentada en [2] para Metodologas Tradicionales, la cual divide a los modelos en Bsicos, Intermedios y Avanzados.
Formacin Humanos
de
Recursos
El equipo de trabajo se encuentra formado por un investigador Junior y dos estudiantes en perodo de realizacin de trabajos finales de grado. El nmero de tesinas de grado aprobadas es uno y una en proceso.
Referencias
[1] http://www.programacionextrema.org. ltima actualizacin sbado, 15 de enero de 2005. [2] Abdel Hamid T. K., Madnick S. E.; Software Project Dynamics An Integrate Approach, Editorial Prentice New Jersey, 1991. ISBN:0-13-822040-9 . [3] Ramos I., Toro M., Ruiz M.; Modelo Dinmico Reducido, Informe Tcnico: LSI-2001-01, Universidad de Sevilla, 2001. [4] http://www.vensim.com/index.html. ltima actualizacin 26/01/2012. [5] Aracil, J.; Dinmica de Sistemas, Editorial Isdefe, Espaa, 1995. ISBN: 8-46-833802-8 [6] Torrealdea J.; Dinmica de Sistemas. Elementos y Estructuras de un Modelo. Ciencias de la Computacin e Inteligencia Artificial. Universidad del Pas Vasco. Pas Vasco. [7]http://users.dsic.upv.es/asignaturas/facultad/lsi/eje mploxp/. ltima actualizacin 11/01/2004. [8]http://oness.sourceforge.net/proyecto/html/index.ht ml. ltima actualizacin 29/09/2004 [9]Beck, K.; Una Explicacin de la Programacin Extrema. Aceptar el Cambio, Editorial Addison Wesley, Espaa, 2002. ISBN: 8-47-829055-9
2012