Home > Research > Publications & Outputs > Pointcut rejuvenation: recovering pointcut expr...
View graph of relations

Pointcut rejuvenation: recovering pointcut expressions in evolving aspect-oriented software

Research output: Contribution to Journal/MagazineJournal articlepeer-review

Published

Standard

Pointcut rejuvenation: recovering pointcut expressions in evolving aspect-oriented software. / Khatchadourian, Raffi; Greenwood, Philip; Rashid, Awais et al.
In: IEEE Transactions on Software Engineering, Vol. 38, No. 3, 2012, p. 642-657.

Research output: Contribution to Journal/MagazineJournal articlepeer-review

Harvard

Khatchadourian, R, Greenwood, P, Rashid, A & Xu, G 2012, 'Pointcut rejuvenation: recovering pointcut expressions in evolving aspect-oriented software', IEEE Transactions on Software Engineering, vol. 38, no. 3, pp. 642-657. https://doi.org/10.1109/TSE.2011.21

APA

Vancouver

Khatchadourian R, Greenwood P, Rashid A, Xu G. Pointcut rejuvenation: recovering pointcut expressions in evolving aspect-oriented software. IEEE Transactions on Software Engineering. 2012;38(3):642-657. Epub 2011 Feb 1. doi: 10.1109/TSE.2011.21

Author

Khatchadourian, Raffi ; Greenwood, Philip ; Rashid, Awais et al. / Pointcut rejuvenation: recovering pointcut expressions in evolving aspect-oriented software. In: IEEE Transactions on Software Engineering. 2012 ; Vol. 38, No. 3. pp. 642-657.

Bibtex

@article{7762ccf12dbc4d64968ca8fff6041d3b,
title = "Pointcut rejuvenation: recovering pointcut expressions in evolving aspect-oriented software",
abstract = "Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. In this paper, we present an automated approach that limits fragility problems by providing mechanical assistance in pointcut maintenance. The approach is based on harnessing arbitrarily deep structural commonalities between program elements corresponding to join points selected by a pointcut. The extracted patterns are then applied to later versions to offer suggestions of new join points that may require inclusion. To illustrate that the motivation behind our proposal is well founded, we first empirically establish that join points captured by a single pointcut typically portray a significant amount of unique structural commonality by analyzing patterns extracted from twenty-three AspectJ programs. Then, we demonstrate the usefulness of our technique by rejuvenating pointcuts in multiple versions of three of these programs. The results show that our parameterized heuristic algorithm was able to accurately and automatically infer the majority of new join points in subsequent software versions that were not captured by the original pointcuts.",
keywords = "Interactive environments , Maintainability , Programmer workbench",
author = "Raffi Khatchadourian and Philip Greenwood and Awais Rashid and Guoqing Xu",
year = "2012",
doi = "10.1109/TSE.2011.21",
language = "English",
volume = "38",
pages = "642--657",
journal = "IEEE Transactions on Software Engineering",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
number = "3",

}

RIS

TY - JOUR

T1 - Pointcut rejuvenation: recovering pointcut expressions in evolving aspect-oriented software

AU - Khatchadourian, Raffi

AU - Greenwood, Philip

AU - Rashid, Awais

AU - Xu, Guoqing

PY - 2012

Y1 - 2012

N2 - Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. In this paper, we present an automated approach that limits fragility problems by providing mechanical assistance in pointcut maintenance. The approach is based on harnessing arbitrarily deep structural commonalities between program elements corresponding to join points selected by a pointcut. The extracted patterns are then applied to later versions to offer suggestions of new join points that may require inclusion. To illustrate that the motivation behind our proposal is well founded, we first empirically establish that join points captured by a single pointcut typically portray a significant amount of unique structural commonality by analyzing patterns extracted from twenty-three AspectJ programs. Then, we demonstrate the usefulness of our technique by rejuvenating pointcuts in multiple versions of three of these programs. The results show that our parameterized heuristic algorithm was able to accurately and automatically infer the majority of new join points in subsequent software versions that were not captured by the original pointcuts.

AB - Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. In this paper, we present an automated approach that limits fragility problems by providing mechanical assistance in pointcut maintenance. The approach is based on harnessing arbitrarily deep structural commonalities between program elements corresponding to join points selected by a pointcut. The extracted patterns are then applied to later versions to offer suggestions of new join points that may require inclusion. To illustrate that the motivation behind our proposal is well founded, we first empirically establish that join points captured by a single pointcut typically portray a significant amount of unique structural commonality by analyzing patterns extracted from twenty-three AspectJ programs. Then, we demonstrate the usefulness of our technique by rejuvenating pointcuts in multiple versions of three of these programs. The results show that our parameterized heuristic algorithm was able to accurately and automatically infer the majority of new join points in subsequent software versions that were not captured by the original pointcuts.

KW - Interactive environments

KW - Maintainability

KW - Programmer workbench

UR - http://www.scopus.com/inward/record.url?scp=84861867030&partnerID=8YFLogxK

U2 - 10.1109/TSE.2011.21

DO - 10.1109/TSE.2011.21

M3 - Journal article

AN - SCOPUS:84861867030

VL - 38

SP - 642

EP - 657

JO - IEEE Transactions on Software Engineering

JF - IEEE Transactions on Software Engineering

IS - 3

ER -