Metric Results

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

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

Summary

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

Package TC CC AC Ca Ce A I D V
org.codehaus.wadi.aop 1 0 1 5 2 100.0% 29.0% 29.0% 1
org.codehaus.wadi.aop.annotation 3 1 2 2 2 67.0% 50.0% 17.0% 1
org.codehaus.wadi.aop.aspectj 2 2 0 1 10 0.0% 91.0% 9.0% 1
org.codehaus.wadi.aop.reflect 1 1 0 1 5 0.0% 83.0% 17.0% 1
org.codehaus.wadi.aop.replication 11 11 0 0 23 0.0% 100.0% 0.0% 1
org.codehaus.wadi.aop.tracker 9 3 6 6 7 67.0% 54.000004% 21.0% 1
org.codehaus.wadi.aop.tracker.basic 27 21 6 4 11 22.0% 73.0% 4.0% 1
org.codehaus.wadi.aop.tracker.visitor 9 8 1 3 4 11.0% 57.0% 32.0% 1
org.codehaus.wadi.aop.util 2 2 0 1 6 0.0% 86.0% 14.0% 1

Packages

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

org.codehaus.wadi.aop

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 2 100.0% 29.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.codehaus.wadi.aop.ClusteredStateMarker
None org.codehaus.wadi.aop.aspectj
org.codehaus.wadi.aop.replication
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop.tracker.basic
org.codehaus.wadi.aop.util
java.lang
org.codehaus.wadi.aop.tracker

org.codehaus.wadi.aop.annotation

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 2 67.0% 50.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.codehaus.wadi.aop.annotation.ClusteredState
org.codehaus.wadi.aop.annotation.TrackedMethod
org.codehaus.wadi.aop.annotation.TrackingLevel
org.codehaus.wadi.aop.aspectj
org.codehaus.wadi.aop.reflect
java.lang
java.lang.annotation

org.codehaus.wadi.aop.aspectj

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 10 0.0% 91.0% 9.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.codehaus.wadi.aop.aspectj.ClusteredStateAspect
org.codehaus.wadi.aop.aspectj.ClusteredStateAspectUtil
org.codehaus.wadi.aop.replication
java.lang
java.lang.reflect
java.util
org.apache.commons.logging
org.aspectj.lang
org.aspectj.lang.reflect
org.aspectj.runtime.internal
org.codehaus.wadi.aop
org.codehaus.wadi.aop.annotation
org.codehaus.wadi.aop.tracker

org.codehaus.wadi.aop.reflect

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 0.0% 83.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.codehaus.wadi.aop.reflect.ClusteredStateMemberFilter
org.codehaus.wadi.aop.replication
java.lang
java.lang.reflect
java.util
org.codehaus.wadi.aop.annotation
org.codehaus.wadi.core.reflect.base

org.codehaus.wadi.aop.replication

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 23 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.codehaus.wadi.aop.replication.AOPStackContext
org.codehaus.wadi.aop.replication.ClusteredStateAttributes
org.codehaus.wadi.aop.replication.ClusteredStateAttributesFactory
org.codehaus.wadi.aop.replication.ClusteredStateAttributesMemento
org.codehaus.wadi.aop.replication.ClusteredStateSession
org.codehaus.wadi.aop.replication.ClusteredStateSessionFactory
org.codehaus.wadi.aop.replication.ClusteredStateSessionMemento
org.codehaus.wadi.aop.replication.DeltaStateHandler
org.codehaus.wadi.aop.replication.FullStateExternalizable
org.codehaus.wadi.aop.replication.RestoreStateExternalizable
org.codehaus.wadi.aop.replication.UpdatedStateExternalizable
None java.io
java.lang
java.util
org.codehaus.wadi.aop
org.codehaus.wadi.aop.aspectj
org.codehaus.wadi.aop.reflect
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop.tracker.basic
org.codehaus.wadi.aop.util
org.codehaus.wadi.core
org.codehaus.wadi.core.assembler
org.codehaus.wadi.core.eviction
org.codehaus.wadi.core.manager
org.codehaus.wadi.core.motable
org.codehaus.wadi.core.reflect
org.codehaus.wadi.core.reflect.jdk
org.codehaus.wadi.core.session
org.codehaus.wadi.core.util
org.codehaus.wadi.group
org.codehaus.wadi.replication.manager
org.codehaus.wadi.replication.manager.basic
org.codehaus.wadi.replication.strategy
org.codehaus.wadi.servicespace

org.codehaus.wadi.aop.tracker

Afferent Couplings Efferent Couplings Abstractness Instability Distance
6 7 67.0% 54.000004% 21.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.codehaus.wadi.aop.tracker.InstanceIdFactory
org.codehaus.wadi.aop.tracker.InstanceRegistry
org.codehaus.wadi.aop.tracker.InstanceTracker
org.codehaus.wadi.aop.tracker.InstanceTrackerFactory
org.codehaus.wadi.aop.tracker.InstanceTrackerVisitor
org.codehaus.wadi.aop.tracker.VisitorContext
org.codehaus.wadi.aop.tracker.InstanceRegistryException
org.codehaus.wadi.aop.tracker.InstanceTrackerException
org.codehaus.wadi.aop.tracker.NoOpInstanceTrackerVisitor
org.codehaus.wadi.aop
org.codehaus.wadi.aop.aspectj
org.codehaus.wadi.aop.replication
org.codehaus.wadi.aop.tracker.basic
org.codehaus.wadi.aop.tracker.visitor
org.codehaus.wadi.aop.util
java.io
java.lang
java.lang.reflect
org.codehaus.wadi.aop
org.codehaus.wadi.aop.tracker.basic
org.codehaus.wadi.aop.tracker.visitor
org.codehaus.wadi.core.reflect

