Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
JAsCo: an aspect-oriented approach tailored for component based software development
Proceedings of the 2nd international conference on Aspect-oriented software development
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
prefuse: a toolkit for interactive information visualization
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Visualisation-based tool support for the development of aspect-oriented programs
Proceedings of the 5th international conference on Aspect-oriented software development
Presenting crosscutting structure with active models
Proceedings of the 5th international conference on Aspect-oriented software development
MultiJava: Design rationale, compiler implementation, and applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Component-based tailorability: Enabling highly flexible software applications
International Journal of Human-Computer Studies
Towards More Flexibility in Software Visualization Tools
VISSOFT '05 Proceedings of the 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis
Extending omniscient debugging to support aspect-oriented programming
Proceedings of the 2008 ACM symposium on Applied computing
Mutation Testing for Aspect-Oriented Programs
ICST '08 Proceedings of the 2008 International Conference on Software Testing, Verification, and Validation
Redundancy-free residual dispatch: using ordered binary decision diagrams for efficient dispatch
Proceedings of the 7th workshop on Foundations of aspect-oriented languages
Expressive and modular predicate dispatch for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Debugging aspect-enabled programs
SC'07 Proceedings of the 6th international conference on Software composition
An exploratory study of fault-proneness in evolving aspect-oriented programs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Making aspects natural: events and composition
Proceedings of the tenth international conference on Aspect-oriented software development
An overview of ALIA4J: an execution model for advanced-dispatching languages
TOOLS'11 Proceedings of the 49th international conference on Objects, models, components, patterns
AspectMaps: A Scalable Visualization of Join Point Shadows
ICPC '11 Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension
A debug interface for debugging multiple domain specific aspect languages
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
A fine-grained debugger for aspect-oriented programming
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
Transactions on Aspect-Oriented Software Development I
Hi-index | 0.00 |
To increase modularity, many aspect-oriented programming languages provide a mechanism based on implicit invocation: An aspect can influence runtime behavior of other modules without the need that these modules refer to the aspect. Recent studies show that a significant part of reported bugs in aspect-oriented programs are caused exactly by this implicitness. These bugs are difficult to detect, because aspect-oriented source code elements and their locations are transformed or even lost after compilation. We investigate four dedicated fault models and identify 11 tasks that a debugger should be able to perform for detecting aspect-orientation-specific faults. We show that existing debuggers are not powerful enough to support all identified tasks, because the aspect-oriented abstractions are lost after compilation. This paper describes the design and implementation of a debugger for aspect-oriented languages using a dedicated intermediate representation preserving the abstraction level of aspect-oriented source code. This is based on a model of the more general formalism of advanced dispatching. Based on this model, we implement a user interface with functionalities supporting the identified tasks, such as visualizing pointcut evaluation and program composition. Due to the generality of our intermediate representation, our debugger can be used for a wide range of programming languages. To account for the syntactic differences among these languages, we allow language designers to customize the textual representations on the user interface.