The program summary graph and flow-sensitive interprocedual data flow analysis
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Properties of data flow frameworks: a unified model
Acta Informatica
Set based program analysis
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
Precise interprocedural dataflow analysis with applications to constant propagation
TAPSOFT '95 Selected papers from the 6th international joint conference on Theory and practice of software development
System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow
Proceedings of the 21st international conference on Software engineering
Compositional pointer and escape analysis for Java programs
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Scalable propagation-based call graph construction algorithms
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A framework for call graph construction algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
Change impact analysis for aspect-oriented software evolution
Proceedings of the International Workshop on Principles of Software Evolution
ESP: path-sensitive program verification in polynomial time
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Slicing Aspect-Oriented Software
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
Data-Flow-Based Unit Testing of Aspect-Oriented Programs
COMPSAC '03 Proceedings of the 27th Annual International Conference on Computer Software and Applications
Software validation via scalable path-sensitive value flow analysis
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Debugging Support for Aspect-Oriented Program Based on Program Slicing and Call Graph
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Measuring the dynamic behaviour of AspectJ programs
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
PSE: explaining program failures via postmortem static analysis
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
A classification system and analysis for aspect-oriented programs
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
Object naming analysis for reverse-engineered sequence diagrams
Proceedings of the 27th international conference on Software engineering
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
A framework and tool supports for generating test inputs of AspectJ programs
Proceedings of the 5th international conference on Aspect-oriented software development
Effective typestate verification in the presence of aliasing
Proceedings of the 2006 international symposium on Software testing and analysis
Semantics of static pointcuts in aspectJ
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Regression Test Selection for AspectJ Software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Practical memory leak detection using guarded value-flow analysis
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Unweaving the impact of aspect changes in AspectJ
Proceedings of the 2009 workshop on Foundations of aspect-oriented languages
Dataflow analysis for properties of aspect systems
HVC'09 Proceedings of the 5th international Haifa verification conference on Hardware and software: verification and testing
A pointcut-based coverage analysis approach for aspect-oriented programs
Information Sciences: an International Journal
A critical review of various testing techniques in aspect-oriented software systems
ACM SIGSOFT Software Engineering Notes
A constraint-weaving approach to points-to analysis for AspectJ
Frontiers of Computer Science: Selected Publications from Chinese Universities
Hi-index | 0.00 |
Aspect-oriented software presents new challenges for the designers of static analyses. Our work aims to establish systematic foundations for dataflow analysis of AspectJ software. We propose a control- and data-flow program representation for AspectJ programs, as basis for subsequent interprocedural dataflow analyses. The representation is built at the source code level and captures the semantic intricacies of various pointcut designators, multiple applicable advices per joint point, dynamic advices, and general flow of data to, from, and between advices. We also propose two dataflow analyses for AspectJ software: (1) a novel object effect analysis based on a flow- and context-sensitive must-alias analysis, and (2) a dependence analysis used for constructing the system dependence graph for slicing, refactoring, change impact analysis, etc. Both analyses are representative of a general category of dataflow analyses referred to as interprocedural distributed environment (IDE) problems. The two analyses are built on top of the proposed representation, and take into account the complex flow of control and data due to aspect-oriented features. We present a study of the proposed techniques on 37 program versions, using our Ajana analysis framework which is based on the abc AspectJ compiler. The results show that the representation can be built efficiently, that it is superior to an approach based on the woven bytecode, and that it enables analyses that are both faster and more precise. These findings strongly indicate that the proposed approach is a promising candidate for a foundation upon which various inter-procedural analyses for AspectJ can be designed and built.