{"title":"Identifying key classes of object-oriented software based on software complex network","authors":"Jiaming Wang, J. Ai, Yiwen Yang, Wenzhu Su","doi":"10.1109/ICSRS.2017.8272862","DOIUrl":null,"url":null,"abstract":"Identifying the most important classes in a software system is crucial for engineers to understand or maintain an unfamiliar system. Complex network theory provides a new way to study the characteristics of large-scale software. Unfortunately, most current studies consider only one or a limited number of factors affecting software structure, rendering inaccurate the results of mining the key classes of software. Thus, we propose an approach using various complex network metrics to automatically identify key classes from global and local aspects. From the global aspect, the location of a class and its ability to control the information flow of software are mainly considered. From local aspects, we focus on the interactions of classes with their neighbors, as well as the complexity of the class itself. Experiments are performed on two java open-source projects. Results show that this approach can accurately identify key classes compared with existing literature.","PeriodicalId":161789,"journal":{"name":"2017 2nd International Conference on System Reliability and Safety (ICSRS)","volume":"8 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"15","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2017 2nd International Conference on System Reliability and Safety (ICSRS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSRS.2017.8272862","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 15
Abstract
Identifying the most important classes in a software system is crucial for engineers to understand or maintain an unfamiliar system. Complex network theory provides a new way to study the characteristics of large-scale software. Unfortunately, most current studies consider only one or a limited number of factors affecting software structure, rendering inaccurate the results of mining the key classes of software. Thus, we propose an approach using various complex network metrics to automatically identify key classes from global and local aspects. From the global aspect, the location of a class and its ability to control the information flow of software are mainly considered. From local aspects, we focus on the interactions of classes with their neighbors, as well as the complexity of the class itself. Experiments are performed on two java open-source projects. Results show that this approach can accurately identify key classes compared with existing literature.