Abstract:
The most crucial classes in an object-oriented software system are known as key classes. They serve as the backbone of the software system and are typically documented in...Show MoreMetadata
Abstract:
The most crucial classes in an object-oriented software system are known as key classes. They serve as the backbone of the software system and are typically documented in project documentation or executive summaries. Key classes play a vital role in software reengineering tasks, particularly when there is a lack of or inadequate documentation for the project. Therefore, the detection of key classes becomes a significant concern. Various methods have been reported for detecting key classes, including static code analysis, dynamic code analysis, and machine learning. In a static code analysis approach, a weighted graph model is employed to represent the relationships between classes, such as inheritance, interface realization, field usage, and return type usage. By applying a link analysis algorithm on the weighted graph model, the classes are ranked based on their importance, enabling the identification of the top 20 most critical classes. To evaluate the significance of class relations, we generate all possible combinations of weights for three pairs (0,1), (1,2) and (1,5) for each class relation during the construction of the weighted graph. Our approach is tested on 14 analyzed systems of varying sizes, encompassing different domains like games, web servers, utilities, and more. The results indicate an improvement of 1% of the Recall values over the best known result from the state of the art.
Date of Conference: 11-13 October 2023
Date Added to IEEE Xplore: 10 November 2023
ISBN Information: