[ieee 2012 xxxviii conferencia latinoamericana en informatica (clei) - medellin, colombia...

7
Discovery of patterns in software metrics using clustering techniques Cristian J. L´ opez Del Alamo Departamento de Ciencias de la Computaci´ on Universidad La Salle Arequipa, Per´ u Email: [email protected] Diego Aracena Pizarro Universidad de Tarapac´ a de Chile Arica, Chile Email: [email protected] Ricardo Valdivia Pinto Universidad de Tarapac´ a de Chile Arica, Chile Email: [email protected] Abstract—One mechanism for estimating software quality is through the use of metrics, which are functions that evaluates certain characteristics of the product quality development. A software product can be evaluated from different points of view, and in that sense, the results of the evaluations are numeric vectors, which together describe the quality of the software. This research uses data from NASA’s open access which undergo a process of reducing the dimensionality by principal component analysis (PCA), then applied three clustering techniques and evaluates the best grouping using Rand Index. Finally, the top clusters are tested with regression to find the metrics that are related to the error of the Software. The results suggest that groups consisting of software modules whose code source have a higher average of blank lines, show a higher density of error. This could be interpreted as an indication of the order of implementation. On the other hand, shows the presence of a direct relationship between the number of errors in a module with the number of calls functions to other modules. The contribution of this work is related to the use of assessment techniques of clustering, dimensionality reduction, clustering algorithms and regression to discover patterns in software metrics a rigorous manner. Index Termssoftware metric, Data Mining, clustering, Boot- strapping, Principal component analysis I. I NTRODUCCI ´ ON Entender las relaciones entre las m´ etricas de software y los aspectos de calidad no es una tarea simple, m´ as a´ un, es dif´ ıcil predecir a partir de las m´ etricas de software la probabilidad de fallos de un m´ odulo. Es as´ ı que, entender y descubrir patrones en conjuntos de datos hist´ oricos de m´ etricas de proyectos de software, podr´ ıa darnos indicios, de cuales son los aspectos de la calidad que se debe tener presente en el proceso de desarrollo de software. As´ ı como, entender cuales son las variables que est´ an involucradas en posibles fallos de software. En los ´ ultimos a˜ nos, se han venido desarrollando varias investigaciones que tienen como objetivo entender y encontrar relaciones entre las mediciones aplicadas a diversos factores de la calidad de software. Algunos trabajos de investigaci´ on en este materia son [1], [2], [3], [4]. Esta investigaci´ on surgi´ o a partir del trabajo de [3], denomi- nado Software Metrics Data Clustering for Quality Prediction. En el trabajo de Yang, se presentan 3 modelos de clustering (k-means, Fuzzy C-Means y Gaussian Mixture Model with EM Algorithm) aplicados a datos de m´ etricas de software de dos proyectos, uno de ellos es el Celestial Spectrum System (CSAS), el cual es un sub sistema del Large Sky Area Multi- Object Spectroscopi Telescope (LAMOST) proyecto desarrol- lado en China. El segundo proyecto es el Redundant Strapped- Down Inertial Measurement Unit Proyect (RSDIMU). En su trabajo [3], aplica las 3 ecnicas mencionadas anteriormente, generando 2 y 3 cluster, sin embargo, es importante saber cual es el criterio para decidir el n´ umero de grupos adecuado. Es por esta raz´ on, que esta investigaci´ on pretende realizar un aporte m´ as amplio que el propuesto por Yang, ya que analiza la calidad de los cluster utilizando una ecnica estad´ ıstica no param´ etrica conocida como Bootstrapping, adem´ as utiliza la t´ ecnica Rand Index para hallar el mejor n´ umero de clusters, la cual fue utilizada por Mertin Turan en la investigaci´ on con el nombre Clustering and Dimensionality Reduction to Determine Important Software Quality Metrics [5] y analiza cada cluster utilizando regresi´ on multivariable para encontrar las relaciones entre las variables y los errores de m´ odulos de software. El resto de la investigaci´ on esta organizado de la siguiente manera: En el secci´ on II se presenta la metodolog´ ıa, los pasos que se llevaron a cabo en el proceso de descubrimiento de patrones. En el Secci´ on III se analizan los resultados obtenidos y finalmente en la secci´ on IV, se presentan las conclusiones finales y trabajos futuros. II. METODOLOG´ IA Esta secci´ on describe la metodolog´ ıa para el descubrimiento de patrones en los datos de m´ etricas de software , la cual es una serie de pasos propuestos por los autores. A. Descripci´ on del Proceso En la figura 1 se describe el proceso para el descubrimiento de patrones en m´ etricas de software propuesto por los autores. En primer lugar se obtienen los vectores caracter´ ısticas, previa limpieza de datos. Posteriormente, se realiza una reducci´ on de la dimensionalidad utilizando an´ alisis de componentes principales (PCA). A continuaci´ on, se generan 1000 muestras aleatorias de los datos utilizando la t´ ecnica Boostraping. 978–1–4673–0793–2/12/$31.00 c 2012 IEEE

Upload: ricardo-valdivia

Post on 07-Mar-2017

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: [IEEE 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Medellin, Colombia (2012.10.1-2012.10.5)] 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Discovery

Discovery of patterns in software metrics usingclustering techniques

Cristian J. Lopez Del AlamoDepartamento de Ciencias de la Computacion

Universidad La SalleArequipa, Peru

Email: [email protected]

Diego Aracena PizarroUniversidad de Tarapaca de Chile

Arica, ChileEmail: [email protected]

Ricardo Valdivia PintoUniversidad de Tarapaca de Chile

Arica, ChileEmail: [email protected]

Abstract—One mechanism for estimating software quality isthrough the use of metrics, which are functions that evaluatescertain characteristics of the product quality development. Asoftware product can be evaluated from different points of view,and in that sense, the results of the evaluations are numericvectors, which together describe the quality of the software. Thisresearch uses data from NASA’s open access which undergo aprocess of reducing the dimensionality by principal componentanalysis (PCA), then applied three clustering techniques andevaluates the best grouping using Rand Index. Finally, the topclusters are tested with regression to find the metrics that arerelated to the error of the Software. The results suggest thatgroups consisting of software modules whose code source have ahigher average of blank lines, show a higher density of error.This could be interpreted as an indication of the order ofimplementation. On the other hand, shows the presence of adirect relationship between the number of errors in a module withthe number of calls functions to other modules. The contributionof this work is related to the use of assessment techniques ofclustering, dimensionality reduction, clustering algorithms andregression to discover patterns in software metrics a rigorousmanner.

Index Terms—software metric, Data Mining, clustering, Boot-strapping, Principal component analysis

I. INTRODUCCION

Entender las relaciones entre las metricas de software y losaspectos de calidad no es una tarea simple, mas aun, es difıcilpredecir a partir de las metricas de software la probabilidad defallos de un modulo. Es ası que, entender y descubrir patronesen conjuntos de datos historicos de metricas de proyectos desoftware, podrıa darnos indicios, de cuales son los aspectosde la calidad que se debe tener presente en el proceso dedesarrollo de software. Ası como, entender cuales son lasvariables que estan involucradas en posibles fallos de software.

En los ultimos anos, se han venido desarrollando variasinvestigaciones que tienen como objetivo entender y encontrarrelaciones entre las mediciones aplicadas a diversos factoresde la calidad de software. Algunos trabajos de investigacionen este materia son [1], [2], [3], [4].

Esta investigacion surgio a partir del trabajo de [3], denomi-nado Software Metrics Data Clustering for Quality Prediction.En el trabajo de Yang, se presentan 3 modelos de clustering(k-means, Fuzzy C-Means y Gaussian Mixture Model withEM Algorithm) aplicados a datos de metricas de software de

dos proyectos, uno de ellos es el Celestial Spectrum System(CSAS), el cual es un sub sistema del Large Sky Area Multi-Object Spectroscopi Telescope (LAMOST) proyecto desarrol-lado en China. El segundo proyecto es el Redundant Strapped-Down Inertial Measurement Unit Proyect (RSDIMU).

En su trabajo [3], aplica las 3 tecnicas mencionadasanteriormente, generando 2 y 3 cluster, sin embargo, esimportante saber cual es el criterio para decidir el numero degrupos adecuado. Es por esta razon, que esta investigacionpretende realizar un aporte mas amplio que el propuestopor Yang, ya que analiza la calidad de los cluster utilizandouna tecnica estadıstica no parametrica conocida comoBootstrapping, ademas utiliza la tecnica Rand Index parahallar el mejor numero de clusters, la cual fue utilizada porMertin Turan en la investigacion con el nombre Clusteringand Dimensionality Reduction to Determine ImportantSoftware Quality Metrics [5] y analiza cada cluster utilizandoregresion multivariable para encontrar las relaciones entre lasvariables y los errores de modulos de software.

El resto de la investigacion esta organizado de la siguientemanera: En el seccion II se presenta la metodologıa, los pasosque se llevaron a cabo en el proceso de descubrimiento depatrones. En el Seccion III se analizan los resultados obtenidosy finalmente en la seccion IV, se presentan las conclusionesfinales y trabajos futuros.

II. METODOLOGIA

Esta seccion describe la metodologıa para el descubrimientode patrones en los datos de metricas de software , la cual esuna serie de pasos propuestos por los autores.

A. Descripcion del Proceso

En la figura 1 se describe el proceso para el descubrimientode patrones en metricas de software propuesto por los autores.En primer lugar se obtienen los vectores caracterısticas, previalimpieza de datos. Posteriormente, se realiza una reduccionde la dimensionalidad utilizando analisis de componentesprincipales (PCA). A continuacion, se generan 1000 muestrasaleatorias de los datos utilizando la tecnica Boostraping.

978–1–4673–0793–2/12/$31.00 c© 2012 IEEE

Page 2: [IEEE 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Medellin, Colombia (2012.10.1-2012.10.5)] 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Discovery

Fig. 1. Etapas del proceso de descubrimiento de patrones en metricas desoftware

Cada una de las muestras es agrupada en k clustermediantelas tecnicas de clustering (kmeans, Neural Gas y OnlineUpDate). Se generan experimentos para k = 1,2,3,4,5,6,7y se evalua la calidad de los clusters utilizando Rand Index.Los resultados de mejores resultados de rand index indican losmejores grupos, los cuales seran analizados mediante regresionpara entender que variables de cada grupo estan relacionadoscon el error del software.

A continuacion se detalla cada una de las etapas del proceso.

B. El proceso

El proceso completo fue dividido en 1) Repositorio de datos,2) Vector Caracterıstica. 3) Reduccion de la dimensionalidad,4) Vectores Reducidos 5) Generacion de muestras usandoBootstrapping, 6) Generacion de Clusters. 7) Analisis decalidad de cluster con Rand Index. 8) Analisis de grupos conRegresion multivariable 9) Analisis de Resultados.

