Skip to content

fairlycodeparents/find-the-dependencies

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Find the Dependencies! πŸ”Ž

GUI The repository contains the second assignment of the Concurrent and Distributed Programming course (Master's Degree in CSE @ Unibo).

The project involves designing and developing a library for analyzing class/interface dependencies in a Java codebase, in two different version: based on asynchronous programming (event-loop based) and on reactive programming (GUI-based for visual exploration).

This project consists of two independent parts: an asynchronous library for dependency analysis and a reactive GUI for visualizing dependencies.

The asynchronous library (DependencyAnalyserLib) provides non-blocking methods using Vert.x to analyze Java source files and extract dependencies between classes, interfaces, and packages. It supports:

  • getClassDependencies(file): ClassDepsReport
  • getPackageDependencies(folder): PackageDepsReport
  • getProjectDependencies(projectFolder): ProjectDepsReport

The reactive GUI (based on DependencyAnalyser) uses RxJava to incrementally display dependencies as a dynamic graph. Features include:

  • Folder selection and analysis start button
  • Real-time visualization with zoom/pan
  • Nodes grouped by package, laid out without overlapping
  • Arrows for dependencies
  • Statistics on elements scanned

Parsing is based on JavaParser. For the asynchronous library, a test program is included to demonstrate usage.

Documentation

Within the documentation directory, you will find a concise report (in Italian) detailing all the design and implementation decisions made during the development process. In particular:

  • A brief analysis of the problem.
  • A description of the adopted design, strategy and architecture.
  • An explanation of the system's behaviour, using Petri Nets.

About

πŸ”Ž Asynchronous analysis and reactive visualization of Java project dependencies.

Topics

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages