Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2584469.2584476acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
demonstration

Modularizing crosscutting contracts with AspectJML

Published: 22 April 2014 Publication History

Abstract

It is claimed in the literature that the contracts of a system present crosscutting structure during its realization. In this context, there has been attempts to improve separation of crosscutting contracts, e.g. by aspect-oriented programming and design by contract languages, but none give programmers textual separation of contracts/specifications and modular reasoning at the same time.
In this demonstration we show how our language, AspectJML, a simple and practical aspect-oriented extension to JML, allows the separation of crosscutting contracts while maintaining the key benefits of a design by contract language, like documentation and modular reasoning. AspectJML's quantified statements, written in terms of AspectJ pointcut language, allow one to select join points in which the contracts are written in a modular and convenient way. Also, all the crosscutting contracts are well documented in the class they apply to, thus allowing the reasoning about crosscutting contracts in a modular fashion.
This demonstration will proceed by discussing several examples that highlights the main features of the AspectJML language and show the use of AspectJML's compiler, ajmlc. We will conclude with a discussion of ongoing work on design, implementation and runtime checking of both Java and AspectJ programs with AspectJML/ajmlc.

References

[1]
S. Balzer, P. T. Eugster, and B. Meyer. Can Aspects Implement Contracts. In In: Proceedings of RISE 2005 (Rapid Implementation of Engineering Techniques, pages 13--15, September 2005.
[2]
L. C. Briand, W. J. Dzidek, and Y. Labiche. Instrumenting Contracts with Aspect-Oriented Programming to Increase Observability and Support Debugging. In ICSM '05: Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM'05), pages 687--690, Washington, DC, USA, 2005. IEEE Computer Society.
[3]
Y. A. Feldman et. Jose: Aspects for Design by Contract 80--89. IEEE SEFM, 0:80--89, 2006.
[4]
C. A. R. Hoare. An axiomatic basis for computer programming. Commun. ACM, 12(10):576--580, 1969.
[5]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. Getting tarted with AspectJ. Commun. ACM, 44:59--65, October 2001.
[6]
G. Kiczales and M. Mezini. Aspect-oriented programming and modular reasoning. In Proceedings of the 27th international conference on Software engineering, ICSE '05, pages 49--58, New York, NY, USA, 2005. ACM.
[7]
G. T. Leavens, A. L. Baker, and C. Ruby. Preliminary design of JML: A behavioral interface specification language for Java. ACM SIGSOFT Software Engineering Notes, 2006.
[8]
M. Lippert and C. V. Lopes. A study on exception detection and handling using aspect-oriented programming. In Proceedings of the 22nd international conference on Software engineering, ICSE '00, pages 418--427, New York, NY, USA, 2000. ACM.
[9]
C. V. Lopes, M. Lippert, and E. A. Hilsdale. Design By Contract with Aspect-Oriented Programming. In U.S. Patent No. 06,442,750, issued August 27, 2002.
[10]
M. Marin, L. Moonen, and A. van Deursen. A Classification of Crosscutting Concerns. In ICSM '05: Proceedings of the 21st IEEE International Conference on Software Maintenance, pages 673--676, Washington, DC, USA, 2005. IEEE Computer Society.
[11]
B. Meyer. Applying "design by contract." Computer, 25(10):40--51, 1992.
[12]
B. Meyer. Eiffel: The Language. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1992.
[13]
R. Mitchell, J. McKim, and B. Meyer. Design by contract, by example. Addison Wesley Longman Publishing Co., Inc., Redwood City, CA, USA, 2002.
[14]
H. Rebêelo, G. T. Leavens, M. Bagherzadeh, H. Rajan, R. Lima, D. Zimmerman, M. Cornéelio, and T. Thüum. AspectJML: Modular Specification and Runtime Checking for Crosscutting Contracts. In Proceedings of the Thirteenth International Conference on Modularity, Modularity '14, New York, NY, USA, 2014. ACM.
[15]
H. Rêbelo, G. T. Leavens, R. M. F. Lima, P. Borba, and M. Ribeiro. Modular aspect-oriented design rule enforcement with XPIDRs. In Proceedings of the 12th workshop on Foundations of aspect-oriented languages, FOAL '13, pages 13--18, New York, NY, USA, 2013. ACM.
[16]
H. Rebêlo, R. Lima, U. Kulesza, C. Sant'Anna, Y. Cai, R. Coelho, and M. Ribeiro. Quantifying the Effects of Aspectual Decompositions on Design By Contract Modularization: A Maintenance Study. International Journal of Software Engineering and Knowledge Engineering, 2013.
[17]
H. Rebêlo, R. Lima, and G. T. Leavens. Modular Contracts with Procedures, Annotations, Pointcuts and Advice. In SBLP '11: Proceedings of the 2011 Brazilian Symposium on Programming Languages. Brazilian Computer Society, 2011.
[18]
H. Rebêlo, S. Soares, R. Lima, L. Ferreira, and M. Cornélio. Implementing Java modeling language contracts with AspectJ. In Proceedings of the 2008 ACM symposium on Applied computing, SAC '08. ACM, 2008.
[19]
T. Skotiniotis and D. H. Lorenz. Cona: aspects for contracts and contracts for aspects. In Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, OOPSLA '04, pages 196--197, New York, NY, USA, 2004. ACM.

Cited By

View all
  • (2019)Splitting APIsProceedings of the 16th International Conference on Mining Software Repositories10.1109/MSR.2019.00062(360-370)Online publication date: 26-May-2019
  • (2016)Modular Reasoning in the Presence of Event SubtypingTransactions on Modularity and Composition I10.1007/978-3-319-46969-0_5(167-223)Online publication date: 30-Sep-2016
  • (2015)Enforcing information hiding in interface specifications: a client-aware checking approachCompanion Proceedings of the 14th International Conference on Modularity10.1145/2735386.2736750(47-51)Online publication date: 16-Mar-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
MODULARITY '14: Proceedings of the companion publication of the 13th international conference on Modularity
April 2014
44 pages
ISBN:9781450327732
DOI:10.1145/2584469
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

  • AOSA: Aspect-Oriented Software Association

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 April 2014

Check for updates

Author Tags

  1. aspect-oriented programming
  2. aspectj
  3. aspectjml
  4. crosscutting contracts
  5. design by contract
  6. jml

Qualifiers

  • Demonstration

Funding Sources

Conference

MODULARITY '14
Sponsor:
  • AOSA

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 30 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Splitting APIsProceedings of the 16th International Conference on Mining Software Repositories10.1109/MSR.2019.00062(360-370)Online publication date: 26-May-2019
  • (2016)Modular Reasoning in the Presence of Event SubtypingTransactions on Modularity and Composition I10.1007/978-3-319-46969-0_5(167-223)Online publication date: 30-Sep-2016
  • (2015)Enforcing information hiding in interface specifications: a client-aware checking approachCompanion Proceedings of the 14th International Conference on Modularity10.1145/2735386.2736750(47-51)Online publication date: 16-Mar-2015
  • (2015)Challenges on software unbundling: growing and letting goCompanion Proceedings of the 14th International Conference on Modularity10.1145/2735386.2735390(43-46)Online publication date: 16-Mar-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media