Dynamically Evolvable Composition of Aspects Based On Relation Model

Abstract . Current aspect-oriented programming (AOP) enhances maintainability and comprehensibility by modu-larizing concerns crosscutting multiple components but lacks the support for the hierarchical composition of aspects themselves. On the contrary, black box composi-tion provides simple and safe modularization for its strong information hiding, which is, however, the main obstacle for a black box composite to be used in AOP. In this article, a new composition based on representational abstraction of relationship between component instances will be introduced. The model provides the hooks where an aspect can evolve and they support the merge of parallel developed aspects in the black box manner. 1. Introduction AOP [2, 3, 4] is one of the most promising programm-ing paradigms for post object-oriented programming. Aspect in AOP is to isolate and encapsulate the concern crosscutting software components which are modularized with a conventional software composition technique such as object-orientation. The common basic elements required in AOP techniques are the join point and advice. The join point is a hook of a program construct at which advices of a crosscutting concern is attached and the advice is a specified behaviour pertinent to the concern. Current AOPs like AspectJ and Hyper/J introduce aspects composed with those elements to a base application at compile time or run time. To achieve this flexibility, they, however, lose valuable modular mechanisms such as encapsulation and external composition and compromise the ability to compile or reason about a modular unit separately [4]. The other shortcoming of current AOP techniques is that they cannot selectively apply aspects at the instance level. On the contrary, the black box composition technique attracts much focus and emphasis for the sake of its safe and dynamic modularization in component based software development (CBSD) [1]. Black box composition limits the knowledge of the components available to software composers to their functionalities expressed in terms of a set of interfaces, through which the components are composed into a composite. This information hiding provided by black box techniques, however, limits the evolution of the composition and the deployments of new aspects to the component, especially when the composite is considered as a composable black box. At best, the boundary of a new aspect is limited only to the interface of the composite. In this paper, we introduce a new approach to black box composition focusing on the relationship between the component instances, a kind of knowledge relevant to composition. The relation model we proposed abstracts, and encapsulates the relationship between component instances in a black box composite and the relationship abstraction becomes the hook to which the composition can evolve at the instance level with the application of new concerns crosscutting related component instances. Thus, our relation model provides the modularization of black box composition and the flexibility of AOP. Besides, it is robust to the change of relationship between components to some degree. The consequent model is expressed in the declarative forms based on logic predicates. In the following section, the researches which became backgrounds of our work will be introduced and com-pared concisely. Then, our relation model and elements constructing it will be presented. Examples showing the flexibility of our relation model will follow in the subsequent section. Brief discussion including imple-mentation issues and conclusion will follow.