Documente Academic
Documente Profesional
Documente Cultură
3.1 Introduccin
El anlisis de la evolucin del software se ocupa de los cambios de software, sus
causas y sus efectos. Utiliza todas las fuentes de un sistema de software para
realizar un anlisis retrospectivo. Tales datos comprenden el historial de
liberacin con todo el cdigo fuente y la informacin de cambio, datos de
informe de fallo y datos que se pueden extraer del sistema en ejecucin. En
particular, el anlisis de la liberacin y los datos de informes de errores ha
ganado importancia porque almacenan informacin valiosa para analizar la
evolucin del software. Mientras que la recuperacin de los datos que residen
en sistemas de control de versiones como CVS o Subversion se ha convertido
en un tema bien explorado, el reto final radica en los datos recuperados y su
interpretacin.
En este captulo abordaremos los tres primeros temas y tcnicas actuales tales
como nuestras Figuras fractal para analizar el esfuerzo de desarrollo, el
Evolution Radar para analizar el impacto del cambio en los archivos fuente y los
diagramas de Kiviat para analizar las tendencias mtricas y detectar hotspots
del sistema. En la siguiente seccin presentamos un enfoque general para
analizar los repositorios de software para entender la evolucin del software.
Los ejemplos de cmo modelar y recuperar los datos se presentan en la Seccin
3.3. Los datos modelados son la entrada para las diferentes tcnicas de anlisis
de evolucin de software que presentamos en la Seccin 3.4.
Higo. 3.11. Los principios De la propiedad Visualizacin del mapa [203] [2005]
IEEE
Cambios en varios archivos), etc. Los patrones fueron definidos con el objetivo
de caracterizar Diferentes comportamientos de desarrollador.
En [528], Voinea y Telea presentaron una visualizacin similar, en la que los
archivos CVS Se representan como lneas coloreadas y el color representa el
desarrollador. La visualizacin Se implementa en CVSgrab, una herramienta que
tambin soporta la visualizacin y Anlisis de las actividades en el repositorio.
En [528] los autores aplicaron un algoritmo de cluster En las visualizaciones para
poner ficheros (lneas) con desarrollo similar (con respeto A los autores oa la
actividad) cerca uno del otro. El objetivo de su trabajo era Permiten a los
desarrolladores y directores de proyectos explorar visualmente la evolucin de
un software De manera que facilite el entendimiento del sistema y del proceso.
Voinea et al. Tambin present la herramienta CVSscan [529], basada en
CVSgrab para la extraccin Los datos del repositorio CVS. La herramienta puede
visualizar la evolucin de CVS visualizando la evolucin de lneas individuales.
CVSscan ofrece tres Tipos de codificacin de color para asociar el color de cada
lnea de cdigo a su autor. Esta visualizacin Se utiliza en [529] para entender
quin realiz modificaciones en el cdigo Y donde, facilitando as la
comprensin del proceso de desarrollo. La informacin de autor almacenada
en los repositorios CVS tambin se utiliz en el contexto de redes sociales. En
[68] Bird et al. Cre redes sociales o envi correos electrnicos De archivos de
correo electrnico OSS. Vincularon correos electrnicos con cuentas CVS para
analizar Relacin de actividad de correo electrnico y actividad de compromiso
y la relacin de estado social Con actividad de compromiso. El estudio de caso
que realizaron en el servidor HTTP de Apache Proyecto indic una fuerte
relacin entre el nivel de actividad en el cdigo fuente, Y una relacin menos
fuerte con la actividad de cambio de documentos. Tambin se enteraron Que
los desarrolladores (personas con cuentas de correo electrnico y CVS) juegan
un papel mucho ms significativo Social que otros participantes en los archivos
de correo.
Hemos creado un radar para cada seis meses de la historia del sistema.
Empezamos el
Estudio de la ms reciente, ya que nos interesan los problemas de la
actual Versin del sistema. El uso de un intervalo de tiempo
relativamente corto (seis meses) asegura que El acoplamiento se debe a
cambios recientes y no est "contaminado" por compromete mucho en
el pasado. Como mtricas utilizamos el acoplamiento de cambio para la
posicin y el color de las figuras. El tamao (el rea) es proporcional al
nmero total de lneas modificadas En todos los compromisos realizados
durante el intervalo de tiempo considerado.
Java. Este archivo tambin fue muy modificado durante ese intervalo de
tiempo, dada su dimensin Con respecto a las otras cifras (el rea es
proporcional al nmero total
De lneas modificadas). ModelFacade.java tambin fue fuertemente
acoplado con el Diagrama (Vase la figura 3.16b). Al mirar su cdigo
fuente descubrimos que esto
Era una clase de Dios [439] con miles de lneas de cdigo, 444 pblicas y
9 privadas
Mtodos, todo esttico. La clase ModelFacade no est presente en los
otros radares (Figura 3.14b y Figura 3.14a) porque fue retirado del
sistema en enero 2005. Leyendo el cdigo fuente de los archivos ms
acoplados en estos dos radares, Es decir, NSUMLModelFacade.java,
descubrimos que tambin es una clase muy grande con
317 mtodos pblicos. Por otra parte, hemos descubierto que 292 de
estos mtodos tienen la La misma firma de mtodos en la clase
ModelFacade6, con ms del 75% de los Cdigo duplicado. ModelFacade
represent un problema en el sistema y por lo tanto fue remoto. Dado
que muchos mtodos se copiaron a NSUMLModelFacade, el problema
ha Acaba de ser trasladado.
Trabajo relacionado
El concepto de acoplamiento de cambio (es decir, lgico) fue introducido
por primera vez por Gall et al. [185] Para detectar relaciones implcitas
entre mdulos. Utilizaron el acoplamiento lgico para analizar
Dependencias entre los diferentes mdulos de una gran empresa de
Sistema de software y demostr que el enfoque puede utilizarse para
obtener Sobre la arquitectura del sistema. Posteriormente, los mismos
autores revisaron la tcnica para Trabajo a un nivel de abstraccin ms
bajo. Detectaron acoplamientos lgicos a nivel de clase [187] y lo valid
en 28 versiones de un sistema de software industrial. Los autores
Mostraron a travs de un estudio de caso que las debilidades
arquitectnicas como mal diseado Interfaces y jerarquas de herencia
podran ser detectados en base a acoplamiento lgico informacin.
Para resaltar los cambios en los valores mtricos usamos los diagramas
de Kiviat como se describe antes de. Los n valores de cada mtrica
obtenidos de las liberaciones mltiples se dibujan en La misma lnea.
Nuevamente los valores mtricos adyacentes de la misma liberacin
estn conectados por Una lnea que forma un polgono para cada
liberacin. Entonces el rea emergente entre dos polgonos De dos
lanzamientos posteriores se llenan de diferentes colores. Cada color
indica Y destaca el cambio entre los valores de mtrica de dos
liberaciones. Cuanto mayor sea el Cambiar el polgono ms grande. La
figura 3.17 (b) representa el mismo conjunto de medidas para el mdulo
A, pero esta vez de Dos lanzamientos. Al llenar el rea entre los
lanzamientos, el cambio de los valores mtricos es Resaltado. Para
distinguir los cambios entre diferentes versiones de cdigo fuente,
Utilizar tonos grises. Esto permite al usuario detectar tendencias en los
valores mtricos, como se mostrar En los siguientes dos escenarios de
anlisis.
Los polgonos grises grandes estn contenidos por los diagramas de Kiviat
de los mdulos DOM, NewHTMLStyleSystem y XML que indican que la
implementacin de estos tres Los mdulos ms modificados.
Observando el tamao seleccionado y la complejidad del programa Los
valores de los tres mdulos aumentaron primero de
Liberar 0,92 a 1,3a y luego disminuir desde la liberacin 1,3a a 1,7. Por
ejemplo, el
La mtrica HALCONT del mdulo DOM de la versin 0.92 a la versin 1.3a
aument de
15.167 a 18.228 seguido por una disminucin a 14.714 en la versin 1.7.
Aparentemente, de Se aadi una funcionalidad de liberacin de 0,92 a
1,3a a estos tres mdulos que durante La implementacin de la ltima
versin fue refactorizada o eliminada. En comparacin A estos tres
mdulos, los valores mtricos de los otros mdulos indican slo Cambios
menores en tamao y complejidad del programa por lo tanto son
estables. Basado en el Supuesto de que los mdulos que cambiaron en
un lanzamiento pasado probablemente cambiarn en Futuro libera los
tres mdulos DOM, NewHTMLStyleSystem, y XML son los candidatos
Que son fundamentales para la evolucin de la implementacin de
contenido y diseo De Mozilla.
Los hot spots del sistema son mdulos de alta actividad indicados por
diferentes Como el nmero de problemas que afectan a un mdulo o el
nmero de cambios en un mdulo. En este escenario de analizar puntos
calientes del sistema nos centramos en proporcionar respuestas A las
siguientes tres preguntas: Cules son los mdulos con errores
frecuentes? Cual Son los mdulos ms crticos? Qu mdulos se han
estabilizado? Las respuestas a estas Se pueden encontrar preguntas en
el RHDB en particular en los datos de Bugzilla. Nosotros cuantificamos La
criticidad y estabilidad de un mdulo de software por el nmero de
cdigo fuente Modificaciones (es decir, entradas de registro CVS)
realizadas para corregir errores que se informaron
Trabajo relacionado
3.5 Conclusin