Johan Fabry, Coen De Roover, Carlos Francisco Noguera Garcia, Steffen Zschaler, Awais Rashid, Viviane Jonckers
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.
Fabry, J, De Roover, C, Noguera Garcia, CF, Zschaler, S, Rashid, A & Jonckers, V 2016, 'AspectJ code analysis and verification with GASR', Journal of Systems and Software, vol. 117, pp. 528-544. https://doi.org/10.1016/j.jss.2016.04.014
Fabry, J., De Roover, C., Noguera Garcia, C. F., Zschaler, S., Rashid, A., & Jonckers, V. (2016). AspectJ code analysis and verification with GASR. Journal of Systems and Software, 117, 528-544. https://doi.org/10.1016/j.jss.2016.04.014
@article{cc53a6cc165a402e86497ffa5020d104,
title = "AspectJ code analysis and verification with GASR",
abstract = "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.",
keywords = "Aspect-Oriented Programming, Program Analysis , Logic Program Querying",
author = "Johan Fabry and {De Roover}, Coen and {Noguera Garcia}, {Carlos Francisco} and Steffen Zschaler and Awais Rashid and Viviane Jonckers",
year = "2016",
month = jun,
day = "13",
doi = "10.1016/j.jss.2016.04.014",
language = "English",
volume = "117",
pages = "528--544",
journal = "Journal of Systems and Software",
issn = "0164-1212",
publisher = "Elsevier Inc.",
}