A continuacion se explicara cada unos de los pasos.1) Repositorio de datos:

El conjunto de datos de prueba fue tomadodel repositorio de libre distribucion de la NASA,el cual puede ser encontrado en el siguiente linkhttp://promise.site.uottawa.ca/SERepository/datasets-page.html.

Las bases de datos que fueron seleccionadas son:

La base de datos cuenta con valores de metricas de software,las cuales son detalladas en la tabla I

2) Vector Caracterıstica : El vector caracterıstica, es unvector n dimensional de valores cuantitativos, los cuales repre-sentan los resutados de las n metricas aplicadas a los modulosde software.

Archivo DescripcionMC1 product modulemetrics

MC1 es un software para exper-imentos de combustion que estadisenado para transbordadores es-paciales. Este proyecto consta demas de 63 KLOC escrito en C yC + +.

PC3 product modulemetrics.csv

PC3 es un software de vuelode un satelite en orbita de laTierra que actualmente esta en fun-cionamiento. Se compone de 40KLOC de codigo escrito C.

TABLE IIDESCRIPCION DE LA BASE DE DATOS

Esta etapa tiene como objetivo preparar la informacionprocedente del repositorio de datos. Por lo tanto, se requiererealizar un proceso de limpieza, en caso de existir camposvacios o datos incorrectos y/o no relevantes para la fase deagrupamiento.

