  Code annotations is a widely used feature in Java systems to configure custom
metadata on programming elements. Their increasing presence creates the need
for approaches to assess and comprehend their usage and distribution. In this
context, software visualization has been studied and researched to improve
program comprehension in different aspects. This study aimed at designing a
software visualization approach that graphically displays how code annotations
are distributed and organized in a software system and developing a tool, as a
reference implementation of the approach, to generate views and interact with
users. We conducted an empirical evaluation through questionnaires and
interviews to evaluate our visualization approach considering four aspects:
effectiveness for program comprehension, perceived usefulness, perceived ease
of use, and suitability for the intended audience. The resulting data was used
to perform a qualitative and quantitative analysis. The tool identifies package
responsibilities providing visual information about their annotations at
different levels. Using the developed tool, the participants achieved a high
correctness rate in the program comprehension tasks and performed very well in
questions about the overview of the system under analysis. Finally,
participants perceived that the tool outperforms existing approaches for code
inspection when searching for information related to code annotations. The
results show that the visualization approach using the developed tool is
effective in program comprehension tasks related to code annotations, which can
also be used to identify responsibilities in the application packages.
Moreover, it was evaluated as suitable for newcomers to overview the usage of
annotations in the system and for architects to perform a deep analysis that
can potentially detect misplaced annotations and abnormal growths on their
usage.
