A New k-means Based Clustering Algorithm in Aspect Mining

Clustering is a division of data into groups of similar objects. Aspect mining is a process that tries to identify cross-cutting concerns in existing software systems. The goal is to refactor the existing systems to use aspect oriented programming, in order to make them easier to maintain and to evolve. This paper aims at presenting a new k-means based clustering algorithm used in aspect mining. Clustering is used in order to identify crosscutting concerns. We propose some quality measures in order to evaluate the results both from the clustering point of view and the aspect mining point of view, and we also report two case studies

[1]  Anil K. Jain,et al.  Algorithms for Clustering Data , 1988 .

[2]  Jens Krinke,et al.  Aspect mining using event traces , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[3]  Lili He,et al.  Aspect Mining Using Clustering and Association Rule Method , 2006 .

[4]  Anil K. Jain,et al.  Data clustering: a review , 1999, CSUR.

[5]  Grigoreta Sofia Moldovan,et al.  Aspect Mining using a Vector-Space Model Based Clustering Approach , 2006 .

[6]  Arie van Deursen,et al.  Identifying aspects using fan-in analysis , 2004, 11th Working Conference on Reverse Engineering.

[7]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[8]  Jingchao Chen Dijkstra's Shortest Path Algorithm , 2003 .

[9]  Mariano Ceccato,et al.  Aspect mining through the formal concept analysis of execution traces , 2004, 11th Working Conference on Reverse Engineering.

[10]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[11]  Emden R. Gansner,et al.  Bunch: a clustering tool for the recovery and maintenance of software system structures , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[12]  Petra Perner,et al.  Data Mining - Concepts and Techniques , 2002, Künstliche Intell..