Visualization, Analysis, and Testing of Java and AspectJ Programs with Multi-level System Graphs

Software Engineering(2013)

引用 5|浏览0
暂无评分
摘要
Several software development techniques involve the generation of graph-based representations of a program created via static analysis. Some tasks, such as integration testing, require the creation of models that represent several parts of the system, and not just a single component or unit (e.g., unit testing). Besides being a basis for testing and other analysis techniques, an interesting feature of these models is that they can be used for visual navigation and understanding of the software system. However, the generation of such models - henceforth called system graphs - is usually costly, because it involves the reverse engineering and analysis of the whole system, many times done upfront. A possible solution for such a problem is to generate the graph on demand, that is, to postpone detailed analyses to when the user really needs it. The main idea is to start from the package structure of the system, representing dependencies at a high level, and to make control flow and other detailed analysis interactively and on demand. In this paper we use this idea to define a model for the visualization, analysis, and structural testing of object oriented(OO) and aspect-oriented (AO) programs. The model is called Multi-Level System Graph (MLSG), and is implemented in a prototype tool based on Java and AspectJ named SysGraph4AJ(for Multi-Level System Graphs for AspectJ). To evaluate the applicability of SysGraph4AJ with respect to performance, we performed a study with three AspectJ programs, comparingSysGraph4AJ with a similar tool. Results indicate the feasibility of the approach, and its potential in helping developers better understand and test OO and AO Java programs. In particular, SysGraph4AJ performed around an order of magnitude faster than the other tool.
更多
查看译文
关键词
software system,detailed analysis,detailed analysis interactively,structural testing,multi-level system graphs,aspectj programs,analysis technique,whole system,system graph,integration testing,unit testing,static analysis,data visualisation,aspect oriented programming,java,object oriented programming
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要