• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations

Observers and Assistants: A Proposal for Modular Aspect-Oriented Reasoning”, (2002)

by C Clifton, G Leavens
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 97
Next 10 →

Open Modules: Modular Reasoning about Advice

by Jonathan Aldrich , 2005
"... Advice is a mechanism used by advanced object-oriented and aspect-oriented programming languages to augment the behavior of methods in a program. Advice can help to make programs more modular by separating crosscutting concerns more e#ectively, but it also challenges existing ideas about modular ..."
Abstract - Cited by 171 (0 self) - Add to MetaCart
Advice is a mechanism used by advanced object-oriented and aspect-oriented programming languages to augment the behavior of methods in a program. Advice can help to make programs more modular by separating crosscutting concerns more e#ectively, but it also challenges existing ideas about modularity and separate development.
(Show Context)

Citation Context

...studied modular reasoning without the use of explicit module systems. For example, Clifton and Leavens propose engineering techniques that reduce dependencies between concerns in aspect-oriented code =-=[5]-=-. Other work has studied analyzing base code and advice separately using interfaces similar to those of Open Modules [14], and analyzing what advice might be affected by a change to code [13]. Our mod...

Aspect-oriented programming and modular reasoning

by Gregor Kiczales, Mira Mezini - ICSE ’05: PROCEEDINGS OF THE 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2005 , 2004
"... Aspects cut new interfaces through the primary decomposition of a system. This means that in the presence of aspects, the complete interface of a module can only be determined once the complete configuration of modules in the system is known. While this may seem anti-modular, it is an inherent prope ..."
Abstract - Cited by 153 (3 self) - Add to MetaCart
Aspects cut new interfaces through the primary decomposition of a system. This means that in the presence of aspects, the complete interface of a module can only be determined once the complete configuration of modules in the system is known. While this may seem anti-modular, it is an inherent property of crosscutting concerns, and using aspect-oriented programming serves to recover modular reasoning in the presence of such concerns.
(Show Context)

Citation Context

...s ofsthe lifecycle [16, 20, 34, 35].sWhile code written with AOP clearly seems modular, ansinteresting dialogue has been raised about the fullsimplications of AOP for modularity and modular reasonings=-=[1, 8, 9]-=-. This paper contributes an improved understandingsof interfaces in the presence of AOP to that dialogue. Wesintroduce the concept of aspect-aware interfaces, and showsthat a module’s aspect-aware int...

Harmless advice

by Daniel S. Dantas, David Walker - University of Pennsylvania, Computer and Information Science Department, Levine Hall , 2005
"... This paper defines an object-oriented language with harmless aspect-oriented advice. A piece of harmless advice is a computation that, like ordinary aspect-oriented advice, executes when control reaches a designated control-flow point. However, unlike ordinary advice, harmless advice is designed to ..."
Abstract - Cited by 84 (9 self) - Add to MetaCart
This paper defines an object-oriented language with harmless aspect-oriented advice. A piece of harmless advice is a computation that, like ordinary aspect-oriented advice, executes when control reaches a designated control-flow point. However, unlike ordinary advice, harmless advice is designed to obey a weak noninterference property. Harmless advice may change the termination behavior of computations and use I/O, but it does not otherwise influence the final result of the mainline code. The benefit of harmless advice is that it facilitates local reasoning about program behavior. More specifically, programmers may ignore harmless advice when reasoning about the partial correctness properties of their programs. In addition, programmers may add new pieces of harmless advice to pre-existing programs in typical “after-the-fact ” aspect-oriented style without fear they will break important data invariants used by the mainline code. In order to detect and enforce harmlessness, the paper defines a novel type and effect system related to information-flow type systems. The central technical result is that well-typed harmless advice does not interfere with the mainline computation. The paper also presents an implementation of the language and a case study using harmless advice to implement security policies. 1.

A Disciplined Approach to Aspect Composition”,

