A brief tour of join point interfaces
|
||||||||||||||||||||||||||
ABSTRACTIn standard AspectJ, aspects and base code are often insufficiently decoupled, as aspects hold pointcuts, which can contain explicit textual references to base code. This hinders aspect evolution and reuse, and may hinder reasoning about aspects on the base-code side. In this demo we present join point interfaces as an extension to the aspect-oriented programming language AspectJ. Opposed to AspectJ, with join point interfaces aspects and base code communicate only through a shared interface abstraction. Aspects themselves go without pointcuts and only reference the interface. Pointcuts are typically defined on the base-code side, or not at all, as join point interfaces also support pure explicit invocation as known from publish-subscribe systems. As a result, users obtain a language which decouples aspects from base code using a modular type-checking algorithm, and which they can use to adopt aspects gradually as they desire.
One major undertaking in the design of join point interfaces was to make the language as flexible to use as standard AspectJ, while nevertheless providing interfaces supported by strong type checks that can completely avoid type errors at composition time. In this demo we will discuss this inherent trade-off, we will present JPIs as an extension to the AspectBench Compiler, and will show how the language eases the maintenance of existing AspectJ applications.
AUTHORS
|
|
|||||||||||||||||||||||||||||||||||||||
| View colleagues of Eric Bodden | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Eric Tanter | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Milton Inostroza | |||||||||||||||||||||||||||||||||||||||||
REFERENCESNote: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
|
2
|
Eric Bodden, Éric Tanter, and Milton Inostroza. Join point interfaces for safe and flexible decoupling of aspects. ACM Transactions on Software Engineering and Methodology (TOSEM), 2013. To appear.
|
|
| |
3
|
|
| |
4
|
|
|
5
|
||
| |
6
|
|
|
7
|
CITED BY
INDEX TERMSThe ACM Computing Classification System (CCS rev.2012)
PUBLICATION| Title | AOSD '13 Companion Proceedings of the 12th annual international conference companion on Aspect-oriented software development table of contents | ||||||||||||||||||||||||||||||||||||||||||||||
| General Chairs | Hidehiko Masuhara The University of Tokyo, Japan | ||||||||||||||||||||||||||||||||||||||||||||||
| Program Chairs | Shigeru Chiba The University of Tokyo, Japan | ||||||||||||||||||||||||||||||||||||||||||||||
| Naoyasu Ubayashi Kyushu University, Japan | |||||||||||||||||||||||||||||||||||||||||||||||
| Pages | 19-22 | ||||||||||||||||||||||||||||||||||||||||||||||
| Publication Date | 2013-03-24 (yyyy-mm-dd) | ||||||||||||||||||||||||||||||||||||||||||||||
| Sponsors | AOSA Aspect-Oriented Software Association | ||||||||||||||||||||||||||||||||||||||||||||||
| In-Cooperations | SIGPLAN ACM Special Interest Group on Programming Languages | ||||||||||||||||||||||||||||||||||||||||||||||
| SIGSOFT ACM Special Interest Group on Software Engineering | |||||||||||||||||||||||||||||||||||||||||||||||
| Publisher | ACM New York, NY, USA ©2013 | ||||||||||||||||||||||||||||||||||||||||||||||
| ISBN: 978-1-4503-1873-0 doi>10.1145/2457392.2457401 | |||||||||||||||||||||||||||||||||||||||||||||||
| Conference |
MODULARITYModularity (formerly known as Aspect-oriented Software Development - AOSD)
|
||||||||||||||||||||||||||||||||||||||||||||||
| Overall Acceptance Rate 178 of 718 submissions, 25% | |||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||
REVIEWS
COMMENTSBe the first to comment To Post a comment please sign in or create a free Web account
Table of Contents| SESSION: Keynote address 2 | ||
| Modularity in the context of product line variability | ||
| Kyo Chul Kang | ||
| Pages: 3-4 | ||
| doi>10.1145/2457392.2457394 | ||
Full text: PDF
|
||
|
Product line software engineering (PLSE) has been recognized as a key software development paradigm for meeting diverse needs of the global market efficiently and effectively giving competitive advantages to IT industries and embedded systems developers. ...
expand
|
||
| SESSION: Keynote address 3 | ||
| Motherhood and apple pie: modularity in modern applications and tools to support it | ||
| Steven P. Reiss | ||
| Pages: 5-6 | ||
| doi>10.1145/2457392.2457396 | ||
Full text: PDF
|
||
|
Modularity has been around for a long time. Good designers attempt to make use of it as much as possible. Languages have been developed to support it. Language extensions have attempted to deal with the situations where languages themselves fail. Tools ...
expand
|
||
| DEMONSTRATION SESSION: Demos | ||
| Efficient language implementation with ALIA4J and EMFText: forum demonstration | ||
| Christoph Bockisch, Andreas Sewe | ||
| Pages: 7-10 | ||
| doi>10.1145/2457392.2457398 | ||
Full text: PDF
|
||
|
Developing extensions to general-purpose langauges or domain-specific languages with support for new kinds of abstractions is an ongoing trend. Modern language workbenches, such as EMFText of Xtext, support this trend and facilitate implementing langauges ...
expand
|
||
| Method differentiator using slice-based cohesion metrics | ||
| Akira Goto, Norihiro Yoshida, Masakazu Ioka, Eunjong Choi, Katsuro Inoue | ||
| Pages: 11-14 | ||
| doi>10.1145/2457392.2457399 | ||
Full text: PDF
|
||
|
It is important to understand semantic differences between a pair of Java methods during maintenance. However, textual or syntactic difference is insufficient to give clear idea which code fragment realizes a single functionality in Java methods. In ...
expand
|
||
| ENdoSnipe: an industrial application of AOP for diagnosing Java systems | ||
| Yusuke Ochiai | ||
| Pages: 15-18 | ||
| doi>10.1145/2457392.2457400 | ||
Full text: PDF
|
||
|
In this session, we introduce an application of Javassist technology for commercial purposes. The Java troubleshooting tool "ENdoSnipe", developed by Acroquest Technology, realizes noninvasive diagnosis looking into the internal behavior of the applied ...
expand
|
||
| A brief tour of join point interfaces | ||
| Eric Bodden, Eric Tanter, Milton Inostroza | ||
| Pages: 19-22 | ||
| doi>10.1145/2457392.2457401 | ||
Full text: PDF
|
||
|
In standard AspectJ, aspects and base code are often insufficiently decoupled, as aspects hold pointcuts, which can contain explicit textual references to base code. This hinders aspect evolution and reuse, and may hinder reasoning about aspects on the ...
expand
|
||
| Reusing software design models with TouchRAM | ||
| Jörg Kienzle | ||
| Pages: 23-26 | ||
| doi>10.1145/2457392.2457402 | ||
Full text: PDF
|
||
|
TouchRAM is a multitouch-enabled tool for agile software design modelling aimed at developing scalable and reusable software design models. This paper briefly summarizes the main features of the Reusable Aspect Models modelling approach that TouchRAM ...
expand
|
||
| SESSION: Student research competition | ||
| Towards control of aspect interference using membranes and monads | ||
| Ismael Figueroa | ||
| Pages: 27-28 | ||
| doi>10.1145/2457392.2457404 | ||
Full text: PDF
|
||
| A graphical tool for observing state and behavioral changes at join points | ||
| Haihan Yin | ||
| Pages: 29-30 | ||
| doi>10.1145/2457392.2457405 | ||
Full text: PDF
|
||
|
To comprehend programs or to fix a bug, programmers always mentally simulate the program execution by reading the source code. Aspect-oriented programming (AOP) increases this mental effort, because it can alter the state and the behavior of the base ...
expand
|
||
| Comparison of instrumentation techniques for dynamic program analysis on the Java virtual machine | ||
| Aibek Sarimbekov | ||
| Pages: 31-32 | ||
| doi>10.1145/2457392.2457406 | ||
Full text: PDF
|
||
|
Dynamic Program Analysis (DPA) tools commonly rely on bytecode instrumentation which is done by means of low-level bytecode manipulation libraries. While providing a lot of flexibility and expressiveness to developers, using those libraries is usually ...
expand
|
||
| User-friendly event and aspect verification | ||
| Cynthia Disenfeld | ||
| Pages: 33-34 | ||
| doi>10.1145/2457392.2457407 | ||
Full text: PDF
|
||
| A framework for analyzing and transforming source code supporting multiple programming languages | ||
| Kazunori Sakamoto | ||
| Pages: 35-36 | ||
| doi>10.1145/2457392.2457408 | ||
Full text: PDF
|
||
|
We propose a framework for processing source code supporting multiple programming languages, named UNICOEN. UNICOEN reduces development costs and differences between tool implementations. We evaluated UNICOEN by developing a tool which supports 7 programming ...
expand
|
||
| Modular construction of an analysis tool for mining software repositories | ||
| Kazuhiro Yamashita | ||
| Pages: 37-38 | ||
| doi>10.1145/2457392.2457409 | ||
Full text: PDF
|
||
|
In this paper, we propose an analysis tool for mining software repository (MSR) called E-CUBE, which corresponds to three types of evolution in MSR (i.e., Platform Evolution, Target Evolution and Scale Evolution). To encapsulate the essence of these ...
expand
|
||
| Method shells: controlling a scope of destructive class extensions by context switches | ||
| Wakana Takeshita | ||
| Pages: 39-40 | ||
| doi>10.1145/2457392.2457410 | ||
Full text: PDF
|
||
|
We propose Method Shells, which is a module system for switching a set of destructive class extensions at runtime. Destructive class extensions are getting popular and supported by a number of languages. By using destructive class extensions, ...
expand
|
||
| Powerful and seamless syntax extensions on a statically typed language | ||
| Kazuhiro Ichikawa | ||
| Pages: 41-42 | ||
| doi>10.1145/2457392.2457411 | ||
Full text: PDF
|
||
|
In this paper, we propose a mechanism of user-defined operators with better expressiveness while keeping composability. Our user-defined operators, named protean operators, can express arbitrary Parsing Expression Grammar (PEG) syntax, and they can also ...
expand
|
||
| Rewriting javascript module system | ||
| Junhee Cho | ||
| Pages: 43-44 | ||
| doi>10.1145/2457392.2457412 | ||
Full text: PDF
|
||
|
Although JavaScript is one of the major languages used for web and other general applications, it does not have a language-level module system. Lack of module system causes name conflicts when programmer uses libraries. We introduce a JavaScript module ...
expand
|
||