Results 1 -
3 of
3
A Definition, Overview and Taxonomy of Generic Aspect Languages
- L’Objet
, 2006
"... ABSTRACT. Aspect-orientation promises better modularity than pure object-oriented decomposition. A typical benefit of increased modularity is ease of maintenance, evolution and reuse. However, it has been noted by various researchers that many of the first generation aspect languages do not provide ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
ABSTRACT. Aspect-orientation promises better modularity than pure object-oriented decomposition. A typical benefit of increased modularity is ease of maintenance, evolution and reuse. However, it has been noted by various researchers that many of the first generation aspect languages do not provide the degree of reusability initially hoped for. In this paper, we argue that the problem of insufficient reusability is due to a lack of support for aspect genericity. We analyze various problems of traditional aspect languages and define aspect genericity to be the ability to concisely express aspect effects that vary depending on the context of a join point known at weave-time, without falling back to runtime reflection. We identify the ability to parameterize aspect effects with meta-variables ranging over base language elements as the technical prerequisite for achieving genericity and describe the design space for generic aspect languages in terms of five basic questions that a language designer should consider. Within this space we review the different proposals for generic aspect languages made so far and compare them by showing which part of the possible design space is explored within these languages. Among the reviewed design options we identify predicate-based binding of logic metavariables, uniform genericity and fine-grained genericity as optimal answers to three of the discussed questions. Last but not least, we identify open research problems that are specific to aspect genericity or aggravated in the presence of genericity. We expect that genericity will be a key ingredient of a second generation of aspect languages. It will significantly reduce the dependency of aspects on base programs and will automatically select behavior depending on the weave-time context of a join point in the same way as dynamic binding does depending on the type of a message receiver.
Statement annotations for fine-grained advising
- In ECOOP Workshop on Reflection, AOP, and Meta-Data for Software Evolution
, 2006
"... AspectJ-like languages are currently ineffective at modularizing heterogeneous concerns that are tightly coupled to the source code of the base program, such as logging, invariants, error handling, and optimization. This leads to complicated and fragile pointcuts and large numbers of highly-repetiti ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
AspectJ-like languages are currently ineffective at modularizing heterogeneous concerns that are tightly coupled to the source code of the base program, such as logging, invariants, error handling, and optimization. This leads to complicated and fragile pointcuts and large numbers of highly-repetitive and incomprehensible aspects. We propose statement annotations as a robust mechanism for exposing the join points needed by heterogeneous concerns and for enabling declarative fine-grained advising. We propose an extension to Java to support statement annotations and AspectJ’s pointcut language to match them. This allows us to implement heterogeneous concerns using a combination of simple and robust aspects and explicit and local annotations. We illustrate this using a logging aspect that logs messages at specific locations in the source code. Statement annotations also simplify advising specific object instances, local variables, and statements. We demonstrate this using an aspect that traces method calls made to specific object instances and calls made from specific call sites. Keywords statement annotations, byte code annotations, fragile pointcut problem, logging problem, statement-level join points, instance-local advising 1.
An Approach to Test Aspect-oriented Programs
"... Abstract — Software testing is a perennial problem, consequently it scores scant attention. An inclusion to testing challenges is aspect-oriented paradigm, which has a dichotomy of core and crosscutting concerns. Since emergent behavior of the aspects during their interaction with objects, and inter ..."
Abstract
- Add to MetaCart
Abstract — Software testing is a perennial problem, consequently it scores scant attention. An inclusion to testing challenges is aspect-oriented paradigm, which has a dichotomy of core and crosscutting concerns. Since emergent behavior of the aspects during their interaction with objects, and inter dependencies not only incurring challenges for testing, but also alludes to creation of innovative testing techniques. Several faults are introduced by aspects. In this paper, we have surveyed all the existing testing techniques including static verification techniques for aspect-oriented programs. These factors appeal us to devise a comprehensive testing framework to meet obliviousness of harmful aspects. Various approaches are lacking in automation or either can’t deal with testing of large programs. This paper suggests the need of regression testing by analyzing the prevailing testing techniques for aspect-oriented programs, and investigates efficacy of regression testing. The paper proposes an architecture of a framework (Aspect Driven Regression Testing framework) ADRT, and underlying details for testing of aspect based application, and a tool, (Objects-Aspects Regression Analysis) OARA for automation of testing process for aspect-oriented programs. Index Terms—Aspect-oriented programs, regression testing, test case generation, regression faults I.

