Application-specific models and pointcuts using a logic metalanguage

In contemporary aspect-oriented languages, pointcuts are usually specified directly in terms of the structure of the source code. The definition of such low-level pointcuts requires aspect developers to have a profound understanding of the entire application's implementation and often leads to complex, fragile and hard-to-maintain pointcut definitions. To resolve these issues, we present an aspect-oriented programming system that features a logic-based pointcut language that is open such that it can be extended with application-specific pointcut predicates. These predicates define an application-specific model that serves as a contract that base program developers provide and aspect developers can depend upon. As a result, pointcuts can be specified in terms of this more high-level model of the application which confines all intricate implementation details that are otherwise exposed in the pointcut definitions themselves.

[1]  Wilke Havinga havingaw,et al.  Introduction and Derivation of Annotations in AOP Applying Expressive Pointcut Languages to Introductions , 2005 .

[2]  Rainer Unland,et al.  Objects, Components, Architectures, Services, and Applications for a Networked World , 2003, Lecture Notes in Computer Science.

[3]  Cristina V. Lopes,et al.  Aspect-Oriented Programming , 1997, ECOOP.

[4]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[5]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[6]  Dave Thomas,et al.  ECOOP 2006 - Object-Oriented Programming , 2006 .

[7]  Ulf Nilsson,et al.  Logic, programming and Prolog , 1990 .

[8]  Cyril S. Ku,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[9]  Mira Mezini,et al.  Separation of Concerns with Procedures, Annotations, Advice and Pointcuts , 2005, ECOOP.

[10]  Kim Mens,et al.  Application-specific models and pointcuts using a logic metalanguage , 2008, Comput. Lang. Syst. Struct..

[11]  Mario Südholt,et al.  An expressive aspect language for system applications with Arachne , 2005, AOSD '05.

[12]  Kim Mens,et al.  Supporting software development through declaratively codified programming patterns , 2002, Expert Syst. Appl..

[13]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[14]  Kim Mens,et al.  Co-evolving code and design with intensional views: A case study , 2005, Comput. Lang. Syst. Struct..

[15]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[16]  Christian Koppen,et al.  PCDiff : Attacking the Fragile Pointcut Problem , 2004 .

[17]  Tzilla Elrad,et al.  Aspect-Oriented Software Development , 2004 .

[18]  Robert Hirschfeld,et al.  AspectS - Aspect-Oriented Programming with Squeak , 2002, NetObjectDays.

[19]  Jan Maluszynski,et al.  Logic, Programming and Prolog (2ed) , 1995 .

[20]  Stéphane Ducasse,et al.  Inter-language reflection: A conceptual model and its implementation , 2006, Comput. Lang. Syst. Struct..

[21]  Kim Mens,et al.  Managing the Evolution of Aspect-Oriented Software with Model-Based Pointcuts , 2006, ECOOP.

[22]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[23]  Hridesh Rajan,et al.  Understanding aspects via implicit invocation , 2004 .

[24]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[25]  Ivan Kiselev,et al.  Aspect-Oriented Programming with AspectJ , 2002 .

[26]  Ralph E. Johnson,et al.  Wrappers to the Rescue , 1998, ECOOP.

[27]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[28]  Robert Hirschfeld,et al.  Aspect-Oriented Programming with AspectS , 2002 .

[29]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[30]  Mira Mezini,et al.  Expressive Pointcuts for Increased Modularity , 2005, ECOOP.

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

[32]  Satoshi Matsuoka,et al.  ECOOP'97 — Object-Oriented Programming , 1997, Lecture Notes in Computer Science.

[33]  Robert A. Kowalski,et al.  Algorithm = logic + control , 1979, CACM.

[34]  Andrew P. Black ECOOP 2005 - Object-Oriented Programming, 19th European Conference, Glasgow, UK, July 25-29, 2005, Proceedings , 2005, ECOOP.

[35]  Hidehiko Masuhara,et al.  Compilation Semantics of Aspect-Oriented Programs , 2002 .

[36]  Kris Gybels,et al.  Arranging language features for more robust pattern-based crosscuts , 2003, AOSD '03.

[37]  Wim Vanderperren,et al.  Stateful Aspects in JAsCo , 2005, SC@ETAPS.

[38]  Robert E. Filman What Is Aspect-Oriented Programming, Revisited , 2001 .

[39]  Yuanyuan Song,et al.  Modular software design with crosscutting interfaces , 2006, IEEE Software.