La limpieza consiste en la eliminacion o la interpolacionde valores cuando estos no estan presentes en alguno de losregistros de la base de datos.

3) Analisis de componentes principales: Cuando se re-quiere agrupar objetos d-dimensionales por similitud, y cuandod tiende a ser muy grande, se presentan dos problemas; porun lado, el proceso de agrupamiento tiende a ser mas lento,debido a la cantidad de calculos de distancia y al incremento decalculos aritmeticos. Por otro lado, las funciones de distanciaentre vectores con dimensiones altas, tienden a no ser tanexactas.[6]

4) Reduccion de la dimensionalidad: Para poder aplicar lareduccion de la dimensionalidad se aplica PCA, tal como sevio en la sub seccion II-B3

En esta investigacion se utilizan vectores caracterıstica dedimensionalidad 42, por lo cual se utilizara como metodode reduccion de dimensionalidad el Analisis de componentesprincipales (PCA), el cual busca explicar la estructura dela correlacion de un conjunto de variables predictoras us-ando un pequeno conjunto de combinaciones lineales de esasvariables.[6]

5) Bootstrapping: Bootstrapping es un enfoque de infer-encia estadıstica usada para aproximar la distribucion en elmuestreo de un estadıstico. Existen varias formas de boot-strapping, siendo las mas conocidas el no parametrico y elparametrico.

En contraste a este ultimo, con el no parametrico es posibleestimar una distribucion en el muestreo empıricamente sinhacer suposiciones sobre la forma de la poblacion y sin derivarla misma en el muestreo explıcitamente [7].

Estas ventajas llevaron a usar el bootstrapping noparametrico en esta investigacion 1.

Suponga que S = {X ′1,X′2, . . . ,X

′n} es una muestra aleato-

ria simple o una muestra aleatoria independiente de P ={x1,x2, . . . ,xN}, donde n es considerablemente menor de N.Suponga que se esta interesado en un estadıstico T = t(S)

1Una explicacion mas detallada sobre las diferencias de ambas formas debootstrapping puede ser encontrada en [7].

2

Page 3: [IEEE 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Medellin, Colombia (2012.10.1-2012.10.5)] 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Discovery

