The goal of this paper is to model and detect composition conflicts related to introductions. Within this context, we identify several categories of composition conflicts. To analyze the causes of these conflicts precisely, we first model the structure of programs as graphs. Next, we model introductions as graph transformation rules. We define explicit rules to describe when composition conflicts related to introductions occur. We built a prototype tool that detects and visualizes the occurrence of such conflicts in AspectJ programs, making use of an existing graph analysis and rewriting tool. The graph-based models are generated automatically from the source code of Java programs and AspectJ introductions. However, our approach does not make strong assumptions about either the aspect or base language; it has been designed to be applicable to other AOP languages.
AOP languages are continuously evolving, for example (1) pointcut languages are becoming increasingly powerful with respect to the expressiveness of the pointcut language itself, (2) new program properties can be used as a selection criterion in pointcut designators, or (3) new types of program elements can be introduced by means of a crosscut specification. In this paper we investigate the consequences of these trends. To this end, we focus particularly on the usage of meta-data annotations: several recent (versions of) AOP languages support the use of annotations as a selection criterion in pointcut designators, and/or support the introduction of annotations. We investigate the introduction of annotations through the use of expressive pointcut languages; explain why introduction of annotations is useful, and in particular, why and how annotations can be derived from other annotations.We explore the issues that arise due to the inter-dependencies between annotation introductions. We investigate when such dependencies may cause ambiguities, and we present an algorithm that resolves the dependencies when possible, and detects ambiguous cases that cannot be resolved. The solution we propose is implemented within the Compose* tool, which supports the introduction of meta-data annotations.
Abstract. Aspect Oriented Modeling (AOM) techniques facilitate separate modeling of concerns and allow for a more flexible composition of these than traditional modeling technique. While this improves the understandability of each submodel, in order to reason about the behavior of the composed system and to detect conflicts among submodels, automated tool support is required. Current techniques for conflict detection among aspects generally have at least one of the following weaknesses. They require to manually model the abstract semantics for each system; or they derive the system semantics from code assuming one specific aspect-oriented language. Defining an extra semantics model for verification bears the risk of inconsistencies between the actual and the verified design; verifying only at implementation level hinders fixing errors in earlier phases. We propose a technique for fully automatic detection of conflicts between aspects at the model level; more specifically, our approach works on UML models with an extension for modeling pointcuts and advice. As back-end we use a graph-based model checker, for which we have defined an operational semantics of UML diagrams, pointcuts and advice. In order to simulate the system, we automatically derive a graph model from the diagrams. The result is another graph, which represents all possible program executions, and which can be verified against a declarative specification of invariants. To demonstrate our approach, we discuss a UML-based AOM model of the "Crisis Management System" and a possible design and evolution scenario. The complexity of the system makes conflicts among composed aspects hard to detect: already in the case of two simulated aspects, the state space contains 623 different states and 9 different execution paths. Nevertheless, in case the right pruning methods are used, the state-space only grows linearly with the number of aspects; therefore, the automatic analysis scales.
Domain specific aspect languages (DSALs) are becoming more popular because they can be designed to represent recurring concerns in a way that is optimized for a specific domain. However, the design and implementation of even a limited domain-specific aspect language can be a tedious job. To address this, we propose a framework that offers a fast way to prototype implementations of domain specific aspect languages. A particular goal of the framework is to be general enough to support a wide range of aspect language concepts, such that existing language concepts can be easily used, and new language concepts can be quickly created. We briefly introduce the framework and its underlying model, as well as the workflow used when implementing DSALs. Subsequently, we show mappings of several domain specific aspect languages to demonstrate the framework. Since in our approach the DSALs are mapped to a common model, the framework provides an integrating platform allowing us to compose programs that use aspects written in multiple DSALs. The framework also provides explicit mechanisms to specify composition of advices written in multiple DSALs.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.