Results 1 - 10
of
159
Harmless advice
- 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
(Show Context)
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.
Evaluating Support for Features in Advanced Modularization Technologies
- In ECOOP
, 2005
"... Abstract. A software product-line is a family of related programs. Each program is defined by a unique combination of features, where a feature is an increment in program functionality. Modularizing features is difficult, as feature-specific code often cuts across class boundaries. New modularizatio ..."
Abstract
-
Cited by 72 (12 self)
- Add to MetaCart
(Show Context)
Abstract. A software product-line is a family of related programs. Each program is defined by a unique combination of features, where a feature is an increment in program functionality. Modularizing features is difficult, as feature-specific code often cuts across class boundaries. New modularization technologies have been proposed in recent years, but their support for feature modules has not been thoroughly examined. In this paper, we propose a variant of the expression problem as a canonical problem in product-line design. The problem reveals a set of technology-independent properties that feature modules should exhibit. We use these properties to evaluate five technologies: model of feature composition that is technology-independent and that relates compositional reasoning with algebraic reasoning 1. 1
Explicitly distributed AOP using AWED
, 2006
"... Distribution-related concerns, such as data replication, often crosscut the business code of a distributed application. Currently such crosscutting concerns are frequently realized on top of distributed frameworks, such as EJBs, and initial AO support for the modularization of such crosscutting conc ..."
Abstract
-
Cited by 46 (9 self)
- Add to MetaCart
Distribution-related concerns, such as data replication, often crosscut the business code of a distributed application. Currently such crosscutting concerns are frequently realized on top of distributed frameworks, such as EJBs, and initial AO support for the modularization of such crosscutting concerns, e.g., JBoss AOP and Spring AOP, has been proposed. Based on an investigation of the implementation of replicated caches using JBoss Cache, we motivate that crosscutting concerns of distributed applications benefit from an aspect language for explicit distributed programming. We propose AWED, a new aspect language with explicit distributed programming mechanisms, which provides three contributions. First, remote pointcut constructors which are more general than those of previous related approaches, in particular, supporting remote sequences. Second, a notion of distributed advice with support for asynchronous and synchronous execution. Third, a notion of distributed aspects including models for the deployment, instantiation and state sharing of aspects. We show several concrete examples how AWED can be used to modularly implement and extend replicated cache implementations. Finally, we present a prototype implementation of AWED, which we have realized by extending JAsCo, a system providing dynamic aspects for Java.
Trace-based aspects
- In Aspect-oriented Software Development
, 2004
"... Aspect-Oriented Programming (AOP) promises the modularization of so-called crosscutting functionalities in large applications. Currently, almost all approaches to AOP provide means for the description of sequential aspects that are to be applied to a sequential base program. In particular, there is ..."
Abstract
-
Cited by 43 (3 self)
- Add to MetaCart
(Show Context)
Aspect-Oriented Programming (AOP) promises the modularization of so-called crosscutting functionalities in large applications. Currently, almost all approaches to AOP provide means for the description of sequential aspects that are to be applied to a sequential base program. In particular, there is no formally-defined concurrent approach to AOP, with the result that coordination issues between aspects and base programs as well as between aspects cannot precisely be investigated. This paper presents Concurrent Event-based AOP (CEAOP), which addresses this issue. Our contribution can be detailed as follows. First, we formally define a model for concurrent aspects which extends the sequential Event-based AOP approach. The definition is given as a translation into concurrent specifications using Finite Sequential Processes (FSP), thus enabling use of the Labelled Transition System Analyzer (LTSA) for formal property verification. Further, we show how to compose concurrent aspects using a set of general composition operators. Finally, we sketch a Java prototype implementation for concurrent aspects, which generates coordination specific code from the FSP model
PolyAML: A polymorphic aspect-oriented functional programming language (Extended Version)
, 2005
"... ..."
(Show Context)
Expressing different conceptual models of join point selections in aspect-oriented design
- In Proc. of the 5th Int. Conf. on Aspect-Oriented Software Development (AOSD
, 2006
"... When specifying pointcuts, i.e. join point selections, in Aspect-Oriented Software Development, developers have in different situations different conceptual models in mind. Aspect-oriented programming languages are usually capable to support only a small subset of them, but not all. In order to comm ..."
Abstract
-
Cited by 33 (4 self)
- Add to MetaCart
When specifying pointcuts, i.e. join point selections, in Aspect-Oriented Software Development, developers have in different situations different conceptual models in mind. Aspect-oriented programming languages are usually capable to support only a small subset of them, but not all. In order to communicate aspect-oriented design among developers, though, it is inevitable that the underlying conceptual model used in its join point selections remains unchanged. As a solution to this dilemma, we detail three different conceptual models in this paper that are frequently used in aspect-oriented applications. These models are illustrated using sample implementations from existing literature. Then, we introduce corresponding modeling notations based on Join Point Designation Diagrams (JPDDs) which are capable to express join point selections complying to those models. Finally, we discuss the suitability of these notations to express a desired join point selection.
Stateful Aspects in JAsCo
, 2005
"... Aspects that trigger on a sequence of join points instead of on a single join point are not explicitly supported in current Aspect-Oriented approaches. Explicit protocols are however frequently employed in Component-Based Software Development and business processes and are as such valid targets for ..."
Abstract
-
Cited by 25 (4 self)
- Add to MetaCart
Aspects that trigger on a sequence of join points instead of on a single join point are not explicitly supported in current Aspect-Oriented approaches. Explicit protocols are however frequently employed in Component-Based Software Development and business processes and are as such valid targets for aspect application. In this paper, we pro-pose an extension of the JAsCo aspect-oriented programming language for declaratively specifying a protocol fragment. The proposed pointcut language is equivalent to a finite state machine. Advices can be attached to every transition specified in the pointcut protocol. Furthermore, the complement of a protocol can also be used for triggering aspects. The JAsCo tools support the stateful aspects language and implement it very efficiently by employing the JAsCo run-time weaver. As a validation of the approach, we present a case study in the context of reaction busi-ness rules.
Expressive Scoping of Dynamically-Deployed Aspects
, 2008
"... Several aspect languages and frameworks have recognized the need for dynamic deployment of aspects. However, they do not provide sufficiently expressive means to precisely specify the scope of deployed aspects. As a result, programmers have to resort to unnecessarily complex pointcut definitions tha ..."
Abstract
-
Cited by 24 (5 self)
- Add to MetaCart
Several aspect languages and frameworks have recognized the need for dynamic deployment of aspects. However, they do not provide sufficiently expressive means to precisely specify the scope of deployed aspects. As a result, programmers have to resort to unnecessarily complex pointcut definitions that hinder the reuse potential of aspects. To address the issue of precise and expressive scoping of aspects at deployment time, we propose deployment strategies for parameterized dynamic aspect deployment. This novel mechanism gives full control over the propagation of the aspect on the call stack and within created objects or functions, and permits a deployment-specific refinement of its pointcuts. We discuss and illustrate the gain in expressiveness, and provide the operational semantics of deployment strategies with Scheme interpreters, for both functional and object-oriented based aspect languages.
A Type-theoretic Interpretation of Pointcuts and Advice
, 2005
"... This article defines the semantics of MinAML, an idealized aspectoriented programming language, by giving a type-directed translation from a user-friendly external language to a compact, well-defined core language. We argue that our framework is an e#ective way to give semantics to aspect-orient ..."
Abstract
-
Cited by 23 (3 self)
- Add to MetaCart
This article defines the semantics of MinAML, an idealized aspectoriented programming language, by giving a type-directed translation from a user-friendly external language to a compact, well-defined core language. We argue that our framework is an e#ective way to give semantics to aspect-oriented programming languages in general because the translation eliminates shallow syntactic di#erences between related constructs and permits definition of an elegant and extensible core language.
Reasoning about Semantic Conflicts between Aspects
- In EIWAS ’05: The 2nd European Interactive Workshop on Aspects in Software
, 2006
"... Abstract. Aspects have been successfully promoted as a means to improve the modularization of software in the presence of crosscutting concerns. The socalled aspect interference problem is considered to be one of the remaining challenges of aspect-oriented software development: when multiple aspects ..."
Abstract
-
Cited by 23 (3 self)
- Add to MetaCart
(Show Context)
Abstract. Aspects have been successfully promoted as a means to improve the modularization of software in the presence of crosscutting concerns. The socalled aspect interference problem is considered to be one of the remaining challenges of aspect-oriented software development: when multiple aspects share the same join point, undesired behavior may emerge. Such behavior is not necessarily caused by a wrong implementation of the individual aspects, but may be the result of composition of the independently programmed aspects at the shared join point. This paper presents a language-independent technique to detect semantic conflicts among aspects that are superimposed on the same join point. 1