Extensions of Component Rank Model by Taking into Account for Clone Relations
Reishi Yokomori, Norihiro Yoshida, Masami Noro, Katsuro Inoue · 2016
The size of software increases in recent years, and the number of classes and relationships between classes are also increasingly complicated. We have a large interest about the way to classify a great deal of components effectively. Our research group proposed a component rank model in the past, and the model calculates an evaluation value of each component by using component graph that represents use-relations between components. In this paper, we suggest a method to reflect code clone's relation on the component rank model. In the extended model, code clone's relations are reflected on the component graph by merging components that have similar code fragments. When we focus simply on how the evaluation value of each component has changed, component whose evaluation value falls would be mainly a component used by both of the merged components. In the experiment, we applied our method to several open source projects, and confirmed that the change of evaluation value of each component was within the scope of the assumption. And we also searched case examples, and confirmed how much assumed cases existed in the actual software, and a percentage of the reduction of the evaluation value was useful for detecting components related with code clone. Through these experiments, we confirmed that our method is effective to detect components that existing similar code fragments are using.