Using fuzzy rules for identifying key classes in software systems
Ioana Şora, Doru Todinca · 2016
In order to help software engineers deal with the increasing size and complexity of software systems, current research is directed toward developing more intelligent tools such as recommendation systems for software engineering. In this paper we propose a tool to help software engineers in tasks related to early stages of program comprehension, by finding the most important classes of a software system. Our approach of identifying the most important classes of a software project is based on ranking them by using fuzzy rules that have in their premises attributes of the classes. These attributes are the size of the class, the weighted incoming and outgoing dependencies, and the PageRank value of the class in the graph created from class dependencies. Experiments done on a set of well-known open source real-life systems produce good results for identifying the key classes of software systems.