Rights statement: This is the author’s version of a work that was accepted for publication in Journal of Systems and Software. Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. A definitive version was subsequently published in Journal of Systems and Software, 117, 2016 DOI: 10.1016/j.jss.2016.04.014
Accepted author manuscript, 35.4 MB, PDF document
Available under license: CC BY-NC-ND: Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License
Final published version
Research output: Contribution to Journal/Magazine › Journal article › peer-review
Research output: Contribution to Journal/Magazine › Journal article › peer-review
}
TY - JOUR
T1 - AspectJ code analysis and verification with GASR
AU - Fabry, Johan
AU - De Roover, Coen
AU - Noguera, Carlos
AU - Zschaler, Steffen
AU - Rashid, Awais
AU - Jonckers, Viviane
N1 - This is the author’s version of a work that was accepted for publication in Journal of Systems and Software. Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. A definitive version was subsequently published in Journal of Systems and Software, 117, 2016 DOI: 10.1016/j.jss.2016.04.014
PY - 2016/7/1
Y1 - 2016/7/1
N2 - Aspect-oriented programming languages extend existing languages with new features for supporting modularization of crosscutting concerns. These features however make existing source code analysis tools unable to reason over this code. Consequently, all code analysis efforts of aspect-oriented code that we are aware of have either built limited analysis tools or were performed manually. Given the significant complexity of building them or manual analysis, a lot of duplication of effort could have been avoided by using a general-purpose tool. To address this, in this paper we present Gasr: a source code analysis tool that reasons over AspectJ source code, which may contain metadata in the form of annotations. Gasr provides multiple kinds of analyses that are general enough such that they are reusable, tailorable and can reason over annotations. We demonstrate the use of Gasr in two ways: we first automate the recognition of previously identified aspectual source code assumptions. Second, we turn implicit assumptions into explicit assumptions through annotations and automate their verification. In both uses Gasr performs detection and verification of aspect assumptions on two well-known case studies that were manually investigated in earlier work. Gasr finds already known aspect assumptions and adds instances that had been previously overlooked.
AB - Aspect-oriented programming languages extend existing languages with new features for supporting modularization of crosscutting concerns. These features however make existing source code analysis tools unable to reason over this code. Consequently, all code analysis efforts of aspect-oriented code that we are aware of have either built limited analysis tools or were performed manually. Given the significant complexity of building them or manual analysis, a lot of duplication of effort could have been avoided by using a general-purpose tool. To address this, in this paper we present Gasr: a source code analysis tool that reasons over AspectJ source code, which may contain metadata in the form of annotations. Gasr provides multiple kinds of analyses that are general enough such that they are reusable, tailorable and can reason over annotations. We demonstrate the use of Gasr in two ways: we first automate the recognition of previously identified aspectual source code assumptions. Second, we turn implicit assumptions into explicit assumptions through annotations and automate their verification. In both uses Gasr performs detection and verification of aspect assumptions on two well-known case studies that were manually investigated in earlier work. Gasr finds already known aspect assumptions and adds instances that had been previously overlooked.
KW - Aspect Oriented Programming
KW - Source Code Analysis
KW - Logic Program Querying
KW - Aspectual Assumptions
U2 - 10.1016/j.jss.2016.04.014
DO - 10.1016/j.jss.2016.04.014
M3 - Journal article
VL - 117
SP - 528
EP - 544
JO - Journal of Systems and Software
JF - Journal of Systems and Software
SN - 0164-1212
ER -