Metric Results

[ summary] [ packages] [ cycles] [ explanations]

The following document contains the results of a JDependmetric analysis. The various metrics are defined at the bottom of this document.

Summary

[ summary] [ packages] [ cycles] [ explanations]

Package TC AC CC AC EC A I D
org.codehaus.aspectwerkz 404812060%40%
org.codehaus.aspectwerkz.annotation 194158230,2174%5%
org.codehaus.aspectwerkz.annotation.expression 40419090%10%
org.codehaus.aspectwerkz.annotation.expression.ast 27423130,1575%10%
org.codehaus.aspectwerkz.annotation.instrumentation 11023160%60%
org.codehaus.aspectwerkz.annotation.instrumentation.asm 171164150,0679%15%
org.codehaus.aspectwerkz.aspect 9549100,5653%8%
org.codehaus.aspectwerkz.aspect.management 5141110,292%12%
org.codehaus.aspectwerkz.cflow 7164110,1473%12%
org.codehaus.aspectwerkz.compiler 5050200100%0%
org.codehaus.aspectwerkz.connectivity 716080,14100%14%
org.codehaus.aspectwerkz.definition 180181422061%39%
org.codehaus.aspectwerkz.exception 404162011%89%
org.codehaus.aspectwerkz.expression 1311214150,0852%41%
org.codehaus.aspectwerkz.expression.ast 44440350,0962%28%
org.codehaus.aspectwerkz.expression.regexp 312470,3364%3%
org.codehaus.aspectwerkz.hook 1239390,2575%0%
org.codehaus.aspectwerkz.hook.impl 10010210083%17%
org.codehaus.aspectwerkz.intercept 8712100,8883%71%
org.codehaus.aspectwerkz.joinpoint 1717036167%67%
org.codehaus.aspectwerkz.joinpoint.impl 1201218089%11%
org.codehaus.aspectwerkz.joinpoint.management 505616073%27%
org.codehaus.aspectwerkz.proxy 404114093%7%
org.codehaus.aspectwerkz.reflect 1771016100,4138%20%
org.codehaus.aspectwerkz.reflect.impl.asm 1211111140,0856%36%
org.codehaus.aspectwerkz.reflect.impl.java 615780,1753%30%
org.codehaus.aspectwerkz.transform 9457100,4459%3%
org.codehaus.aspectwerkz.transform.inlining 9091421060%40%
org.codehaus.aspectwerkz.transform.inlining.compiler 221213180,0586%10%
org.codehaus.aspectwerkz.transform.inlining.deployer 8170170,12100%12%
org.codehaus.aspectwerkz.transform.inlining.spi 312350,3362%4%
org.codehaus.aspectwerkz.transform.inlining.weaver 421411160,0294%4%
org.codehaus.aspectwerkz.util 16016159038%62%

Packages

[ summary] [ packages] [ cycles] [ explanations]

org.codehaus.aspectwerkz.annotation

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
82321%74%5%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages

org.codehaus.aspectwerkz.annotation.instrumentation

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
23100%60%60%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None

org.codehaus.aspectwerkz.connectivity

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0814%100%14%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None

org.codehaus.aspectwerkz.definition

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
14220%61%39%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None

org.codehaus.aspectwerkz.transform.inlining

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
14210%60%40%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None

org.codehaus.aspectwerkz.transform.inlining.compiler

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
3185%86%10%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages

org.codehaus.aspectwerkz.transform.inlining.weaver

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1162%94%4%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages

Cycles

[ summary] [ packages] [ cycles] [ explanations]

PackageCyclic Dependencies
org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
org.codehaus.aspectwerkz.annotation
  • org.codehaus.aspectwerkz.annotation.instrumentation.asm
  • org.codehaus.aspectwerkz.annotation
org.codehaus.aspectwerkz.annotation.expression
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
org.codehaus.aspectwerkz.annotation.instrumentation.asm
  • org.codehaus.aspectwerkz.annotation
  • org.codehaus.aspectwerkz.annotation.instrumentation.asm
org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
org.codehaus.aspectwerkz.cflow
  • org.codehaus.aspectwerkz.expression.ast
  • org.codehaus.aspectwerkz.expression.regexp
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
org.codehaus.aspectwerkz.compiler
  • org.codehaus.aspectwerkz.joinpoint.management
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
org.codehaus.aspectwerkz.connectivity
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
org.codehaus.aspectwerkz.definition
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
org.codehaus.aspectwerkz.expression
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
org.codehaus.aspectwerkz.expression.ast
  • org.codehaus.aspectwerkz.expression.regexp
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
org.codehaus.aspectwerkz.expression.regexp
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
org.codehaus.aspectwerkz.intercept
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
org.codehaus.aspectwerkz.joinpoint
  • org.codehaus.aspectwerkz.joinpoint.management
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
org.codehaus.aspectwerkz.joinpoint.impl
  • org.codehaus.aspectwerkz.joinpoint
  • org.codehaus.aspectwerkz.joinpoint.management
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
org.codehaus.aspectwerkz.joinpoint.management
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
org.codehaus.aspectwerkz.proxy
  • org.codehaus.aspectwerkz.intercept
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
org.codehaus.aspectwerkz.reflect.impl.java
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
org.codehaus.aspectwerkz.transform
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
org.codehaus.aspectwerkz.transform.inlining.compiler
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
org.codehaus.aspectwerkz.transform.inlining.deployer
  • org.codehaus.aspectwerkz.transform.inlining.compiler
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
org.codehaus.aspectwerkz.transform.inlining.spi
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
org.codehaus.aspectwerkz.transform.inlining.weaver
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
org.codehaus.aspectwerkz.util
  • org.codehaus.aspectwerkz.reflect
  • org.codehaus.aspectwerkz.reflect.impl.asm
  • org.codehaus.aspectwerkz.transform.inlining
  • org.codehaus.aspectwerkz.aspect
  • org.codehaus.aspectwerkz
  • org.codehaus.aspectwerkz.aspect.management
  • org.codehaus.aspectwerkz.util

Explanations

[ summary] [ packages] [ cycles] [ explanations]

The following explanations are for quick reference and are lifted directly from the original JDepend documentation.

TermDescription
Number of ClassesThe number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.
Afferent CouplingsThe number of other packages that depend upon classes within the package is an indicator of the package's responsibility.
Efferent CouplingsThe number of other packages that the classes in the package depend upon is an indicator of the package's independence.
AbstractnessThe ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package.
InstabilityThe ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely instable package.
DistanceThe perpendicular distance of a package from the idealized line A + I = 1. This metric is an indicator of the package's balance between abstractness and stability. A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible.
CyclesPackages participating in a package dependency cycle are in a deadly embrace with respect to reusability and their release cycle. Package dependency cycles can be easily identified by reviewing the textual reports of dependency cycles. Once these dependency cycles have been identified with JDepend, they can be broken by employing various object-oriented techniques.