Incremental call graph reanalysis for AspectJ software

Yu Lin, Sai Zhang, Jianjun Zhao

Research output: Chapter in Book/Report/Conference proceedingConference contribution

3 Citations (Scopus)


Program call graph representation can be used to support many tasks in compiler optimization, program comprehension, and software maintenance. During software evolution, the call graph needs to remain fairly precise and be updated quickly in response to software changes. In this paper, we present an approach to incremental update, instead of exhaustive analysis of the initially constructed call graph in AspectJ software. Our approach first decomposes the source code edits between the updated and initial software versions into a set of atomic change representations, which capture the semantic differences. Then, we explore the relationship between atomic changes and call graph to incrementally update the initially constructed graph, instead of rebuilding it from the ground up. We implement the reanalysis approach on top of the ajc AspectJ compiler and perform an empirical study on 24 versions of eight AspectJ benchmarks. The experiment result shows that our approach can reduce a large portion of unnecessary reanalysis cost as program changes occur, and significant savings are observed for the incremental reconstruction of AspectJ call graph in comparison with an exhaustive analysis, with no loss in precision.

Original languageEnglish
Title of host publication2009 IEEE International Conference on Software Maintenance, ICSM 2009 - Proceedings of the Conference
Number of pages10
Publication statusPublished - 2009
Externally publishedYes
Event2009 IEEE International Conference on Software Maintenance, ICSM 2009 - Edmonton, AB, Canada
Duration: Sept 20 2009Sept 26 2009

Publication series

NameIEEE International Conference on Software Maintenance, ICSM


Other2009 IEEE International Conference on Software Maintenance, ICSM 2009
CityEdmonton, AB

All Science Journal Classification (ASJC) codes

  • Software


Dive into the research topics of 'Incremental call graph reanalysis for AspectJ software'. Together they form a unique fingerprint.

Cite this