TY - GEN
T1 - Aspect mining using self-organizing maps with method level dynamic software metrics as input vectors
AU - Maisikeli, Sayyed G.
AU - Mitropoulos, Frank J.
PY - 2010/10/1
Y1 - 2010/10/1
N2 - A major impediment to program comprehension, maintenance and evolvability is the existence of crosscutting concerns scattered across different modules tangled with implementations of other concerns. Presence of crosscutting concerns in software systems can lead to bloated and inefficient software systems that are difficult to evolve, hard to analyze, difficult to reuse and costly to maintain. This paper shows that clustering based on easily extractable software features derived through method calls, parameter sharing and method interactions represented as dynamic metrics can be used to determine code scattering and or tangling, thereby providing a steppingstone towards identifying crosscutting concerns leading to mining of possible aspect candidates. A three-step approach is used in the Aspect Mining methodology introduced in this paper. In the first step, two legacy programs were dynamically traced, and data representing interaction between code fragments were collected. In the second step, metrics were formulated from the collected data and submitted as input to Self Organizing Maps for clustering. In the third step, the obtained clusters were mapped against the test programs in order to identify code scattering and tangling symptoms, leading to identification of aspect candidates. Finally viable validation methodologies were applied to assess performance, and establish the validity of the methodologies used. Results obtained in this paper are found to have matched or exceeded results obtained in other existing Aspect Mining methods.
AB - A major impediment to program comprehension, maintenance and evolvability is the existence of crosscutting concerns scattered across different modules tangled with implementations of other concerns. Presence of crosscutting concerns in software systems can lead to bloated and inefficient software systems that are difficult to evolve, hard to analyze, difficult to reuse and costly to maintain. This paper shows that clustering based on easily extractable software features derived through method calls, parameter sharing and method interactions represented as dynamic metrics can be used to determine code scattering and or tangling, thereby providing a steppingstone towards identifying crosscutting concerns leading to mining of possible aspect candidates. A three-step approach is used in the Aspect Mining methodology introduced in this paper. In the first step, two legacy programs were dynamically traced, and data representing interaction between code fragments were collected. In the second step, metrics were formulated from the collected data and submitted as input to Self Organizing Maps for clustering. In the third step, the obtained clusters were mapped against the test programs in order to identify code scattering and tangling symptoms, leading to identification of aspect candidates. Finally viable validation methodologies were applied to assess performance, and establish the validity of the methodologies used. Results obtained in this paper are found to have matched or exceeded results obtained in other existing Aspect Mining methods.
KW - Aspect mining
KW - Crosscutting concerns
KW - Self organizing maps
KW - Software metrics
KW - Software visualization
U2 - 10.1109/ICSTE.2010.5608880
DO - 10.1109/ICSTE.2010.5608880
M3 - Conference contribution
AN - SCOPUS:78650032748
SN - 9781424486656
T3 - 2010 2nd International Conference on Software Technology and Engineering
SP - V1212-V1217
BT - ICSTE 2010 - 2010 2nd International Conference on Software Technology and Engineering, Proceedings
T2 - 2010 2nd International Conference on Software Technology and Engineering, ICSTE 2010
Y2 - 3 October 2010 through 5 October 2010
ER -