A Modular Aspect-Oriented Programming Approach of Join Point Interfaces

This paper describes and analyzes the main differ-ences and advantages of the Join Point Interfaces (JPI) as an Aspect-Oriented Programming (AOP) approach for the modular software production concerning the standard aspect-oriented pro-gramming methodology for Java (AspectJ) to propose a structural modeling approach looking for modular software solutions. Using a Software Engineering point-of-view, we highlight the relevance of structural and conceptual design for JPI software applications. We model and implement a classic example of AOP using AspectJ and JPI as an application example to review their main difference and highlight the JPI consistency between products (models and code). Our proposal of UML JPI class diagrams allows the definition of oblivious classes which know about their JPI connections, an essential element to adapt and transform tradition like-AspectJ AOP solutions to their JPI version. Thus, for the modular software production and education, JPI seems an ideal software development approach.

[1]  Cristian Vidal Silva,et al.  Aspect-Oriented Modeling: Applying Aspect-Oriented UML Use Cases and Extending Aspect-Z , 2013, Comput. Informatics.

[2]  Eric Bodden,et al.  Join point interfaces for modular reasoning in aspect-oriented programs , 2011, ESEC/FSE '11.

[3]  Ivar Jacobson,et al.  Aspect-Oriented Software Development with Use Cases (Addison-Wesley Object Technology Series) , 2004 .

[4]  Marcela Genero,et al.  A systematic identification of consistency rules for UML diagrams , 2018, J. Syst. Softw..

[5]  David H. Lorenz,et al.  Modeling aspect mechanisms: a top-down approach , 2006, ICSE.

[6]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[7]  Abdullah O. AL-Zaghameem An Aspect Oriented Programming Framework to Support Transparent Runtime Monitoring of Applications , 2019 .

[8]  Dean Wampler,et al.  Aspect-Oriented Design Principles : Lessons from Object-Oriented Design , 2007 .

[9]  Cristian Vidal Silva,et al.  Aspect-Oriented Formal Modeling: (AspectZ + Object-Z) = OOAspectZ , 2015, Comput. Informatics.

[10]  Adilson Marques da Cunha,et al.  A State-Based Testing Method for Detecting Aspect Composition Faults , 2014, ICCSA.

[11]  Ivar Jacobson,et al.  Use Cases and Aspects-Working Seamlessly Together , 2003, J. Object Technol..

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

[13]  Cristian Vidal Silva,et al.  JPIAspectZ: A Formal Specification Language for Aspect-Oriented JPI Applications , 2014, 2014 33rd International Conference of the Chilean Computer Science Society (SCCC).

[14]  Cristian Vidal Silva,et al.  JPI UML Software Modeling , 2015 .

[15]  Robert J. Winter Cpt Agile Software Development: Principles, Patterns, and Practices , 2014 .

[16]  Eric Bodden,et al.  Join point interfaces for safe and flexible decoupling of aspects , 2014, TSEM.

[17]  Rodolfo Villarroel,et al.  OOAspectZ and aspect-oriented UML class diagrams for Aspect-oriented software modelling (AOSM) , 2013, Ingeniería e Investigación.

[18]  Eric Bodden Closure joinpoints: block joinpoints without surprises , 2011, AOSD '11.