Effectiveness analysis of Aspect-Oriented Dependence Flow Graph as an intermediate representation tool - Ahmad, Syarbaini; Abd Ghani, Abdul Azim (Science Publications, 2018)
Graph-based representations of programs such as control flow graph or dependence graph have been used to support program analysis tasks such as program comprehension and software maintenance. However, in the case of Aspect-Oriented Programming (AOP), such graph representations individually is not enough to represent the features of aspect-oriented programs because it could need to identify the flow of control and the relationship of the data. AOP is a technique for improving modularity by separating crosscutting concerns in software development. In this article, a graph model known as Aspect-Oriented Dependence Flow Graph (AODFG) is proposed to represent the structure of aspect-oriented programs. The graph is formed by combining control flow graph and dependence graph into a single graph representation. As a consequence, more information about dependencies involving the features of AOP, such as join point, advice, aspects, their related constructs and the flow of control are able to be analysed. Effectiveness analysis of AODFG has been conducted in an experiment involving twenty software experts applying the graph on the AspectJ benchmark programs. The findings show that they were very satisfied with AODFG as an effective tools for analysing code.