This paper aims at investigating empirically the effect of aspect-oriented (AO) refactoring on the unit testability of classes in object-oriented software. The unit testability of classes has been addressed from the p...
详细信息
This paper aims at investigating empirically the effect of aspect-oriented (AO) refactoring on the unit testability of classes in object-oriented software. The unit testability of classes has been addressed from the perspective of the unit testing effort, and particularly from the perspective of the unit test cases (TCs) construction. We investigated, in fact, different research questions: (1) the impact of AO refactoring on source code attributes (size, complexity, coupling, cohesion and inheritance), attributes that are mostly related to the unit testability of classes, (2) the impact of AO refactoring on unit test code attributes (size, assertions, invocations and data creation), attributes that are indicators of the effort involved to write the code of unit TCs, and (3) the relationships between the variations observed after AO refactoring in both source code and unit test code attributes. We used in the study different techniques: correlation analysis, statistical tests and linear regression. We performed an empirical evaluation using data collected from three well-known open source (Java) software systems (JHOTDRAW, HSQLBD and PETSTORE) that have been refactored using AO programming (aspectJ). Results suggest that: (1) overall, the effort involved in the construction of unit TCs of refactored classes has been reduced, (2) the variations of source code attributes have more impact on methods invocation between unit TCs, and finally (3) the variations of unit test code attributes are more influenced by the variation of the complexity of refactored classes compared to the other class attributes.
refactoring improves software quality by improving the design of existing code through changing its internal structure while preserving its behavior. A number of refactorings were proposed specifically for aspect-Orie...
详细信息
ISBN:
(纸本)9783642222023
refactoring improves software quality by improving the design of existing code through changing its internal structure while preserving its behavior. A number of refactorings were proposed specifically for aspect-oriented (AO) systems. AO techniques are emerging to cope with the challenges of current software development and to address shortcomings of existing paradigms. Each of the proposed aspect-oriented refactorings (AOR) has a particular purpose and effect, thus their effect on software quality attribute may vary. The software maintenance activities cost lots of time and effort to be performed. In this paper, we propose a classification of AOR based on their measurable effect on software maintainability. The aim of the classification is to help the software designer and developer decide which AOR can be applied to optimize AO system with respect to maintainability.
The paper is a summary of already published results on the aspect. NET project, our aspect-oriented programming toolkit for the. NET platform. The latest of our results up to now have been only discovered in Russian j...
详细信息
ISBN:
(纸本)9780735412873
The paper is a summary of already published results on the aspect. NET project, our aspect-oriented programming toolkit for the. NET platform. The latest of our results up to now have been only discovered in Russian journals, so the primary goal of the paper is to widen the scope of publicizing our results. The paper overviews goals, key ideas and history of the aspect. NET project and its use in our research on refactoring cloud applications for Microsoft Azure. The Enterprise Library Integration Pack for Microsoft Azure is a solution by Microsoft to separate cross-cutting concerns in developing cloud applications. Using this library implies modification of the target application's source code. In practice, there appear situations when updating the sources is undesirable or impossible, since they can just be confidential. The paper presents a method of seamless integration of aspects and the target application using the aspect. NET toolkit which allows the developers to avoid changing the source code of the target application when weaving aspects.
Following the success of software engineering design patterns, security patterns are a promising approach to aid in the design and development of more secure software systems. At the same time, recent studies on aspec...
详细信息
ISBN:
(纸本)9781450312035
Following the success of software engineering design patterns, security patterns are a promising approach to aid in the design and development of more secure software systems. At the same time, recent studies on aspect-oriented programming (AOP) suggest that software security concerns are good candidates for AOP techniques. Building upon the authors' previous work on aspectization of security patterns, this study contributes the development of aspect-oriented strategy sections for a set of webtier security patterns. It also adds to the small but growing body of quantitative evidence on the effects of aspectization on the modularity of security pattern code.
A functional aspect is an aspect that has the semantics of a transformation;it is a function that maps a program to an advised program. Functional aspects are composed by function composition. In this paper, we explor...
详细信息
ISBN:
(纸本)9781605582672
A functional aspect is an aspect that has the semantics of a transformation;it is a function that maps a program to an advised program. Functional aspects are composed by function composition. In this paper, we explore functional aspects in the context of aspect-oriented refactoring. We show that refactoring legacy applications using functional aspects is just as flexible and expressive as traditional aspects (functional aspects can be refactored in any order), while having a simpler semantics (aspect composition is just function composition), and causes fewer undesirable interactions between aspects (the number of potential interactions between functional aspects is half the number of potential interactions between traditional aspects). We analyze several aspect-oriented programs of different sizes to support our claims.
暂无评论