Ann: A domain-specific language for the effective design and validation of Java annotations. (April 2016)
- Record Type:
- Journal Article
- Title:
- Ann: A domain-specific language for the effective design and validation of Java annotations. (April 2016)
- Main Title:
- Ann: A domain-specific language for the effective design and validation of Java annotations
- Authors:
- Córdoba-Sánchez, Irene
de Lara, Juan - Abstract:
- Abstract: 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. Abstract : Highlights: Ann is a domain-specific language for the design of dependent Java annotation types. It allows to design explicitly the constraints in the conceptual model behind them. The consistencyAbstract: 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. Abstract : Highlights: Ann is a domain-specific language for the design of dependent Java annotation types. It allows to design explicitly the constraints in the conceptual model behind them. The consistency validation of the constraints is performed using model finding. Automatic code generation enables validation of the annotations at compile time. Ann was tested in a real use-case of JPA annotations, obtaining successful results. … (more)
- Is Part Of:
- Computer languages, systems & structures. Volume 45(2016)
- Journal:
- Computer languages, systems & structures
- Issue:
- Volume 45(2016)
- Issue Display:
- Volume 45, Issue 2016 (2016)
- Year:
- 2016
- Volume:
- 45
- Issue:
- 2016
- Issue Sort Value:
- 2016-0045-2016-0000
- Page Start:
- 164
- Page End:
- 190
- Publication Date:
- 2016-04
- Subjects:
- Model driven engineering -- Domain-specific languages -- Code generation -- Java annotations -- Model finders
Programming languages (Electronic computers) -- Periodicals
Computer networks -- Periodicals
Computer architecture -- Periodicals
Computer systems -- Periodicals
Langage de programmation
Réseau d'ordinateurs
Architecture d'ordinateur
Périodique électronique (Descripteur de forme)
Ressource Internet (Descripteur de forme)
005.13 - Journal URLs:
- http://www.sciencedirect.com/science/journal/14778424/40 ↗
http://www.elsevier.com/journals ↗ - DOI:
- 10.1016/j.cl.2016.02.002 ↗
- Languages:
- English
- ISSNs:
- 1477-8424
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 3394.071000
British Library DSC - BLDSS-3PM
British Library STI - ELD Digital store - Ingest File:
- 2396.xml