Nro NOMBRE DESCRIPCION1 MODULE Identificador unico del producto.2 LOC BLANK Numero de lıneas en blanco en el modulo.3 BRANCH COUNT Branch count metrics.4 CALL PAIRS Numero de llamadas a otras funciones en un modulo.5 LOC CODE AND COMMENT Numero de lıneas que contiene codigo y comentarios dentro del modulo.6 LOC COMMENTS Numero de lıneas de comentario en un modulo.7 CONDITION COUNT Numero de condicionales en un modulo.8 CYCLOMATIC COMPLEXITY Complejidad Cyclomatica de un modulo v(G).9 CYCLOMATIC DENSITY Ratio entre la complejidad ciclomatica y el tamano en lıneas de codigo.

10 DECISION COUNT Numero de puntos de desicion.11 DESIGN COMPLEXITY Complejidad de diseno de un modulo.12 DESIGN DENSITY Densidad de diseno.13 EDGE COUNT Numero de aristas encontradas en un modulo.14 ERROR COUNT Numero de defectos asociados con el modulo.15 ERROR DENSITY Numero de defectos por cada 1000 lıneas de codigo.16 ESSENTIAL COMPLEXITY La complejidad esencial del modulo.17 ESSENTIAL DENSITY Densidad esencial del modulo.18 LOC EXECUTABLE Numero de lıneas de codigo ejecutable.19 PARAMETER COUNT Numero de parametros de un modulo.20 GLOBAL DATA COMPLEXITY Complejidad de datos global.21 GLOBAL DATA DENSITY Densidad de datos global.22 HALSTEAD CONTENT Metrica del tamano de contenido de Halstead.23 HALSTEAD DIFFICULTY Metrica de dificultad de Halstead.24 HALSTEAD EFFORT Metrica de esfuerzo de Halstead.25 HALSTEAD ERROR EST The Halstead error estimate metric of a module.26 HALSTEAD LENGTH Metrica de longitud de Halstead.27 HALSTEAD LEVEL Metrica de nivel de Halstead.28 HALSTEAD PROG TIME Metrica del tiempo de programacion de Halstead.29 HALSTEAD VOLUME Metrica de volumen de Halstead.30 MAINTENANCE SEVERITY Severidad de mantenimiento.31 MODIFIED CONDITION COUNT Numero posible resultados que puede afectar una decision32 MULTIPLE CONDITION COUNT Numero de condicionales multiples.33 NODE COUNT Numero de Nodos.34 NORMALIZED CYLOMATIC COMPLEXITY Complejidad Ciclomatica Normalizada, calculada como v(G)/n, donde v(G), es

la complejidad ciclomatica y n es numero de nodos35 NUM OPERANDS Numero de operandos.36 NUM OPERATORS Numero de operadores.37 NUM UNIQUE OPERANDS Numero de operandos unicos.38 NUM UNIQUE OPERATORS Numero de operadores unicos.39 NUMBER OF LINES Numero de lıneas en un modulo.40 PATHOLOGICAL COMPLEXITY Medida del grado de constructores extremamente no estructurados de un modulo.41 PERCENT COMMENTS Porcentaje de codigo que es comentado.42 LOC TOTAL Numero total de lıneas.

TABLE IMETRICAS APLICADAS A LOS PROYECTOS EN INVESTIGACION.

como un estimado de un parametro θ = t(P) de la poblacionP. El bootstrapping no para-metrico consiste en construir Rmuestras, {S1,S2, . . . , Sb, . . . ,SR}, (Sb = {X1,X2, . . . ,XN} detamano N) de P aplicando un muestreo con reemplazo. Cadamuestra es tratada como un estimado de la poblacion P, dondecada elemento de Sb es seleccionado con una probabilidad 1

N .Posteriormente, se calcula el estadıstico T de cada muestra,i.e., Tb = t(Sb). La distribucion de Tb cerca del estimadooriginal T = t(S) es analogo a la distribucion en el muestreode el estimador T cerca de un parametro de la poblacionθ = t(P) [8].

En el contexto de aprendizaje maquina, bootstrapping esuna tecnica empleada para evaluar la estabilidad de los re-sultados de un modelo de clasificacion o de clustering. Laidea subyacente tras el bootstrapping es la misma que laexplicada anteriormente, pero en este caso, el estadıstico serefiere a alguna metrica para evaluar los resultados del modeloen cuestion. [9].

En este trabajo se usa como metrica de evaluacion elRandIndex II-B7.

6) Agrupamiento: El concepto de agrupamiento se refierea la union de registros, objetos u observaciones en clases deobjetos similares. Un cluster es una coleccion de registros queson similares unos con otros, y disımiles a otros registros deotros clusters. [10]

En este proyecto se utilizaron 3 algoritmos de agrupamiento(Kmeans, On-line Update y Neural Gas). Mas informacionsobre los algoritmos puede ser encontrada en [1], [10], [6],[11].

