Font Size: a A A

Research On Key Technologies Of Software Change Impact Analysis

Posted on:2024-05-29Degree:DoctorType:Dissertation
Country:ChinaCandidate:P DaiFull Text:PDF
GTID:1528306944456814Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
In modern software development,following the principles of Agile and DevOps,updates are becoming increasingly frequent.Software products are improved and modified in response to changing system requirements to meet user needs.Considering the continuous consideration of changes throughout the software product lifecycle,coupled with the increasing complexity of software systems and the increasing side effects of modified software components on other parts of the system,there is a need for change impact analysis.Impact analysis assesses multiple risks associated with changes,including the impact on resources,workload,and development progress.Impact analysis of software requirement changes and software reuse require establishing a mapping relationship from software requirements to code.Change impact analysis of code in software is an important component of regression testing,as it can predict and evaluate the risks of code changes.Specifically,inconsistent changes to cloned code are a dangerous type of change that increases the risk of losing the connection between cloned code.This paper extensively researches the combination of artificial intelligence technology and static analysis of programs to address relevant issues in software requirement change impact analysis and code change impact analysis.The main research areas include the following aspects:1.Existing research on establishing mappings between requirements and code has not taken into account the semantic information and semantic correlations of software requirements and code.As a result,the constructed trace links are incomplete and inaccurate.In this paper,a method for automatically constructing trace links between software requirements and source code using neural network technology is proposed.This method first utilizes multiple neural network models to embed preprocessed software requirements and words or sentences from the source code into spatial vectors.These embedded vectors contain the semantic information of the vocabulary in software requirements and source code,as well as the implicit semantic correlations within requirement statements or code segments.The mapping relationship between software requirements and source code is then constructed by calculating the cosine similarity between these vectors and ranking them based on similarity.Multiple sets of comparative experiments have also validated the effectiveness of this method.Among them,the embedding model based on attention mechanism performs the best(with a recall rate of 0.687)and outperforms other related trace link construction methods.2.Existing static impact analysis tools face challenges in obtaining statementlevel impact sets and analyzing the change impact of complex variable.This paper proposes a novel method for analyzing statement-level change impacts based on variable type.In intraprocedural impact analysis,the method utilizes data flow analysis and reachable path analysis to obtain a set of statements affected by these variables.In interprocedural impact analysis,it searches for the impact set based on three types of relationships between functions and global variable information in the symbol table.Furthermore,to capture the change impacts of complex-type variables(such as structures,pointers,and arrays)in C programs,this paper introduces algorithms for nested structure analysis,pointer indirect impact analysis,and fuzzy analysis of array indices.In the experimental evaluation,the precision and recall of intraprocedural impact analysis results are 76.9%and 86.3%,respectively,while the precision and recall of interprocedural impact analysis results are 78.1%and 84.9%,respectively.The proposed method demonstrates significant improvements compared to existing analysis tools and baseline methods.3.Existing analysis methods overlook the impacts caused by cloned code,and detection tools have low recall rates when detecting clones with significant differences in code block granularity,leading to the omission of similar code blocks for changed statements.This paper proposes a method that combines multiple features of a program to detect clones with significant differences in code block granularity.The method includes the following three aspects:1)Introducing a method to extract structural features,semantic features,and token features of code based on the source code text and abstract syntax tree.2)Proposing an improved code block generation algorithm that divides the source code files into multiple code blocks based on the structural and semantic features of the program.3)Introducing a method to calculate the similarity between code blocks based on token features.The proposed method achieves an F1 score of at least 0.78 for detecting Type 1 and Type 2 code clones and an F1 score of at least 0.73 for detecting Type 3 clones on multiple open-source projects.Comparative experiments demonstrate that the proposed method outperforms existing detection methods or tools when detecting clones with significant differences in code block granularity.According to the above mentioned research methods,the corresponding prototype systems are developed,and their performance is analyzed through a large number of experiments in the actual open source engineering project.The experimental results verify the feasibility and superiority of the proposed method,so that the impact analysis technology can be better applied in software development and maintenance activities.
Keywords/Search Tags:Requirement-code mapping, Semantic understanding, In-traprocedural and interprocedural code analysis, Code clone detection
PDF Full Text Request
Related items