A lightweight LTL runtime verification tool for java
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Modular Software Design with Crosscutting Interfaces
IEEE Software
Groovy in Action
Java Persistence with Hibernate
Java Persistence with Hibernate
Bridging Java and AspectJ through explicit join points
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Practical pluggable types for java
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
JavaCOP: Declarative pluggable types for java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Reusable enterprise metadata with pattern-based structural expressions
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Co-evolving Annotations and Source Code through Smart Annotations
CSMR '10 Proceedings of the 2010 14th European Conference on Software Maintenance and Reengineering
Beyond assertions: advanced specification and verification with JML and ESC/Java2
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Open modules: modular reasoning about advice
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Separation of concerns with procedures, annotations, advice and pointcuts
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Managing the evolution of aspect-oriented software with model-based pointcuts
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Towards an aspect-oriented language module: aspects for petri nets
Proceedings of the seventh workshop on Domain-Specific Aspect Languages
Hi-index | 0.00 |
Within the aspect-oriented software development community, the use of annotation-based pointcuts has been proposed as a means to alleviate the fragile pointcut problem. Expressing pointcuts in terms of source-code annotations instead of the structure of the source code, decouples them from the source code of the base system and makes them more robust with respect to evolution. In this paper we demonstrate that, while annotations are suitable to capture static domain knowledge that can be leveraged by pointcut expressions, these annotations are ill-suited to capture dynamic domain knowledge. Consequently, pointcuts that rely on such dynamic knowledge still need to be defined in terms of actual source-code entities, thereby rendering them fragile again. As a means to alleviate this problem we propose Dynamic Annotations, an extension to Java annotations where the dynamic conditions under which the annotation is valid can be embedded in the annotation itself. By expressing pointcuts in terms of such dynamic annotations, these pointcuts are effectively decoupled from the structure of the base program, and become less fragile with respect to evolution.