Title :
AST Based JAVA Software Evolution Analysis
Author :
Lu Jiang ; Zhiyi Zhang ; Zhihong Zhao
Author_Institution :
Software Inst., Nanjing Univ., Nanjing, China
Abstract :
In the process of software evolution, software change information can help software developers and system analysts to get a better understanding of differential part of software. In this paper, we construct different versions of source code into abstract syntax trees, and use an improved tree matching algorithm which combines multiple string matching algorithms, bilateral best match strategy and predicate information of program to improve the match result. Also a detailed change type list is defined and all the tree editing operations will be mapped to refined program change classification. We evaluated our tree match algorithm on a medium-size project of different versions. Ten typical classes were picked as a benchmark and 456 changes were specified manually. Our method show a good performance on this benchmark with the average change number bias controlled in 1.75, and the average change number error percentage is controlled fewer than 5.38%.
Keywords :
Java; program diagnostics; software maintenance; trees (mathematics); AST based JAVA software evolution analysis; abstract syntax trees; bilateral best match strategy; multiple string matching algorithm; predicate information; program change classification; software change information; source code; tree editing operation; tree match algorithm; tree matching algorithm; Abstracts; Algorithm design and analysis; Classification algorithms; Data mining; Software; Software algorithms; Syntactics; Abstract Syntax Tree; Program Differential Analysis; Software Evolution;
Conference_Titel :
Web Information System and Application Conference (WISA), 2013 10th
Conference_Location :
Yangzhou
Print_ISBN :
978-1-4799-3218-4
DOI :
10.1109/WISA.2013.42