Font Size: a A A

Research On Software Version Evolution Based On AST

Posted on:2018-10-11Degree:MasterType:Thesis
Country:ChinaCandidate:Z J LiuFull Text:PDF
GTID:2348330542990805Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
With the development of software industry in recent years,software become more and more complex,a growing number of version iteration.In the absence of design documentation,it is increasingly difficult to understand the evolution of the software version by source code alone.Most of the traditional software evolutionary analysis is based on the similarity matching of the abstract syntax tree,and based on it,the analysis of grammar and semantic information is carried out.But the similarity exists the error,and the similarity matching needs to match with all similar objects,it is low efficiency.In this thesis,a Diff-AST software evolution algorithm based on Diff and abstract syntax tree is proposed.The algorithm includes three aspects: First,use the hierarchical structure of folders and files to recursively process all the files of the software version source code,and get the information of the specific lines of the source files from the acquired patch files.Then,the abstract syntax tree of the two versions is acquired and analyzed,and the nodes of the abstract syntax trees are located according to the line numbers of the changes analyzed by Diff and the information of modules such as class functions is analyzed.On this basis,the sub-module deals with the evolution information,and then abstracts the syntax tree node matching,at the same time,it flexibly uses the Diff to carry on the second processing,and then analyzes the abundant evolutionary information related to the module structure information.Finally,the evolution of the analysis will be stored to the database and HTML pages,either browse the browser through the evolution of relevant information,also query the evolution of information through the database.In this thesis,we design a JAVA engineering about Diff-AST algorithm to open source software mongodb as the experimental object,experimental analysis and analysis of relevant examples.Experiments show that the proposed algorithm can effectively analyze the evolutionary information of modular structures such as class functions.Compared with the shortest distance algorithm based on abstract syntax tree,Diff-AST algorithm can improve the accuracy of evolving information and the efficiency of software evolution analysis.
Keywords/Search Tags:Diff, Abstract Syntax Tree, Software Version Evolution
PDF Full Text Request
Related items