Tracing program actions back to the concerns that have caused them and blaming specific code artifacts for concern interference are known challenges of AOP and related advanced modularity paradigms. In this work, we a...
详细信息
ISBN:
(纸本)9783642369643;9783642369636
Tracing program actions back to the concerns that have caused them and blaming specific code artifacts for concern interference are known challenges of AOP and related advanced modularity paradigms. In this work, we address these challenges in the context of aspectLTL, a temporal-logic-based language for the specification and implementation of crosscutting concerns, which has a composition and synthesis-based weaving process whose output is a correct-by-construction executable artifact. When a specification is realizable, we provide two-way traceability information that links each allowed or forbidden transition in the generated program with the aspects that have justified its presence or elimination. When a specification is unrealizable, we provide an interactive game proof that demonstrates conflicts that should be fixed. The techniques are implemented and demonstrated using running examples.
aspect mining is a growing area of research investigating the effective ways of finding crosscutting concerns in existing non-aspectoriented software. Once found, these concerns can be refactored into aspects, which ...
详细信息
ISBN:
(纸本)9781479900534;9781479900527
aspect mining is a growing area of research investigating the effective ways of finding crosscutting concerns in existing non-aspectoriented software. Once found, these concerns can be refactored into aspects, which in turn, reduce the system's complexity and make it easier to understand, maintain, and evolve. There are numerous studies that have defined new aspect mining techniques and used case studies to validate their results. This paper analyzes the aspect mining literature, gives a consolidated list of the case studies used for aspect mining validation, discusses weaknesses and strengths of these techniques, and identifies the base research which used it for validation. Based on this analysis, we conclude that there is a critical lack of standard benchmarks for aspect mining. This makes it difficult for new research to evaluate their techniques' quality through empirical validation and to reliably compare their results against other research.
The aspectJ JML compiler (ajmlc) explores aspect-oriented programming (AOP) mechanisms to implement JML specifications, such as pre- and postconditions, and enforce them during runtime. This compiler was created to im...
详细信息
The aspectJ JML compiler (ajmlc) explores aspect-oriented programming (AOP) mechanisms to implement JML specifications, such as pre- and postconditions, and enforce them during runtime. This compiler was created to improve source-code modularity. Some experiments were conducted to evaluate the performance of the code generated through ajmlc. Results demonstrated that the strategy of adopting AOP to implement JML specifications is very promising. However, there is still a need for optimization of the generated code's bytecode size and running time. This paper presents a catalog of transformations which represent the optimizations implemented in the new optimized version of the ajmlc compiler. We employ such transformations to reduce the bytecode size and running time of the code generated through the ajmlc compiler. Aiming at demonstrating the impact of such transformation on the code quality, we conduct an empirical study using four applications in optimized and non-optimized versions generated by ajmlc. We show that our AOP transformations provide a significant improvement, regarding bytecode size and running time. (C) 2012 Elsevier B.V. All rights reserved.
Software testing is a key factor for ensuring software *** traditional process-oriented and object-oriented test technology has been quite mature,but test technology in aspectoriented is still in the primary *** to th...
详细信息
ISBN:
(纸本)9781467349970
Software testing is a key factor for ensuring software *** traditional process-oriented and object-oriented test technology has been quite mature,but test technology in aspectoriented is still in the primary *** to the unique characteristics of aspect-oriented Programs(AOP),the existing testing approaches for process-oriented program an d objectoriented program can't be applied directly to aspect-oriented program.S o researching an effective test method for As pectoriented Programs becomes very *** this paper a structural testing approach for AOP is presented.A BlockDefinition-Use-Control(BDUC) expression which can represent the control flow and data flow between each block is *** on the BDUC,three testing criteria are defined:two control flow criteria and one data flow *** approach is implemented by a tool called CDCT-AJ,which computes the control flow and data flow *** evaluation presents evidence of the effectiveness and feasibility of the proposed testing approach.
The development of computer systems is extremely complex due to real-time, distribution and dynamism requirements. For this reason, whatever the taken precautions, the occurrence of faults is sometimes unavoidable. In...
详细信息
ISBN:
(纸本)9780769550022
The development of computer systems is extremely complex due to real-time, distribution and dynamism requirements. For this reason, whatever the taken precautions, the occurrence of faults is sometimes unavoidable. In this context, we notice the need of techniques ensuring the dependability of real-time distributed dynamically reconfigurable systems. We focus on fault-tolerance, that means avoiding service failures in the presence of faults. In this paper, we have defined a development process for modeling and generating fault tolerance code using aspectorientedprogramming. First, we integrate fault tolerance elements since the modeling step of a system in order to take advantage of features of analysis, proof and verification possible at this stage using AADL and its annex Error Model Annex. Second, we extend an aspectoriented language and adapt it to respect real-time requirements. Finally, we define a code generation process for both functional preoccupations and cross-cutting ones like fault tolerance.
Several changes occurred in the aspectJ language to provide support for parametric polymorphism. Such changes aim to improve the source code type safety and to prepare the language to support generic code migration. C...
详细信息
Several changes occurred in the aspectJ language to provide support for parametric polymorphism. Such changes aim to improve the source code type safety and to prepare the language to support generic code migration. Current approaches for this kind of migration focus only on object-oriented code. Therefore, they do not consider the use of aspects to encapsulate crosscutting concerns. We propose a collection of type constraint rules for the polymorphic version of aspectJ. These rules are used together with an existing constraint based algorithm to enable the conversion of non-generic code to add actual type parameters in both Java and aspectJ languages. (C) 2012 Elsevier B.V. All rights reserved.
Refactoring is necessary in large software projects and an aspect-oriented approach can help to maintain concerns in the source code. While tools for object-oriented refactoring are the usual part of development envir...
详细信息
ISBN:
(纸本)9781479901944;9781479901975
Refactoring is necessary in large software projects and an aspect-oriented approach can help to maintain concerns in the source code. While tools for object-oriented refactoring are the usual part of development environments, support for aspect-oriented refactoring is minimal. We analyzed object-oriented bad smells applicable for an aspect-oriented approach and propose a method for the detection of crosscutting concerns and consecutive refactoring.
Code scattering and code tangling affect software development in many ways, including poor traceability of requirements, low productivity, poor overall quality and increased efforts for software maintenance. One propo...
详细信息
ISBN:
(纸本)9780769549675
Code scattering and code tangling affect software development in many ways, including poor traceability of requirements, low productivity, poor overall quality and increased efforts for software maintenance. One proposed solution to solve these issues is to use a specific software construction known as aspect. aspect-oriented programming (AOP) has been widely studied since its introduction with the promise of improving modularization by addressing crosscutting concerns. Few studies on empirical evaluation of the benefits of aspect-oriented paradigm were published. Results presented in these studies are frequently subjective, and some studies are non-conclusive. In addition, these studies are based on the implementation of only one or two crosscutting concerns into aspects, and the evaluation is based on few software metrics. In this article, the evaluation of AOP implementation through software metrics is proposed. The main idea is to implement crosscutting concerns as aspects, with focus on those that were not given properly attention in the literature. Two softwares were used as case studies.
In Software Product Lines (SPL), we can bind reusable features to compose a product at different times, which in general are static or dynamic. The former allows customizability without any overhead at runtime. On the...
详细信息
ISBN:
(纸本)9781479925315
In Software Product Lines (SPL), we can bind reusable features to compose a product at different times, which in general are static or dynamic. The former allows customizability without any overhead at runtime. On the other hand, the latter allows feature activation or deactivation while running the application with the cost of performance and memory consumption. To implement features, we might use aspect-oriented programming (AOP), in which aspects enable a clear separation between base code and variable code. In this context, recent work provides aspectJ-based idioms to implement flexible feature binding. However, we identified some design deficiencies. Thus, to solve the issues of these idioms, we incrementally create three new aspectJ-based idioms. Moreover, to evaluate our new idioms, we quantitatively analyze them with respect to code cloning, scattering, tangling, and size by means of software metrics. Besides that, we qualitatively discuss our new idioms in terms of code reusability, changeability, and instrumentation overhead.
This paper proposes a novel hardware compilation approach targeting dataflow designs. This approach is based on aspect-oriented programming to decouple design development from design optimisation, thus improving porta...
详细信息
ISBN:
(纸本)9781479904945;9781479904938
This paper proposes a novel hardware compilation approach targeting dataflow designs. This approach is based on aspect-oriented programming to decouple design development from design optimisation, thus improving portability and developer productivity while enabling automated exploration of design trade-offs to enhance performance. We introduce FAST, a language for specifying dataflow designs that supports our approach. Optimisation strategies for the generated designs are specified in FAST, making use of facilities in the domain-specific aspect-oriented language, LARA. Our approach is demonstrated by implementing various seismic imaging designs for Reverse-Time Migration (RTM), which have performance comparable to state-of-the-art FPGA implementations while being produced with improved developer productivity.
暂无评论