All Projects → tushartushar → Designitejava

tushartushar / Designitejava

Licence: apache-2.0
Detects smells and computes metrics of Java code

Programming Languages

java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Designitejava

Pwmetrics
Progressive web metrics at your fingertipz
Stars: ✭ 1,243 (+1194.79%)
Mutual labels:  metrics
Influxgraph
Graphite InfluxDB backend. InfluxDB storage finder / plugin for Graphite API.
Stars: ✭ 87 (-9.37%)
Mutual labels:  metrics
Es Stats
ElasticSearch cluster metrics -> Graphite
Stars: ✭ 91 (-5.21%)
Mutual labels:  metrics
Python Prometheus Demo
Demo of using Prometheus for monitoring Python web applications
Stars: ✭ 83 (-13.54%)
Mutual labels:  metrics
Nginx Prometheus Metrics
A production demo to collect prometheus metrics for nginx with lua embedded.
Stars: ✭ 84 (-12.5%)
Mutual labels:  metrics
Understat
An asynchronous Python package for https://understat.com/.
Stars: ✭ 88 (-8.33%)
Mutual labels:  metrics
Tessera
A dashboard front-end for graphite.
Stars: ✭ 1,202 (+1152.08%)
Mutual labels:  metrics
Amon
Amon is a modern server monitoring platform.
Stars: ✭ 1,331 (+1286.46%)
Mutual labels:  metrics
Codecharta
CodeCharta visualizes multiple code metrics using 3D tree maps.
Stars: ✭ 85 (-11.46%)
Mutual labels:  metrics
Ansible Telegraf
Installing and configuring Telegraf via Ansible for RedHat/Debian/Ubuntu/Windows/Suse.
Stars: ✭ 91 (-5.21%)
Mutual labels:  metrics
Hubble
Hubble - Network, Service & Security Observability for Kubernetes using eBPF
Stars: ✭ 1,245 (+1196.88%)
Mutual labels:  metrics
Comevizz
COMEVIZZ is COde MEtrics VIsualiZation with Z-Score.
Stars: ✭ 84 (-12.5%)
Mutual labels:  metrics
Homer App
HOMER 7.x Front-End and API Server
Stars: ✭ 88 (-8.33%)
Mutual labels:  metrics
Beamium
Prometheus to Warp10 metrics forwarder
Stars: ✭ 82 (-14.58%)
Mutual labels:  metrics
Dipstick
Configurable metrics toolkit for Rust applications
Stars: ✭ 92 (-4.17%)
Mutual labels:  metrics
Metrics Cdi
CDI extension for Dropwizard Metrics
Stars: ✭ 76 (-20.83%)
Mutual labels:  metrics
Kamon
Distributed Tracing, Metrics and Context Propagation for application running on the JVM
Stars: ✭ 1,280 (+1233.33%)
Mutual labels:  metrics
Dart Code Metrics
Software analytics tool that helps developers analyse and improve software quality.
Stars: ✭ 96 (+0%)
Mutual labels:  metrics
Django Redis Metrics
Metrics for django apps backed by Redis.
Stars: ✭ 93 (-3.12%)
Mutual labels:  metrics
Filodb
Distributed Prometheus time series database
Stars: ✭ 1,286 (+1239.58%)
Mutual labels:  metrics

QScored rank

DesigniteJava

DesigniteJava is a code quality assessment tool for code written in Java. It detects numerous design and implementation smells. It also computes many commonly used object-oriented metrics.

Features

  • Detects 17 design smells
    • Imperative Abstraction
    • Multifaceted Abstraction
    • Unnecessary Abstraction
    • Unutilized Abstraction
    • Deficient Encapsulation
    • Unexploited Encapsulation
    • Broken Modularization
    • Cyclic-Dependent Modularization
    • Insufficient Modularization
    • Hub-like Modularization
    • Broken Hierarchy
    • Cyclic Hierarchy
    • Deep Hierarchy
    • Missing Hierarchy
    • Multipath Hierarchy
    • Rebellious Hierarchy
    • Wide Hierarchy
  • Detects 10 implementation smells
    • Abstract Function Call From Constructor
    • Complex Conditional
    • Complex Method
    • Empty catch clause
    • Long Identifier
    • Long Method
    • Long Parameter List
    • Long Statement
    • Magic Number
    • Missing default
  • Computes following object-oriented metrics
    • LOC (Lines Of Code - at method and class granularity)
    • CC (Cyclomatic Complexity - Method)
    • PC (Parameter Count - Method)
    • NOF (Number of Fields - Class)
    • NOPF (Number of Public Fields - Class)
    • NOM (Number of Methods - Class)
    • NOPM (Number of Public Methods - Class)
    • WMC (Weighted Methods per Class - Class)
    • NC (Number of Children - Class)
    • DIT (Depth of Inheritance Tree - Class)
    • LCOM (Lack of Cohesion in Methods - Class)
    • FANIN (Fan-in - Class)
    • FANOUT (Fan-out - Class)

Where can I get the latest release?

You may download the executable jar from the Designite website.

Compilation

We use maven to develop and build this application with the help of Eclipse IDE and libraries. To create a runnable jar, run the following command in the directory where the repository is cloned:

mvn clean install

If you use Eclipse:

  • open the project using Eclipse
  • then right-click on the project name and select 'run as > maven install'

Execute the tool

After the previous step is done:

  • Open terminal/command line console and run the jar
  java -jar Designite.jar -i <path of the input source folder> -o <path of the output folder>

Note: Make sure that the output folder is empty. Tool deletes all the existing files in the output folder.

Notes

The implemented LCOM is a custom implementation to avoid the problems of existing LCOM alternatives. Traditional, LCOM value may range only between 0 and 1. However, there are many cases, when computing LCOM is not feasible and traditional implementations give value 0 giving us a false sense of satisfaction. So, when you find -1 as LCOM value for a class, this means we do not have enough information or LCOM is not applicable (for instance, for an interface). More details can be found here (though, it is an old post): http://www.tusharma.in/technical/revisiting-lcom/

Contribute

Feel free to clone/fork/contribute to the DesigniteJava open-source project.

Report Bugs

Open an issue if you encounter a bug in the tool.

Credits

Apart from me, following people generously contributed efforts to this project.

  • Antonis Gkortzis
  • Theodore Stassinopoulos
  • Alexandra Chaniotakis
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].