Font Size: a A A

Mining Software Bug-proneness Based On Code Semantics And Cluster Analysis

Posted on:2024-06-20Degree:MasterType:Thesis
Country:ChinaCandidate:P XiongFull Text:PDF
GTID:2568307178474194Subject:Software engineering
Abstract/Summary:PDF Full Text Request
To accommodate changing business requirements,software systems need to perform substantial modification activities,making it more complex to maintain the software.In order to alleviate the burden of software maintenance,software clustering technology has taken shape.Software clustering technology can decompose a complex software system into multiple relatively independent clusters based on the dependencies between entities,allowing maintenance activities for software to focus on smaller,less complex clusters,thus managing the software system more effectively.Defective software modules dramatically impact on software quality and maintainability.Related studies have concluded that software entities with bug-proneness are more likely to form clusters.Therefore,improving software maintainability can start by addressing the potential bugs in clusters.Studies have been conducted to analyze software bugs by dividing software clusters and extracting features from the clusters to improve software maintainability.However,current software clustering techniques mainly use a single-dependency relationship to construct software clusters,and a few studies have performed software cluster partitioning based on multiple dependencies.Although some studies have suggested the relevance of semantic and co-change relationships,there is a lack of studies that use both dependency relationships to generate software clusters and evaluate the bug-proneness of the resulting clusters.In this paper,we propose a clustering method CLUF that combines semantic and cochange relationships to classify software clusters and investigate their bug-proneness.CLUF first constructs clustering partitions using semantic relationships,then uses cochange relationships to select appropriate partitions to obtain software clusters and finally uses bug information to detect high-risk clusters with bug-proneness.In this paper,we implement two clustering algorithms,and evaluate them on 20 open-source projects.By comparing with the other three clustering algorithms,the results show that software clusters partitioned based CLUF: 1)have higher accuracy;2)can detect higher bugproneness on the smaller size of high-risk clusters;3)can independently fix more bugs in the cluster;4)the ability to analyze bug-proneness in the cluster is comparable to other algorithms;and 5)overall,the CLUF algorithm performs better than the other algorithms.The above results suggest that more attention should be paid to the high-risk clusters captured by CLUF,which can find more bugs and reduce the complexity of code review compared to other algorithms;at the same time,these clusters can help developers to identify and resolve potential bugs locally in a single cluster,improving the efficiency of bug fixing.
Keywords/Search Tags:Software clustering, Semantic relationship, Bug-proneness analysis, Co-change relationships
PDF Full Text Request
Related items