Skip to content

metaisbeta/avisualizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AVisualizer Heroku

Annotation Visualizer

A Tool to Visualize Code Annotations Metrics Distribution

The Annotation Visualizer (AVisualizer) is a software visualization tool that aims to aid researches and developers in analyzing and comprehending code annotations distributions. This tool was used to support our research paper CADV - Code Annotations Distribution Visualization.

Code Annotation Metrics

The visualization is generated based on a suite software metrics dedicated to code annotations.

The suite is composed of 9 metrics proposed and defined in the the paper A Metrics Suite for Code Annoation Assessment

Code Annotation Metrics

  • AC: Annotations in Class
  • UAC: Unique Annotations in Class
  • ASC: Annotation Schema in Class
  • AED: Annotation in Element Declaration
  • AA: Attributes in Annotation
  • ANL: Annotation Nesting Level
  • LOCAD: LOC in Annotation Declaration
  • NEC: Number of Elements in Class
  • NAEC: Number of Annotated Elements in Class

Basic Building Blocks

Building Blocks Basic Building Blocks of AVisualizer

The backend of AVisualizer is mostly concernd with extracting the metrics values and serving the frontend. The extraction of the metrics values is performed by the Annotation Sniffer (ASniffer). The generated JSON report is used as input for the AVisualizer frontend. The backend is wrapped as a Spring Boot App

The frontend of AVisualizer is build using the React library React Library and D3.js.

Annotations Visualization

The CADV is a software visualization approach based on circle packing. It is composed of three different views for code annotations. The System View, Package View and, Class View.

  • System View: In this view we observe how annotation schemas are distributed in the packages. This view has no information of classes.

System View Example Example of the System View for project GeoStore

  • Package View: In this view we observe how annotations are distributed inside classes of a package. In this view we have no information of how the annotations are distributed between the code elements of a class.

Package View Example Example of the Package View

  • Class View: In this view we observe how annotations are distributed by code elements declared in the observed class. The annotations are grouped by code elements.

Class View Example Example of the Class View

Executing AVisualizer

The first step is to build the application using Maven

mvn clean package

The executable jar file will be located in the folder avisualizer-back/target.

Run it with the command

java -jar avisualizer-back/target/avisualizer-back.jar

The application will available on http://localhost:8080

License

GitHub