by Roberto Lopez-Herrejon , Don Batory , Christian Lengauer , 2006
"... Abstract Aspect-oriented programming is a promising paradigm that challenges traditional notions of program modularity. Despite its increasing acceptance, aspects have been documented to suffer limited reuse, hard to predict behavior, and difficult modular reasoning. We develop an algebraic model t ..."
Abstract - Cited by 83 (25 self) - Add to MetaCart
Abstract Aspect-oriented programming is a promising paradigm that challenges traditional notions of program modularity. Despite its increasing acceptance, aspects have been documented to suffer limited reuse, hard to predict behavior, and difficult modular reasoning. We develop an algebraic model that relates aspects to program transformations and uncovers aspect composition as a significant source of the problems mentioned. We propose an alternative model of composition that eliminates these problems, preserves the power of aspects, and lays an algebraic foundation on which to build and understand AOP tools.
(Show Context)

Citation Context

...s of the functional model can be enforced by a compiler, whereas adhering to the guidelines of McEachen and Alexander is the responsibility of programmers. Modular reasoning with AOP is controversial =-=[15]-=-[16][17]. Kiczales and Mezini claim that in the presence of aspects “the complete interface of a module can only be determined once the complete configuration of modules in the system is known” [26]. ...

A classification system and analysis for aspect-oriented programs

by Martin Rinard, Ru Sălcianu, Suhabe Bugrara - In Proc. 12th Symposium on the Foundations of Software Engineering , 2004
"... We present a new classification system for aspect-oriented programs. This system characterizes the interactions between aspects and methods and identifies classes of interactions that enable modular reasoning about the crosscut program. We argue that this system can help developers structure their u ..."
Abstract - Cited by 75 (2 self) - Add to MetaCart
We present a new classification system for aspect-oriented programs. This system characterizes the interactions between aspects and methods and identifies classes of interactions that enable modular reasoning about the crosscut program. We argue that this system can help developers structure their understanding of aspect-oriented programs and promotes their ability to reason productively about the consequences of crosscutting a program with a given aspect. We have designed and implemented a program analysis system that automatically classifies interactions between aspects and methods and have applied this analysis to a set of benchmark programs. We found that our analysis is able to 1) identify interactions with desirable properties (such as lack of interference), 2) identify potentially problematic interactions (such as interference caused by the aspect and the method both writing the same field), and 3) direct the developer’s attention to the causes of such interactions.
(Show Context)

Citation Context

... method and on indirect interactions that take place when advice and methods access the same object fields. The research most closely related to ours classifies aspects into spectators and assistants =-=[8]-=-. A spectator does not affect the control flow into or out of a crosscut method and writes only private data that is unavailable to crosscut methods. Spectators correspond to augmentation aspects in o...

The Paradoxical Success of Aspect-Oriented Programming

by Friedrich Steimann - ACM SIGPLAN NOTICES , 2006
"... Aspect-oriented programming is considered a promising new technology. As object-oriented programming did before, it is beginning to pervade all areas of software engineering. With its growing popularity, practitioners and academics alike are wonder-ing whether they should start looking into it, or o ..."
Abstract - Cited by 69 (3 self) - Add to MetaCart
Aspect-oriented programming is considered a promising new technology. As object-oriented programming did before, it is beginning to pervade all areas of software engineering. With its growing popularity, practitioners and academics alike are wonder-ing whether they should start looking into it, or otherwise risk having missed an important development. The author of this essay finds that much of aspect-oriented programming’s success seems to be based on the conception that it improves both modularity and the structure of code, while in fact, it works against the pri-mary purposes of the two, namely independent development and understandability of programs. Not seeing any way of fixing this situation, he thinks the success of aspect-oriented programming to be paradoxical.

Ptolemy: A Language with Quantified, Typed Events

by Hridesh Rajan, Gary T. Leavens , 2007
"... ..."
Abstract - Cited by 53 (18 self) - Add to MetaCart
Abstract not found

Pipa: A Behavioral Interface Specification Language for AspectJ

