CADV: A software visualization approach for code annotations distribution

Context : 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. Objectives: 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 tool, to generate views and interact with users. Methods: We conducted an empirical evaluation through questionnaires and interviews to evaluate our visualization approach considering four aspects: (i) effectiveness for program comprehension, (ii) perceived usefulness, (iv) perceived ease of use, and (iv) suitability for the intended audience. The resulting data was used to perform a qualitative and quantitative analysis. Results: The tool identifies package responsibilities providing visual information about their annotations at different levels. Using the developed tool, the par?Fully documented templates are available in the elsarticle package on CTAN. Email addresses: phyllipe@inatel.br (Phyllipe Lima), jorge@jmelegati.com (Jorge Melegati), everaldogjr@gmail.com (Everaldo Gomes), nathalya.stefhany@gec.inatel.br (Nathalya Stefhany Pereira), eduardo.guerra@unibz.it (Eduardo Guerra), paulo.meirelles@ufabc.edu.br (Paulo Meirelles) Preprint submitted to Information and Software Technology December 22, 2021 ar X iv :2 11 2. 10 93 8v 1 [ cs .S E ] 2 1 D ec 2 02 1 ticipants 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. Conclusions: 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.

[1]  Christian Zirkelbach,et al.  ExplorViz: Research on software visualization, comprehension and collaboration , 2020, Softw. Impacts.

[2]  Marcos Moraes,et al.  Modelo Arquitetural para Coleta, Processamento e Visualização de Informações de Clima Espacial , 2014, SBSI.

[3]  Malcolm Munro,et al.  Virtual but visible software , 2000, 2000 IEEE Conference on Information Visualization. An International Conference on Computer Visualization and Graphics.

[4]  이훈,et al.  지각된 유용성(Perceived Usefulness)의 영향분석 , 2004 .

[5]  Mohammad Ghafari,et al.  A systematic literature review of software visualization evaluation , 2018, J. Syst. Softw..

[6]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[7]  Hélio Silva,et al.  A Metrics Suite for code annotation assessment , 2018, J. Syst. Softw..

[8]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[9]  Stéphane Ducasse,et al.  Polymetric Views - A Lightweight Visual Approach to Reverse Engineering , 2003, IEEE Trans. Software Eng..

[10]  HeerJeffrey,et al.  D3 Data-Driven Documents , 2011 .

[11]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[12]  E. Guerra Design Patterns for Annotation-based APIs , 2016 .

[13]  Hong Yul Yang,et al.  A Solar System Metaphor for 3D Visualisation of Object Oriented Software Metrics , 2004, InVis.au.

[14]  Romain Robbes,et al.  Software systems as cities: a controlled experiment , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[15]  James W. Cannon,et al.  Introduction to circle packing: the theory of discrete analytic functions , 2007 .

[16]  Mohammad Ghafari,et al.  CityVR: Gameful Software Visualization , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[17]  Eduardo M. Guerra,et al.  A pattern language for metadata-based frameworks , 2009, PLoP '09.

[18]  Michele Lanza,et al.  A Metadata Handling API for Framework Development: a Comparative Study , 2020, SBES.

[19]  Emerson R. Murphy-Hill,et al.  Cowboys, ankle sprains, and keepers of quality: how is video game development different from software development? , 2014, ICSE.

[20]  Michele Lanza CodeCrawler - polymetric views in action , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[21]  Chenggang Bai,et al.  Characterizing the Usage, Evolution and Impact of Java Annotations in Practice , 2018, IEEE Transactions on Software Engineering.

[22]  V. Kaul,et al.  Planning , 2012 .

[23]  Claes Wohlin,et al.  Empirical software engineering experts on the use of students and professionals in experiments , 2017, Empirical Software Engineering.

[24]  Gabriele Bavota,et al.  Code smells for Model-View-Controller architectures , 2017, Empirical Software Engineering.

[25]  Giuseppe Scanniello,et al.  Viewing Object-Oriented Software with MetricAttitude: An Empirical Evaluation , 2014, 2014 18th International Conference on Information Visualisation.

[26]  Michele Lanza,et al.  Visualizing Software Systems as Cities , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[27]  Giuseppe Scanniello,et al.  Proposing and assessing a software visualization approach based on polymetric views , 2016, J. Vis. Lang. Comput..

[28]  P. Alam ‘A’ , 2021, Composites Engineering: An A–Z Guide.

[29]  Fred D. Davis Perceived Usefulness, Perceived Ease of Use, and User Acceptance of Information Technology , 1989, MIS Q..

[30]  Daniela Cruzes,et al.  Recommended Steps for Thematic Synthesis in Software Engineering , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[31]  Michele Lanza,et al.  Object-Oriented Metrics in Practice - Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems , 2006 .

[32]  Giuseppe Scanniello,et al.  Towards the visualization of software systems as 3D forests: the CodeTrees environment , 2012, SAC '12.

[33]  Claes Wohlin,et al.  Using Students as Subjects—A Comparative Study of Students and Professionals in Lead-Time Impact Assessment , 2000, Empirical Software Engineering.

[34]  Fabio Kon,et al.  Does it make sense to have application-specific code conventions as a complementary approach to code annotations? , 2018 .

[35]  Fabio Kon,et al.  Leading successful government-academia collaborations using FLOSS and agile values , 2020, J. Syst. Softw..

[36]  V. Braun,et al.  Using thematic analysis in psychology , 2006 .

[37]  Giuseppe Scanniello,et al.  On the use of virtual reality in software visualization: The case of the city metaphor , 2019, Inf. Softw. Technol..

[38]  Paulo Meirelles,et al.  Annotation Sniffer: A tool to Extract Code Annotations Metrics , 2020, J. Open Source Softw..

[39]  Václav Rajlich,et al.  Software evolution and maintenance , 2014, FOSE.