org.codehaus.wadi.aop.tracker.basic

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 11 22.0% 73.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.codehaus.wadi.aop.tracker.basic.AbstractReplacer
org.codehaus.wadi.aop.tracker.basic.AbstractReplacer$Replacer
org.codehaus.wadi.aop.tracker.basic.BasicInstanceTracker$VisitAction
org.codehaus.wadi.aop.tracker.basic.InstanceAndTrackerReplacer
org.codehaus.wadi.aop.tracker.basic.ValueUpdater
org.codehaus.wadi.aop.tracker.basic.WireMarshaller
org.codehaus.wadi.aop.tracker.basic.AbstractReplacer$1
org.codehaus.wadi.aop.tracker.basic.AbstractReplacer$2
org.codehaus.wadi.aop.tracker.basic.ArrayReplacer
org.codehaus.wadi.aop.tracker.basic.BasicInstanceIdFactory
org.codehaus.wadi.aop.tracker.basic.BasicInstanceRegistry
org.codehaus.wadi.aop.tracker.basic.BasicInstanceRegistry$WeakReferenceWithMapKey
org.codehaus.wadi.aop.tracker.basic.BasicInstanceTracker
org.codehaus.wadi.aop.tracker.basic.BasicInstanceTracker$1
org.codehaus.wadi.aop.tracker.basic.BasicInstanceTracker$2
org.codehaus.wadi.aop.tracker.basic.BasicInstanceTracker$3
org.codehaus.wadi.aop.tracker.basic.BasicInstanceTrackerFactory
org.codehaus.wadi.aop.tracker.basic.BasicWireMarshaller
org.codehaus.wadi.aop.tracker.basic.ClusteredStateMarkerReplacer
org.codehaus.wadi.aop.tracker.basic.CollectionReplacer
org.codehaus.wadi.aop.tracker.basic.CompoundReplacer
org.codehaus.wadi.aop.tracker.basic.ConstructorInfo
org.codehaus.wadi.aop.tracker.basic.FieldInfo
org.codehaus.wadi.aop.tracker.basic.InFlyInstanceRegistry
org.codehaus.wadi.aop.tracker.basic.MapReplacer
org.codehaus.wadi.aop.tracker.basic.MethodInfo
org.codehaus.wadi.aop.tracker.basic.ValueUpdaterInfo
org.codehaus.wadi.aop.replication
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop.tracker.visitor
org.codehaus.wadi.aop.util
java.io
java.lang
java.lang.ref
java.lang.reflect
java.util
org.codehaus.wadi.aop
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop.tracker.visitor
org.codehaus.wadi.core
org.codehaus.wadi.core.reflect
org.codehaus.wadi.core.util

org.codehaus.wadi.aop.tracker.visitor

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 4 11.0% 57.0% 32.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.codehaus.wadi.aop.tracker.visitor.AbstractVisitor
org.codehaus.wadi.aop.tracker.visitor.BaseVisitorContext
org.codehaus.wadi.aop.tracker.visitor.CopyFullStateVisitor
org.codehaus.wadi.aop.tracker.visitor.CopyStateVisitor
org.codehaus.wadi.aop.tracker.visitor.CopyStateVisitor$CopyStateVisitorContext
org.codehaus.wadi.aop.tracker.visitor.RegisterTrackingVisitor
org.codehaus.wadi.aop.tracker.visitor.ResetTrackingVisitor
org.codehaus.wadi.aop.tracker.visitor.SetInstanceIdVisitor
org.codehaus.wadi.aop.tracker.visitor.UnregisterTrackingVisitor
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop.tracker.basic
org.codehaus.wadi.aop.util
java.lang
java.util
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop.tracker.basic

org.codehaus.wadi.aop.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 0.0% 86.0% 14.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.codehaus.wadi.aop.util.ClusteredStateHelper
org.codehaus.wadi.aop.util.TrackedMap
org.codehaus.wadi.aop.replication
java.lang
java.util
org.codehaus.wadi.aop
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop.tracker.basic
org.codehaus.wadi.aop.tracker.visitor

Cycles

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

Package Package Dependencies
org.codehaus.wadi.aop org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop
org.codehaus.wadi.aop.aspectj org.codehaus.wadi.aop
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop
org.codehaus.wadi.aop.replication org.codehaus.wadi.aop.tracker.basic
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop.tracker org.codehaus.wadi.aop
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop.tracker.basic org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop.tracker.visitor org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop.util org.codehaus.wadi.aop
org.codehaus.wadi.aop.tracker
org.codehaus.wadi.aop

Explanation

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

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

Term Description
Number of Classes The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.
Afferent Couplings The number of other packages that depend upon classes within the package is an indicator of the package's responsibility.
Efferent Couplings The number of other packages that the classes in the package depend upon is an indicator of the package's independence.
Abstractness The 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.
Instability The 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.
Distance The 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.
Cycles Packages 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.