Research On Java Software Key Class Identification Method Based On Dynamic Analysis | | Posted on:2024-03-02 | Degree:Master | Type:Thesis | | Country:China | Candidate:L H Wang | Full Text:PDF | | GTID:2568307139496374 | Subject:Master of Electronic Information (Professional Degree) | | Abstract/Summary: | | | In the past few decades,there have been breakthroughs in the study of complex networks,making it an emerging and hot topic area.Researchers have discovered that many systems in nature,such as social networks and neuron activity,can be abstracted as complex networks,which share similar characteristics such as "small-world" and "scale-free".In the field of software engineering,there has been a significant amount of research attempting to use complex network theory to understand the structure of software systems.They abstract software as a type of artificial complex network called "software network" and introduce complex network metrics to characterize the structural features of software,providing a new approach to solving related problems in software engineering.There are a small number of classes in a software system that control and manage the entire software operation,and these classes are called the key classes of the software.In recent years,people have identified key classes from the perspective of complex networks.They extract software structure information to construct a software network and introduce measurement indicators to identify key nodes in the network.The classes represented by these nodes are the key classes of the software.However,most existing key class identification methods are based on static analysis.Such methods do not require the actual operation of the software but extract the software’s structure information and construct a software network by analyzing the source code.Although progress has been made in static analysis,there are still limitations: 1)it does not consider the actual operation of the software and ignores the redundant coupling produced by "dead code";2)the calculation of network weights is not objective and ignores the real interaction frequency between software entities.Key class identification based on dynamic analysis requires the actual operation of the software and tracking the execution trajectory of the program to construct a software network.Compared with the network constructed by static analysis,the network constructed by dynamic analysis has more realistic software structure features.Therefore,dynamic analysis can make up for some of the limitations of static analysis.Dynamic analysis requires tracking the execution of the software,but it is difficult to start the software execution,resulting in fewer and less perfect works in the field of dynamic analysis.Proposing key class identification technology based on dynamic analysis can enrich research in related fields and provide new ideas for dynamic analysis.This article investigates "Identifying Key Classes in Java Software Systems Using Dynamic Analysis".The general approach is as follows: first,track the software’s execution process,obtain trajectory information,and then construct DDSNet(Dynamic Dependency Software Network)based on the trajectory information;second,use entropy-based metric methods to quantify the importance of nodes in the network;finally,rank the classes in descending order of importance and identify candidate key classes based on a threshold.Java software is mainly divided into GUI and non-GUI software,and their running modes are different.This article proposes a corresponding dynamic software network construction method for these two types of Java software and conducts experiments on several open source software.The main research contents of this article are as follows:1)Identifying key classes in Java GUI software systems using dynamic analysisThis article presents research on the identification of critical classes in software based on dynamic analysis using the software network DDSNet.Firstly,an automatic execution model for GUI software is designed to execute the software’s functionality.The model primarily uses the features of the GUI software to drive program execution and tracks the execution trajectory to construct the dynamic dependency network DDSNet.Next,the OSE method is used to measure the importance of each node in the network and rank them.Finally,the top-25 classes in the ranking list are considered as the candidate critical classes extracted by the proposed method.Three open-source Java GUI software systems are selected as experimental systems and compared with seven static benchmark methods.The results of the Friedman test indicate that the proposed method performs better than static analysis-based methods in identifying critical classes.2)Identifying key classes in Java Non-GUI software systems using dynamic analysis:empirical researchTo improve the identification of critical classes in Java software based on dynamic analysis,this article proposes a network construction method for non-GUI software.Firstly,an automatic execution model is designed to execute the functionality of non-GUI software,and a bytecode instrumentation tool is used to track the execution trajectory of the program and generate the CG(Call Graph).Next,the CGs are aggregated and the dynamic dependency network DDSNet is constructed.To empirically investigate the performance differences between dynamic and static networks,this article uses six open-source non-GUI software systems as experimental systems and compares them with the static network CCN in existing work.The experimental results show that dynamic networks do perform better than static networks under certain conditions.In addition,this article verifies through Wilcoxon Signed-Rank Test that different types of measurement methods have a significant impact on the performance of dynamic and static networks.This research aims to provide empirical research and experimental data support for the identification of critical classes based on dynamic analysis. | | Keywords/Search Tags: | dynamic analysis, key classes, complex networks, software networks, software metrics | | Related items |
| |
|