7) Rand Index: Cuando se aplica un algoritmo de cluster-ing, uno de los problemas es decidir el numero de grupos.Rand Index es una de las tecnicas utilizadas para medir lacalidad de un agrupamiento [12]. Uno de los problemas deesta tecnica es que el valor esperado del Rand Index de dosparticiones aleatorias, no toman un valor constante. Es por estemotivo que se propuso el Rand Index Ajustado [13], y el quefue utilizado en la investigacion.

A continuacion se dara una sucinta explicacion de RandIndex Ajustado.

Considere que se tiene un conjunto de objetos S ={O1,O2, ...,On} y dos particiones diferentes de S, U =

3

Page 4: [IEEE 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Medellin, Colombia (2012.10.1-2012.10.5)] 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Discovery

Rand Index aplicado en un Bootstrapping con 1000 muestras

(a.1) k-means (b.1) Online UpDate (c.1) Neural gasResultados Rand Index Experimento 1.

(a.2) k-means (b.2) Online UpDate (c.2) Neural gasResultados Rand Index Experimento 2.

Fig. 2. Proceso Bootstrapping y Rand Index.

{u1,u2, ...,uR} y V = {v1,v2, ...,vC}, de modo tal que, S =UR

i=1ui =VCi=1vi y se debe cumplir que, ui∩ui′ = /0 y v j∩v j′ = /0

para todo i 6= i′

y j 6= j′.

Donde a es el numero de pares de objetos que estanlocalizados en un mismo grupo en U , y en el mismo grupoen V , b es el numero de pares de objetos en el mismo grupoen U , pero no en el mismo grupo en V , c es el numero depares de objetos que estan en el mismo grupo en V , pero endiferentes grupos en U , y d es el numero de pares de objetosque estan en diferentes grupos en U , y en diferentes gruposen V .

Luego el Rand Index es simplemente:

R =a+d

a+b+ c+d(1)

Para mayor informacion sobre Rand Index y de Rand IndexAjustando, vease los trabajos de [12], [13].

8) Regresion: El analisis de regresion es usado para ex-plicar un modelo o la relacion entre una variable simpleY llamada la respuesta, salida o variable dependiente, yuna o mas variables predictoras, tambien llamadas variablesindependientes o exploratorias. [10]

III. EXPERIMENTOS

Los experimentos se realizaron en un computador Intel(R)Xeon(R) con 8 procesadores, de velocidad 1,999.86 MHz ymemoria RAM de 4GiB.

Se realizaron 2 experimentos:• Experimento 1: Se utilizo la base de datos MC1 product

module metrics.csv de la NASA, un software para exper-

imentos de combustion que esta disenado para transbor-dadores espaciales. Este proyecto consta de 9466 modulosescritos en C y C ++, con aproximadamente 63 KLOCde codigo fuente.

• Experimento 2: Se utilizo la base de datos PC3 productmodule metrics.csv de la NASA, un software de vuelo deun satelite en orbita de la Tierra que actualmente esta enfuncionamiento. Este proyecto consta de 1564 modulosescrito en C, con aproximadamente 40 KLOC de codigofuente.

Todos los registros que tuvieron algun campo con datosvacıos en las bases de datos MC1 product module metrics.csvy PC3 product module metrics.csv fueron eliminados. Estodebido a que esos campos fueron mınimos. Posteriormente serealizo un proceso de normalizacion aplicando la ecuacion 2

x′i = log((xi−min)/(max−min)) (2)

Para la reduccion de la dimensionalidad se utilizo analisisde componentes principales. Los resultados obtenidos se mues-tran a continuacion:

1) En el experimento 1 se tomo 20 componentes prin-cipales, las cuales explican un 99,8% de toda la in-formacion. Se redujo el espacio vectorial de 42 a 20dimensiones, 50% menos.

2) En el experimento 2, al igual que en el caso anterior,se tomo 20 componentes principales, reduciendo ladimensionalidad en un 50%

Para el proceso de agrupamiento se uso un bootstrappingcon 1000 muestras aleatorias y se crearon k grupos en cada

4

Page 5: [IEEE 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Medellin, Colombia (2012.10.1-2012.10.5)] 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Discovery

Agrupamiento

(a.1) k-means (b.1) Online UpDate (c.1) Neural gasResultados Agrupamiento Experimento 1.

(a.3) k-means (b.3) Online UpDate (c.3) Neural gasResultados Agrupamiento Experimento 2.

Fig. 3. Proceso Agrupamiento.

muestra, mediante las tecnicas de clustering k-means, On-lineUpdate y Neural gas, haciendo variar el valor de k entre 2 a7.

En la figura 2, la recta de las ordenadas y representa losvalores entre 0 y 1, los cuales son los posibles valores queretorna el rand index ajustado; de modo tal que, los valoresmas cercanos a 1 indican una mejor calidad de cluster. Porotro lado, la recta de las abscisas representan el numero decluster generado con cada una de las 3 tecnicas de clustering.

Las imagenes (a.1), (b.1) y (c.1) de la figura 2 representanlos resultados promedio de aplicar Rand Index, para 2,3,4,5,6 y7 clusters formados por las tecnicas K-means, Online UpDatey Neural gas.

