Font Size: a A A

Research On Software Code Smell Detection Based On Empirical And Multidimensional Information

Posted on:2022-02-03Degree:MasterType:Thesis
Country:ChinaCandidate:H TongFull Text:PDF
GTID:2518306542962859Subject:Software engineering
Abstract/Summary:PDF Full Text Request
Code smell is the product of improper design and coding,and can cause serious problems in the later software development and maintenance.Unlike common coding errors,code smells may not directly cause software failures,but they can indirectly cause problems throughout the software maintenance cycle.Accurate and timely detection of code smells in software systems is the key to guide refactoring and solve such problems.At present,there are many challenges to the detection research of code smells.On the one hand,researchers have almost adopt subjective methods in the code smell detection design,and some unreasonable methods can have bad impacts on detection validity.On the other hand,current researches are more inclined to quantify software structure and mainly based on measurement information to detect code smells.This makes it difficult to match and detect complex smell features,which limits the use of non-quantitative information by graph network and other techniques.The main contributions of this thesis are summarized as follows:First,through combining systematic literature review and meta-ethnography,the limitations of current detection methods are analyzed from multiple angles.The reasons for the current limitations are considered from multiple levels,including goal,environment and technique.The correlation between these levels and validity is analyzed.Finally,a process framework for code smell detection method design is proposed.Second,a code smell detection method based on multi-dimensional software information and complex network is proposed.This method focuses on two code smells that have received less attention.First,complex network is used to model the software system,and then two association rules are designed for smell detection based on software historical version information and structural information.The experimental results show that this method has a better detection performance than the two commonly used detection methods.Third,a code smell detection method based on multi-dimensional software information and graph network is proposed.This method integrates the software structure,software metric,software text and other multi-dimensional software information.And based on this information,a graph network classification model suitable for the two most concerned code smells is trained.Through comparing with the results of other machine learning algorithms and mainstream detection tools,the results show that this code smell detection method based on multi-dimensional software information and graph network has a better detection performance.This thesis first presents the current status of code smell to researchers from multiple perspectives,and proposes a process framework for the design of code smell detection methods based on empirical information.In addition,this thesis proposes two code smell detection methods based on multi-dimensional information,combined with complex network and graph network.This not only improves the detection performance of code smell,but also provides a reference for subsequent code smell detection research.
Keywords/Search Tags:Code smell, Detection technique, Multidimensional software information, Empirical Software Engineering, Software refactoring
PDF Full Text Request
Related items