Title
Aspectjml: Modular Specification And Runtime Checking For Crosscutting Contracts
Keywords
Aspect-oriented programming; AspectJ; AspectJML; Crosscutting contracts; Design by contract; JML
Abstract
Aspect-oriented programming (AOP) is a popular technique for modularizing crosscutting concerns. In this context, researchers have found that the realization of design by contract (DbC) is cross-cutting and fares better when modularized by AOP. However, previous efforts aimed at supporting crosscutting contract modularity might actually compromise the main DbC principles. For example, in AspectJ-style, reasoning about the correctness of a method call may require a whole-program analysis to determine what advice applies and what that advice does relative to DbC implementation and checking. Also, when contracts are separated from classes a programmer may not know about them and may break them inadvertently. In this paper we solve these problems with AspectJML, a new specification language that supports crosscutting contracts for Java code. We also show how AspectJML supports the main DbC principles of modular reasoning and contracts as documentation. Copyright © 2014 ACM. Copyright © 2014 ACM.
Publication Date
1-1-2014
Publication Title
MODULARITY 2014 - Proceedings of the 13th International Conference on Modularity (Formerly AOSD)
Number of Pages
157-168
Document Type
Article; Proceedings Paper
Personal Identifier
scopus
DOI Link
https://doi.org/10.1145/2577080.2577084
Copyright Status
Unknown
Socpus ID
84900027430 (Scopus)
Source API URL
https://api.elsevier.com/content/abstract/scopus_id/84900027430
STARS Citation
Rebêlo, Henrique; Leavens, Gary T.; Bagherzadeh, Mehdi; Rajan, Hridesh; and Lima, Ricardo, "Aspectjml: Modular Specification And Runtime Checking For Crosscutting Contracts" (2014). Scopus Export 2010-2014. 9901.
https://stars.library.ucf.edu/scopus2010/9901