Instance pointcuts: selecting object sets based on their usage history

At runtime, how objects have to be handled frequently depends on how they were used before. But with current programming-language support, selecting objects according to their previous usage patterns often results in scattered and tangled code. In this study, we propose a new kind of pointcut, called Instance Pointcuts, for maintaining sets that contain objects with a specified usage history. Instance pointcut specifications can be reused, by refining their selection criteria, e.g., by restricting the scope of an existing instance pointcut; and they can be composed, e.g., by set operations. These features make instance pointcuts easy to evolve according to new requirements. Our approach improves modularity by providing a fine-grained mechanism and a declarative syntax to create and maintain usage-specific object sets.

[1]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[2]  Hridesh Rajan,et al.  Eos: instance-level aspects for integrated system design , 2003, ESEC/FSE-11.

[3]  Lodewijk Bergmans,et al.  HOW TO DEAL WITH ENCAPSULATION IN ASPECT-ORIENTATION , 2001 .

[4]  Sophie Cluet,et al.  Designing OQL: Allowing Objects to be Queried , 1998, Inf. Syst..

[5]  Naoyasu Ubayashi,et al.  Design and Implementation of an Aspect Instantiation Mechanism , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[6]  Mira Mezini,et al.  An In-Depth Look at ALIA4J , 2012, J. Object Technol..

[7]  Eric Bodden,et al.  Relational aspects as tracematches , 2008, AOSD.

[8]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[9]  Christoph Bockisch,et al.  An adapter-aware, non-intrusive dependency injection framework for Java , 2013, PPPJ.

[10]  Mira Mezini,et al.  EScala: modular event-driven object interactions in scala , 2011, AOSD '11.

[11]  James Noble,et al.  Relationship aspects , 2006, AOSD.

[12]  Hidehiko Masuhara,et al.  Dataflow Pointcut in Aspect-Oriented Programming , 2003, APLAS.

[13]  Akinori Yonezawa,et al.  A Fine-Grained Join Point Model for More Reusable Aspects , 2006, APLAS.

[14]  Robert DeLine,et al.  Typestates for Objects , 2004, ECOOP.

[15]  Mira Mezini,et al.  An Overview of CaesarJ , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[16]  Mira Mezini,et al.  A flexible architecture for pointcut-advice language implementations , 2007, VMIL.

[17]  Mirko Seifert,et al.  Closing the Gap between Modelling and Java , 2009, SLE.

[18]  Michael Haupt,et al.  Virtual machine support for dynamic join points , 2004, AOSD '04.

[19]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[20]  Éric Tanter Expressive scoping of dynamically-deployed aspects , 2008, AOSD.