Java Dependencies Analysis
This software reads the byte code of a JAR file and calculates a degree of dependency between another JAR. It is a measure that can be used as a guide to determine a level level of coupling between two JAR files.
1.01 (July 17 2015)
how to use from command line
java -jar deep.jar
- Run it from the command line. The first time it is executed it will create a deep.ini (in the same path as the deep.jar) to setup the paths to jars.
- Edit the deep.ini with the paths to the jar of the source project [source] and the library [library]. The namespace is the threshold from were it search the class to be matched into the source project (e.g. org.apache.commons.logging).
- The first step of the analysis is to identify the public classes (including abstracts and interfaces) and members (fields and methods) of the library.
- Then it searches for references to classes of the library jar in the source jar and displays a Quick Survey Result.
- The thirt step is to build Deep Survey displaying a hierarchical tree visualization in a dependency tree.
- Finally it calculates a Dependency Ratio and outputs the results.
The partial results are this proportions:
- total of referenced class files by the source JAR / total of public class files available at library JAR
- total of referenced concrete classes / total of public concrete classes available (A)
- total of referenced abstract classes / total of public abstract classes available (B)
- total of referenced interfaces / total of public interfaces available (C)
- total of referenced members / total of public members available (D)
The Dependency Ratio(*) is:
( A + B + C + D ) / 4
this work by Robert Martin(*) based on
- Apache BCEL 5.2
- Apache Commons Collections 4.4
- ANTLR 4.5
- Procyon decompiler 0.5.29
- ini4j 0.5.4
Questions, issues or suggestions are welcome at