by Jianjun Zhao, Martin Rinard - of Lecture Notes in Computer Science , 2003
"... Pipa is a behavioral interface specification language (BISL) tailored to AspectJ, an aspect-oriented programming language. Pipa is a simple and practical extension to the Java Modeling Language (JML), a BISL for Java. Pipa uses the same basic approach as JML to specify AspectJ classes and interf ..."
Abstract - Cited by 40 (1 self) - Add to MetaCart
Pipa is a behavioral interface specification language (BISL) tailored to AspectJ, an aspect-oriented programming language. Pipa is a simple and practical extension to the Java Modeling Language (JML), a BISL for Java. Pipa uses the same basic approach as JML to specify AspectJ classes and interfaces, and extends JML, with just a few new constructs, to specify AspectJ aspects. Pipa also supports aspect specification inheritance and crosscutting. This paper discusses the goals and overall approach of Pipa. It also provides several examples of Pipa specifications and discusses how to transform an AspectJ program together with its Pipa specification into a corresponding Java program and JML specification. The goal is to facilitate the use of existing JML-based tools to verify AspectJ programs.
(Show Context)

Citation Context

...ast to the pre- and postcondition of a method, which are associated with method call and return, the pre- and postcondition of advice is defined in terms of the principle of control flow transferring =-=[5]-=-. This is because each piece of advice in AspectJ is automatically woven into the method(s) it advises by a compiler (called ajc) during the aspect weaving process. Advice thereforesexecutes in respon...

Open Modules: A Proposal for Modular Reasoning in Aspect-Oriented Programming

by Jonathan Aldrich - In Workshop on foundations of aspect-oriented languages , 2004
"... Aspect-oriented programming (AOP) is a new programming paradigm whose goal is to more cleanly modularize crosscutting concerns such as logging, synchronization, and event notification which would otherwise be scattered throughout the system and tangled with functional code. However, while AOP langua ..."
Abstract - Cited by 39 (3 self) - Add to MetaCart
Aspect-oriented programming (AOP) is a new programming paradigm whose goal is to more cleanly modularize crosscutting concerns such as logging, synchronization, and event notification which would otherwise be scattered throughout the system and tangled with functional code. However, while AOP languages provide promising ways to separate crosscutting concerns, they can also break conventional encapsulation mechanisms, making it di#cult to reason about code without the aid of external tools.
(Show Context)

Citation Context

...studied modular reasoning without the use of explicit module systems. For example, Clifton and Leavens propose engineering techniques that reduce dependencies between concerns in aspect-oriented code =-=[4]. -=-Our module system is based on that of standard ML [17]. TinyAspect’s sealing construct is similar to the freeze operator that is used to close a module to future extensions in module calculi such as...

Types and Modularity for Implicit Invocation with Implicit Announcement

by Friedrich Steimann, Thomas Pawlitzki, Sven Apel, Christian Kästner - ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY (TOSEM , 2009
"... Through implicit invocation, procedures are called without explicitly referencing them. Implicit announcement adds to this implicitness by not only keeping implicit which procedures are called, but also where or when — under implicit invocation with implicit announcement, the call site contains no s ..."
Abstract - Cited by 29 (4 self) - Add to MetaCart
Through implicit invocation, procedures are called without explicitly referencing them. Implicit announcement adds to this implicitness by not only keeping implicit which procedures are called, but also where or when — under implicit invocation with implicit announcement, the call site contains no signs of that, or what it calls. Recently, aspect-oriented programming has popularized implicit invocation with implicit announcement as a possibility to separate concerns that lead to interwoven code if conventional programming techniques are used. However, as has been noted elsewhere, as currently implemented it establishes strong implicit dependencies between components, hampering independent software development and evolution. To address this problem, we present a type-based modularization of implicit invocation with implicit announcement that is inspired by how interfaces and exceptions are realized in JAVA. By extending an existing compiler and by rewriting several programs to make use of our proposed language constructs, we found that the imposed declaration clutter tends to be moderate; in particular, we found that for general applications of implicit invocation with implicit announcement, fears that programs utilizing our form of modularization become unreasonably verbose are unjustified.
Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University