AspectJML crosscutting contract specifications for better modularity

          aspectjml is           aspectjml enables
  • a seamless aspect-oriented extension to the JML design by contract language
  • AspectJ compatible
  • Java platform compatible
  • easy to learn and use
  • 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 contracts

AspectJML - Who is using AspectJML

Who is using AspectJML

AspectJML, as with JML, is an open project, and we welcome the participation of other groups.
If your group is working on AspectJML but not listed below, please send an email to Henrique RebÍlo (

University of York, Department of Computer Science

  • Prof. Ana Cavalcanti

      "In this course, the main objective is the study of the design-by-contract technique, and of its benefits and challenges in the context of an object-oriented language. AspectJML provides a user-friendly and modern platform for the students to understand the power and limitations of runtime verification. Over a number of sessions of exercises, they annotate and execute simple programs, considering aspects of abstract modelling, inheritance, and dynamic binding."

      - Ana Cavalcanti

        Professor, University of York, UK

    Universidade Federal do Rio Grande do Norte (UFRN), Departamento de InformŠtica e MatemŠtica Aplicada (DIMAp) , Brazil

    • Prof. Marcel Oliveira
        - He teaches JML using AspectJML in his course Applied Logic to Software Engineering.

      "I have used JML in the final part of the Applied Logic to Software Engineering Course at the Federal University of Rio Grande do Norte.
      In this course, in the first part, students learn First Order Logic as a language that can be used to express desired properties of their programs.
      In the second part of the course, students then use AspectJML to write specifications for programs and putting into practice the knowledge
      acquired in the first part."

      - Marcel Oliveira

        Professor, UFRN, DIMAp, Brazil