De la figura 2, podemos ver que en el experimento 1, elmejor agrupamiento tanto para el k-means, On-line Update yNeural gas es de 3 clusters, debido a que el valor de retornodel rand index ajustado es el mas cercano a uno, en relacioncon los otros agrupamientos.

Haciendo similar analisis, podemos deducir que el mejoragrupamiento para el experimento 2, es de 2 cluster. Final-mente, como se puede observar en la imagen, los resultadosson los mismos para cada una de las tecnicas aplicada e cada

uno de los experimentos, reforzando la idea de que el mejoragrupamiento es efectivamente 3 para el primer experimentoy 2 para el segundo.

En la imagen 3, (a.1),(b.1) y (c.1) son las imagenesde los grupos formados para el Experimento 1. La imagen(a.1) representa el agrupamiento con 3 grupos utilizando K-menas, (b.1) es el agrupamiento con 3 grupos utilizando OnlineUpDate y (c.1) es el agrupamiento con 3 grupos utilizandoNeural Gas. Las imagenes (a.2),(b.2) y (c.2) tienen similarinterpretacion para el experimento 2.

Al analizar detenidamente las imagenes (a.1),(b.1) y (c.1) dela figura 3 del experimento 1, se podrıa pensar que en lugarde haber 3 grupos deberıan haber 4, ya que el cluster queesta mas a la derecha en las 3 imagenes aparentan formar dosgrupos en lugar de uno.

Esto se explica por que estas imagenes son proyeccionesbi-dimensionales de un espacio 20-dimensional. Por lo tanto,aunque visualmente se podrıa pensar que el mejor agru-pamiento es 4, lo correcto es respetar el resultado obtenidoal aplicar Rand Index ajustado y Boostrapping. Es decir, elmejor agrupamiento para el experimento 1 es 3.

Luego del proceso de agrupamiento y de obtener los mejores

5

Page 6: [IEEE 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Medellin, Colombia (2012.10.1-2012.10.5)] 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Discovery

EXPERIMENTO 2: REGRESION CON VARIABLE RESPUESTA ERROR DENSIYGRUPO 1 GRUPO 2

METRICA FREC METRICA FRECLOC BLANK 70 ERROR COUNT 100ERROR COUNT 50 LOC BLANK 80LOC COMMENTS 14 LOC COMMENTS 16LOC CODE AND COMMENT 14 LOC CODE AND COMMENT 16DECISION COUNT 14 DECISION COUNT 16CYCLOMATIC DENSITY 14 CYCLOMATIC DENSITY 16CYCLOMATIC COMPLEXITY 14 CYCLOMATIC COMPLEXITY 16CYCLOMATIC COMPLEXITY 16 CYCLOMATIC COMPLEXITY 16

EXPERIMENTO 2: REGRESION CON VARIABLE RESPUESTA ERROR DENSITYGRUPO 1 GRUPO 2

METRICA FREC METRICA FRECERROR COUNT 150 ERROR COUNT 200LOC BLANK 90 LOC BLANK 100LOC COMMENTS 18 LOC COMMENTS 20LOC CODE AND COMMENT 18 LOC CODE AND COMMENT 20DECISION COUNT 18 DECISION COUNT 20CYCLOMATIC DENSITY 18 CYCLOMATIC DENSITY 20CYCLOMATIC COMPLEXITY 18 CYCLOMATIC COMPLEXITY 20CYCLOMATIC COMPLEXITY 20 CYCLOMATIC COMPLEXITY 20

EXPERIMENTO 2: REGRESION CON VARIABLE RESPUESTA ERROR DENSITYGRUPO 1 GRUPO 2

METRICA FREC METRICA FRECERROR COUNT 250 ERROR DENSITY 300LOC BLANK 110 LOC BLANK 130LOC COMMENTS 22 LOC COMMENTS 26LOC CODE AND COMMENT 22 LOC CODE AND COMMENT 26DECISION COUNT 22 DECISION COUNT 26CYCLOMATIC DENSITY 22 CYCLOMATIC DENSITY 26CYCLOMATIC COMPLEXITY 22 CYCLOMATIC COMPLEXITY 26CYCLOMATIC COMPLEXITY 26 CYCLOMATIC COMPLEXITY 26

TABLE IVMETRICAS CON MAYOR PRESENCIA EN REGRESION CON VARIABLE

RESPUESTA ERROR DENSITY

grupos, se realizo un proceso de regresion multivariable te-niendo como variable respuesta a ERROR COUNT y comovariables predictoras a todas las demas metricas, lo mismose hizo para la variable respuesta ERROR DENSITY. Elsignificado de cada una de estas variables se encuentra enla tabla I

Es importante destacar que solo se realizaron regresionesmultivariable entre todas las posibles combinaciones demetricas y el error, tomando solo las respuestas de regresioncon un Error Medio < 0.001 y un R cuadrado > 0.82.

