Ann: A domain-specific language for the effective design and validation of Java annotations

12/02/2018
by   Irene Córdoba, et al.
0

This paper describes a new modelling language for the effective design and validation of Java annotations. Since their inclusion in the 5th edition of Java, annotations have grown from a useful tool for the addition of meta-data to play a central role in many popular software projects. Usually they are not conceived in isolation, but in groups, with dependency and integrity constraints between them. However, the native support provided by Java for expressing this design is very limited. To overcome its deficiencies and make explicit the rich conceptual model which lies behind a set of annotations, we propose a domain-specific modelling language. The proposal has been implemented as an Eclipse plug-in, including an editor and an integrated code generator that synthesises annotation processors. The environment also integrates a model finder, able to detect unsatisfiable constraints between different annotations, and to provide examples of correct annotation usages for validation. The language has been tested using a real set of annotations from the Java Persistence API (JPA). Within this subset we have found enough rich semantics expressible with Ann and omitted nowadays by the Java language, which shows the benefits of Ann in a relevant field of application.

READ FULL TEXT
research
07/10/2018

A modelling language for the effective design of Java annotations

This paper describes a new modelling language for the effective design o...
research
05/04/2018

Characterizing the Usage and Impact of Java Annotations Over 1000+ Projects

As a kind of meta-data feature, annotations have been formally introduce...
research
11/12/2019

Aplib: Tactical Programming of Intelligent Agents

This paper presents aplib, a Java library for programming intelligent ag...
research
05/17/2023

Statically Detecting Buffer Overflow in Cross-language Android Applications Written in Java and C/C++

Many applications are being written in more than one language to take ad...
research
04/02/2019

Verification and Validation of Semantic Annotations

In this paper, we propose a framework to perform verification and valida...
research
11/16/2021

Understanding How Programmers Can Use Annotations on Documentation

Modern software development requires developers to find and effectively ...
research
03/11/2021

ArCode: A Tool for Supporting Comprehension andImplementation of Architectural Concerns

Integrated development environments (IDE) play an important role in supp...

Please sign up or login with your details

Forgot password? Click here to reset