State-based join-points: Motivation and requirements

In developing a real-world complex application, we experience the major problem that complex concerns do not easily map onto low-level aspects with join-points based on fixed points in the program code. It is our observation that modularizing concerns and quantification are to be tackled at design-time, using suitable abstractions, with a translation to dynamic weaving at run-time. In particular, we argue that ‘abstract states’ of software entities (a concern consists of software entities) are a promising instrument for defining higher-level join-points for concerns. The specification and quantification of concerns in terms of abstract states typically result in dynamic weaving, i.e. depending on run-time states of the software entities. Based on experience, we provide requirements for supporting concern modelling and quantification at design-time, as well as an initial sketch of an approach that we investigate in this perspective. The approach is based on a new type of higher-level join-points, called state-based join-points and serves as an example of the necessity for advanced dynamic (state-based) aspect weaving. The approach is motivated and illustrated through a scenario in a real-world application, namely decentralized control software for several automatic guided vehicles in an industrial transportation system.

[1]  Mehmet Aksit,et al.  Principles and Design Rationale of Composition Filters , 2004 .

[2]  Cristina V. Lopes,et al.  Workshop on Aspects and Dimensions of Concern: Requirements on, and Challenge Problems for, Advanced Separation of Concerns , 2000, ECOOP Workshops.

[3]  H. Van Dyke Parunak Agents in Overalls: Experiences and Issues in the Development and Deployment of Industrial Agent-Based Systems , 2000, Int. J. Cooperative Inf. Syst..

[4]  Harold Ossher,et al.  Multi-Dimensional Separation of Concerns and the Hyperspace Approach , 2002 .

[5]  Danny Weyns,et al.  Agents are not part of the problem, agents can solve the problem , 2004, OOPSLA 2004.

[6]  Robert E. Filman,et al.  Source-Code Instrumentation and Quantification of Events , 2002 .

[7]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

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

[9]  Lodewijk Bergmans,et al.  Declarative Aspect Composition , 2004 .

[10]  Rémi Douence,et al.  A model and a tool for Event-based Aspect-Oriented Programming (EAOP) , 2002 .

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

[12]  Ruzanna Chitchyan,et al.  Comparing Dynamic AO Systems. , 2004 .

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

[14]  Karl J. Lieberherr,et al.  Aspect-oriented programming with adaptive methods , 2001, CACM.