Write a Blog >>
SPLASH 2017
Sun 22 - Fri 27 October 2017 Vancouver, Canada
Sun 22 Oct 2017 14:30 - 15:00 at Regency B - Runtime Reflection Chair(s): Cyrus Omar

Code annotations are the core of the main APIs and frameworks for enterprise development, and are widely used on several applications. However, despite these APIs and frameworks made advanced uses of annotations, the language API for annotation reading is far from their needs. In particular, annotation reading is still a relatively complex task, that can consume a lot of development time and that can couple the framework internal structure to its annotations. This paper proposes an annotation-based API to retrieve metadata from code annotations and populate an instance with meta-information ready to be used by the framework. The proposed API is based on best practices and approaches for metadata denition documented on patterns, and has been implemented by a framework named Esnge Metadata. We evaluated the approach by refactoring an existing framework to use it through Esnge Metadata. The original and the refactored versions are compared using several code assessment techniques, such as software metrics, DSM (Dependency Structure Matrix) and bad smells detection, followed by a qualitative analysis based on source code inspection. As a result, the case study revealed that the usage of the proposed API can reduce the coupling between the metadata reading code and the annotations.