Fechar

%0 Conference Proceedings
%4 sid.inpe.br/mtc-m21c/2021/01.22.12.33
%2 sid.inpe.br/mtc-m21c/2021/01.22.12.33.27
%@doi 10.1145/3422392.3422428
%@isbn 978-145038753-8
%T A Metadata Handling API for Framework Development: A Comparative Study
%D 2020
%A Guerra, Eduardo,
%A Lima, Phyllipe,
%A Choma, Joelma,
%A Nardes, Marco Augusto Ribeiro,
%A Silva, Tiago,
%A Lanza, Michele,
%A Meirelles, Paulo,
%@affiliation Free University of Bozen-Bolzano
%@affiliation Instituto Nacional de Telecomunicações (INATEL)
%@affiliation Instituto Nacional de Pesquisas Espaciais (INPE)
%@affiliation Instituto Nacional de Pesquisas Espaciais (INPE)
%@affiliation Universidade Federal de São Paulo (UNIFESP)
%@affiliation University of Lugano
%@affiliation Universidade Federal de São Paulo (UNIFESP)
%@electronicmailaddress guerraem@gmail.com
%@electronicmailaddress phyllipe@inatel.br
%@electronicmailaddress jh.choma70@gmail.com
%@electronicmailaddress marconardes@gmail.com
%@electronicmailaddress silva.tiago@unifesp.br
%@electronicmailaddress michele.lanza@usi.ch
%@electronicmailaddress paulo.meirelles@unifesp.br
%B Brazilian Symposium on Software Engineering, 34
%C Online
%8 21-23 Oct.
%I Association for Computing Machinery
%P 499-505
%S Proceedings
%X Frameworks play an essential role in software development, providing not only code reuse, but also design reuse. Several Java frameworks and APIs such as Spring, JPA, and CDI rely on the use of metadata, mainly defined by code annotations. These frameworks usually use the Java Reflection API to consume code annotations, which only returns the annotations in a given code element. This strategy, however, is far from the needs of a real framework. The goal of this paper is to propose a novel API, named Esfinge Metadata, to assist in the development of frameworks based on metadata and applications based on custom annotations. Being based on annotations itself, this new API uses them to map metadata to class members. We carried out an experiment to evaluate our API and its impact on aspects such as code structure, complexity, and coupling, while also performing a comparison with the direct use of the Java Reflection API. The participants implemented a metadata-based framework based on realistic requirements in a sequence of 10 tasks that took an average of nine hours. As a result, participants that used our API maintained a more stable code evolution, regarding complexity and coupling as opposed to participants using the Java Reflection API, where the code metrics evolution and structure vary greatly.
%@language en
%3 guerra_metadata.pdf


Fechar