Code Monkey home page Code Monkey logo

codegraph's Introduction

CodeGraph

A library that analyzes the graph of modules of the application. Based on the dependencies between modules, a Java application builds a graph in which the vertices are modules (modules of JPMS or Maven modules), and the relations between them are dependencies.

Supports two types of modules:

  1. JPMS (Java Platform Module System) modules;
  2. Maven modules.

Analysis of the dependencies of the graph is performed using various graph algorithms, with the help of which various characteristics of the application are calculated:

  1. Obtaining transitive chains;
  2. Determining the shortest path between modules and all available paths between modules;
  3. Determining the bridge dependencies;
  4. Detecting duplicates of classes / packages and conflicts of library versions
  5. Detecting various architectural metrics (abstractness/concreteness of the module, stability of the module, etc).
  6. This allows you to evaluate the quality of the project architecture;
  7. Detecting clusters of the modules.

The analysis can be performed both when assembling the project with Maven, and on an already assembled distribution.

When assembling the project, the analysis is carried out by connecting a specially developed plugin for Maven to your project and configuring it. The plugin can be configured to abort the build if any characteristics of the graph are outside specified limits.

Analysis of an already assembled distribution is carried out either through a console application. The console application, in addition to displaying information about characteristics, can visualize a graph and calculated characteristics using the GraphStream library.

codegraph's People

Contributors

alikjoke avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.