En las tablas III y IV se muestran las metricas con mayorfrecuencia en las regresiones, y como se puede observar,para el experimento 1, cada uno de los 3 grupos formadostanto con k-Means, Neural Gas y Online Update, la variablepredictora con mayor frecuencia en todas las pruebas hasido LOC BLANK, LOC COD COMMENT, CALL PAIRS,CICLOMATYC DENSITY y BRANCH COUNT

IV. CONCLUSIONES

El grupo 1 muestra elementos con mayor ERROR COUNTcon una media promedio de 0.5186 frente al grupos dos con0.0086 y al grupo 3 con 0.005. Sin embargo, el grupo 3presenta un ERROR DENSITY mayor que los grupos 1 y2. Esto indica que aunque el grupo 3 tiene menor numerode errores por modulo que el grupo 1 y 2, sus errores seencuentran agrupados en menos modulos, es decir que ladensidad de error es mayor. En cambio los grupos 1 y 2 tienelos errores dispersos entre sus modulos.

Un aspecto interesante es la presencia de la variableLOC BLACK, la cual mide el numero de lıneas en blanco

en el codigo fuente. Una pregunta directa de este resultadoserıa la siguiente: ¿Que tiene que ver las lıneas en blancorespecto al error en el software?. Aparentemente nada, perolos resultados muestran una presencia marcada en todos losgrupos y en ambos experimentos.

De este modo, los resultados sugieren que grupos conmayor promedio de lıneas en blanco muestran una mayorDensidad de Error. Este patron se repite en todos los gruposy para todos los experimentos y lo mismo ocurre con lavariable LOC COD COMMENT que mide las lıneas decomentario en el codigo fuente.

Este hecho podrıa interpretarse como un indicativo deorden de implementacion, es decir, un exceso de lıneasen blanco y comentarios dentro del codigo fuente podrıandificultar seguir la secuencia logica en el codigo fuente, eincrementar la posibilidad de error en los modulos.

Otras variables interesantes que tiene una relaciondirecta con ERROR COUNT son CALL PAIRS yBRANCH COUNT, el primero evalua el numero dellamadas a funciones de otros modulos y el segundo evaluael numero de ramificaciones logicas dentro de la secuenciadel codigo fuente. Este patron nuevamente se repite en todoslos grupos y con las 3 tecnicas de clustering.

La interpretacion a este resultado tiene que ver con unapropiedad de modularidad en Ingenierıa de Software, estapropiedad indica que los modulos en un sistema de softwaredeben de ser altamente cohesivos y debilmente acoplados.En otras palabras, los modulos deben tener el menor numerode comunicaciones posibles con otros modulos, a fin deminimizar el acoplamiento, y evitar la propagacion del erroren los modulos conectados.

Un alto numero en CALL PAIRS indica una conexionalta entre modulos, de modo tal, que si un modulo falla, opresenta un error logico en algunas de sus funciones, eseerror se dispersa entre todos los modulos conectados a estafuncion, haciendo que el modulo sea fuertemente acoplado.

Por otra parte, los modulos con alto valor enBRANCH COUNT son aquellos que presenta variasbifurcaciones logicas en el codigo fuente, esto hace que elcodigo fuente sea mas complejo de analizar y de mantener,por lo tanto incrementa la posibilidad de error.

Finalmente, otro patron se que observa es la presenciade la variable CICLOMATYC DENSITY la cual mide ladensidad de la complejidad ciclomatica, y esta ultima midela complejidad de una estructura de decision de un modulo.

Esta variable (CICLOMATYC DENSITY) que aunque noesta presente en los grupos 1 y 2 muestra una relaciondirecta respecto a ERROR DENSITY, lo cual indicarıa que

6

Page 7: [IEEE 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Medellin, Colombia (2012.10.1-2012.10.5)] 2012 XXXVIII Conferencia Latinoamericana En Informatica (CLEI) - Discovery

EXPERIMENTO 1: REGRESION CON VARIABLE RESPUESTA ERROR COUNT (KMEANS)GRUPO 1 GRUPO 2 GRUPO 3

METRICA FREC METRICA FREC METRICA FRECLOC BLANK 22 LOC BLANK 33 LOC BLANK 44BRANCH COUNT 15 BRANCH COUNT 17 BRANCH COUNT 19LOC EXECUTABLE 3 LOC CODE AND COMMENT 5 LOC CODE AND COMMENT 7LOC CODE AND COMMENT 3 CALL PAIRS 5 CALL PAIRS 7EDGE COUNT 3 LOC EXECUTABLE 4 DECISION COUNT 6CALL PAIRS 3 EDGE COUNT 4 CYCLOMATIC DENSITY 6NUM UNIQUE OPERATORS 2 DECISION COUNT 4 CONDITION COUNT 6CONDITION COUNT 6 CONDITION COUNT 6 CONDITION COUNT 6

EXPERIMENTO 1: REGRESION CON VARIABLE RESPUESTA ERROR COUNT (NEURAL GAS)GRUPO 1 GRUPO 2 GRUPO 3

METRICA FREC METRICA FREC METRICA FRECLOC BLANK 55 LOC BLANK 66 LOC BLANK 87BRANCH COUNT 21 BRANCH COUNT 23 BRANCH COUNT 39LOC CODE AND COMMENT 9 LOC CODE AND COMMENT 11 LOC CODE AND COMMENT 14CALL PAIRS 9 CALL PAIRS 11 CALL PAIRS 14DECISION COUNT 8 DECISION COUNT 10 DECISION COUNT 12CYCLOMATIC DENSITY 8 CYCLOMATIC DENSITY 10 CYCLOMATIC DENSITY 12CONDITION COUNT 8 CONDITION COUNT 10 CONDITION COUNT 12

EXPERIMENTO 1: REGRESION CON VARIABLE RESPUESTA ERROR COUNT (ONLINE UPDATE)GRUPO 1 GRUPO 2 GRUPO 3

METRICA FREC METRICA FREC METRICA FRECLOC BLANK 98 LOC BLANK 109 LOC BLANK 120BRANCH COUNT 41 BRANCH COUNT 43 BRANCH COUNT 45LOC CODE AND COMMENT 16 LOC CODE AND COMMENT 18 LOC CODE AND COMMENT 20CALL PAIRS 16 CALL PAIRS 18 CALL PAIRS 20DECISION COUNT 14 DECISION COUNT 16 DECISION COUNT 18CYCLOMATIC DENSITY 14 CYCLOMATIC DENSITY 16 CYCLOMATIC DENSITY 18CONDITION COUNT 14 CONDITION COUNT 16 CONDITION COUNT 18

TABLE IIIMETRICAS CON MAYOR PRESENCIA EN REGRESION CON VARIABLE RESPUESTA ERROR COUNT

los modulos con mayor complejidad ciclomatica tienen mayorposibilidad de agrupar los errores en el sistema, de este modolos errores se condensan en modulos con alta complejidadciclomatica e incrementan la densidad de error en el sistema.

V. TRABAJOS FUTUROS

Hay un numero de problemas interesantes relacionados conel descubrimiento de patrones en metricas de software, loscuales podrıan ser de gran utilidad en la etapa de desarrollo.Un trabajo futuro que se plantea es el uso de teorıa de grafospara analizar los vectores caracterısticas, como si fueran nodosdel grafo y las aristas como distancias entre los nodos, demodo que podamos encontrar relaciones entre los nodos ydescubrir patrones ocultos.

REFERENCES

[1] S. Zhong, T. M. Khoshgoftaar, and N. Seliya, “Analyzing softwaremeasurement data with clustering techniques,” IEEE Intelligent Systems,vol. 19, pp. 20–27, 2004.

[2] C. Catal, U. Sevim, and B. Diri, “Clustering and metrics thresholdsbased software fault prediction of unlabeled program modules.” IEEEEducational Activities Department Piscataway, NJ, USA, Marzo 2004,vol. 19, pp. 20–27.

[3] B. Yang, X. Zheng, and P. Guo, “Software metrics data clustering forquality prediction.” Springer Berlin - Heidelberg, Septiembre 2006,vol. 4114/2006, pp. 959–964.

[4] X. Yuan, T. M. Khoshgoftaar, E. B. Allen, and K. Ganesan, “Anapplication of fuzzy clustering to software quality prediction.” IEEEComputer Society Washington, DC, USA, Marzo 2000, p. 85.

[5] M. Turan and Z. Cataltepe, “Clustering and dimensionality reductionto determine important software quality metrics,” pp. 1–6, Noviembre2007.

[6] Data Mining Methods and Models, 1st ed. Wiley-IEEE Press, 2006.[7] B. Efron and R. Tibshirani, An Introduction to the

Bootstrap, ser. Monographs on Statistics and AppliedProbability. Taylor & Francis, 1994. [Online]. Available:http://books.google.com.pe/books?id=gLlpIUxRntoC

[8] J. Fox, “Bootstrapping regression models appendix to an r and s-pluscompanion to applied regression,” January 2002.

[9] G. Meza and C. Lopez, “Aplicacion de tecnicas de agrupamiento paraencontrar relaciones entre el desempeno academico de los alumnos dela ucsp y sus rasgos de personalidad y madurez mental,” 2009.

[10] Discovering Knowledge in Data: An Introduction to Data Mining, 1st ed.Wiley-Interscience, 2005.

[11] Principles of Data Mining, 1st ed. The MIT Press, 2001.[12] W. M. Rand, “Objective criteria for the evaluation of clustering meth-

ods,” Journal of the American Statistical Association, 1971.[13] L. Hubert and P. Arabie, “Comparing partitions,” Journal of Classifica-

tion, 1985.

7