AspectJML for better crosscutting modularity

          aspectjml is           aspectjml enables
  • a seamless aspect-oriented extension to Java
  • AspectJ compatible
  • design by contract support with JML
  • Java platform compatible
  • easy to learn and use
  • clean modularization of crosscutting concerns, while preserving
    encapsulation and modular reasoning of object-oriented code
  • clean modularization/specification of crosscutting contracts,
    such as preconditions and postconditions, while preserving
    documentation and modular reasoning
  • well-defined interfaces between the OO code and crosscutting code
  • pure hierarchical structuring to enable modular crosscutting structure

Quick Links

AspectJML - Downloads - Programming Guide - Who is using AspectJML

  • ***AspectJML 1.8.0 [java 1.8 support]*** is under development with release date due to the end of August 2018. This will be the first release supporting a general purpose aspect-oriented extension to Java. If you want a stable development build, please contact us and we're happy to send you the most recent development build compatible with Java 1.8.
                                                                                                             posted 2-Jul-18

  • AspectJML 1.7.0 is now available for download. See the readme for more information.
                                                                                                             posted 12-Dec-14

  • AspectJML 1.7beta1 is now available for download. See the readme for more information.
                                                                                                             posted 1-May-14
  • About

    AspectJML is a simple and pratical extension to the JML design by contract language that adds AOP capabilities to handle crosscutting contracts.
    A Key difference between AspectJML and other technologies to separate crosscutting contracts such as AspectJ is that AspectJML strives to balance
    separation of crosscutting contracts and modular reasoning about contracts. It is our motto that "one shall not have to choose between modular
    reasoning, documentation, and separation of crosscutting contracts".


    The work on AspectJML is a cooperative effort between:



    Key Publications

    Henrique Rebêlo and Gary T. Leavens Aspect-Oriented Programming Reloaded. SBLP 2017.

    Henrique Rebêlo, Gary T. Leavens, Mehdi Bagherzadeh, Hridesh Rajan, Ricardo Lima, Daniel M. Zimmerman, Márcio Cornélio, and Thomas Thüm AspectJML: Modular Specification and Runtime Checking for Crosscutting Contracts. Modularity (AOSD) 2014.

    Henrique Rebêlo, Ricardo Lima, Márcio Cornélio, Sérgio Soares, and Leopoldo Ferreira Implementing Java Modeling Language Contracts using AspectJ. SAC 2008.

    Publications related to both JML and AspectJML can be found [here].

    Publications related Ptolemy can be found [here].

    free counters