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 ]

PackageTCCCACCaCeAIDV
org.ajmm.obsearch11385673.0%55.0%27.000002%1
org.ajmm.obsearch.asserts110230.0%60.000004%40.0%1
org.ajmm.obsearch.example111010169.0%100.0%9.0%1
org.ajmm.obsearch.exception13130610.0%14.0%86.0%1
org.ajmm.obsearch.index42271523836.0%95.0%31.0%1
org.ajmm.obsearch.index.pivotselection97211022.0%91.0%13.0%1
org.ajmm.obsearch.index.pptree4221250.0%67.0%17.0%1
org.ajmm.obsearch.index.sync110040.0%100.0%0.0%1
org.ajmm.obsearch.index.utils440370.0%70.0%30.000002%1
org.ajmm.obsearch.ob60653100.0%38.0%38.0%1
org.ajmm.obsearch.query660120.0%67.0%33.0%1
org.ajmm.obsearch.result12120340.0%57.0%43.0%1
org.ajmm.obsearch.util660130.0%75.0%25.0%1

Packages

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

org.ajmm.obsearch

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
5673.0%55.0%27.000002%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.ajmm.obsearch.AbstractOBPriorityQueue
org.ajmm.obsearch.AbstractOBResult
org.ajmm.obsearch.AsynchronousIndex
org.ajmm.obsearch.Index
org.ajmm.obsearch.OB
org.ajmm.obsearch.ParallelIndex
org.ajmm.obsearch.Storable
org.ajmm.obsearch.SynchronizableIndex
org.ajmm.obsearch.Result
org.ajmm.obsearch.Result$Status
org.ajmm.obsearch.TimeStampResult
org.ajmm.obsearch.example
org.ajmm.obsearch.index
org.ajmm.obsearch.index.pivotselection
org.ajmm.obsearch.ob
org.ajmm.obsearch.result
com.sleepycat.bind.tuple
com.sleepycat.je
java.io
java.lang
java.util
org.ajmm.obsearch.exception

org.ajmm.obsearch.asserts

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
230.0%60.000004%40.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.ajmm.obsearch.asserts.OBAsserts
org.ajmm.obsearch.example
org.ajmm.obsearch.index
java.io
java.lang
org.ajmm.obsearch.exception

org.ajmm.obsearch.example

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0169.0%100.0%9.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.ajmm.obsearch.example.SliceParserTokenTypes
org.ajmm.obsearch.example.HelpException
org.ajmm.obsearch.example.OBExampleTrees
org.ajmm.obsearch.example.OBSearchExample
org.ajmm.obsearch.example.OBSlice
org.ajmm.obsearch.example.OBVectorExample
org.ajmm.obsearch.example.SliceAST
org.ajmm.obsearch.example.SliceLexer
org.ajmm.obsearch.example.SliceParseException
org.ajmm.obsearch.example.SliceParser
org.ajmm.obsearch.example.TreePivotable
Noneantlr
antlr.collections
antlr.collections.impl
com.sleepycat.bind.tuple
java.io
java.lang
java.util
org.ajmm.obsearch
org.ajmm.obsearch.asserts
org.ajmm.obsearch.exception
org.ajmm.obsearch.index
org.ajmm.obsearch.index.pivotselection
org.ajmm.obsearch.ob
org.ajmm.obsearch.result
org.apache.commons.cli
org.apache.log4j

org.ajmm.obsearch.exception

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
610.0%14.0%86.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.ajmm.obsearch.exception.AlreadyFrozenException
org.ajmm.obsearch.exception.BoxNotAvailableException
org.ajmm.obsearch.exception.ClusteringFailedException
org.ajmm.obsearch.exception.IllegalIdException
org.ajmm.obsearch.exception.IllegalKException
org.ajmm.obsearch.exception.IndexAlreadyFrozenException
org.ajmm.obsearch.exception.KMeansException
org.ajmm.obsearch.exception.KMeansHungUpException
org.ajmm.obsearch.exception.NotFrozenException
org.ajmm.obsearch.exception.OBException
org.ajmm.obsearch.exception.OutOfRangeException
org.ajmm.obsearch.exception.PivotsUnavailableException
org.ajmm.obsearch.exception.UndefinedPivotsException
org.ajmm.obsearch
org.ajmm.obsearch.asserts
org.ajmm.obsearch.example
org.ajmm.obsearch.index
org.ajmm.obsearch.index.pivotselection
org.ajmm.obsearch.ob
java.lang

org.ajmm.obsearch.index

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
23836.0%95.0%31.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.ajmm.obsearch.index.AbstractExtendedPyramidIndex
org.ajmm.obsearch.index.AbstractP2PIndex
org.ajmm.obsearch.index.AbstractP2PIndex$QueryProcessing
org.ajmm.obsearch.index.AbstractPPTree
org.ajmm.obsearch.index.AbstractParallelIndex
org.ajmm.obsearch.index.AbstractPivotIndex
org.ajmm.obsearch.index.AbstractSynchronizableIndex
org.ajmm.obsearch.index.IndexByte
org.ajmm.obsearch.index.IndexDouble
org.ajmm.obsearch.index.IndexFloat
org.ajmm.obsearch.index.IndexInt
org.ajmm.obsearch.index.IndexLong
org.ajmm.obsearch.index.IndexShort
org.ajmm.obsearch.index.OBCacheLoader
org.ajmm.obsearch.index.PivotSelector
org.ajmm.obsearch.index.AbstractP2PIndex$1
org.ajmm.obsearch.index.AbstractP2PIndex$HeartBeat
org.ajmm.obsearch.index.AbstractP2PIndex$IncomingConnectionHandler
org.ajmm.obsearch.index.AbstractP2PIndex$MessageElementType
org.ajmm.obsearch.index.AbstractP2PIndex$MessageType
org.ajmm.obsearch.index.AbstractP2PIndex$PipeHandler
org.ajmm.obsearch.index.AbstractPivotIndex$1
org.ajmm.obsearch.index.AbstractPivotIndex$ALoader
org.ajmm.obsearch.index.AbstractSynchronizableIndex$TimeStampIterator
org.ajmm.obsearch.index.ExtendedPyramidIndexShort
org.ajmm.obsearch.index.IndexFactory
org.ajmm.obsearch.index.OBCache
org.ajmm.obsearch.index.P2PIndexShort
org.ajmm.obsearch.index.P2PIndexShort$QueryProcessingShort
org.ajmm.obsearch.index.PPTreeShort
org.ajmm.obsearch.index.PPTreeShort$1
org.ajmm.obsearch.index.PPTreeShort$BLoader
org.ajmm.obsearch.index.ParallelIndexShort
org.ajmm.obsearch.index.ParallelIndexShort$1
org.ajmm.obsearch.index.ParallelIndexShort$Matcher
org.ajmm.obsearch.index.SynchronizableIndexShort
org.ajmm.obsearch.index.UnsafeNCorePPTreeShort
org.ajmm.obsearch.index.UnsafeNCorePPTreeShort$1
org.ajmm.obsearch.index.UnsafeNCorePPTreeShort$DistanceCalculation
org.ajmm.obsearch.index.UnsafeNCorePPTreeShort$DistanceEvaluation
org.ajmm.obsearch.index.UnsafeNCorePPTreeShort$PivotTupleCalculation
org.ajmm.obsearch.index.UnsafePPTreeShort
org.ajmm.obsearch.example
org.ajmm.obsearch.index.pivotselection
cern.colt.list
cern.colt.map
cern.jet.random.engine
com.sleepycat.bind.tuple
com.sleepycat.je
com.thoughtworks.xstream
gnu.trove
hep.aida.bin
java.io
java.lang
java.lang.ref
java.lang.reflect
java.net
java.util
java.util.concurrent
java.util.concurrent.atomic
net.jxta.discovery
net.jxta.document
net.jxta.endpoint
net.jxta.exception
net.jxta.id
net.jxta.peer
net.jxta.peergroup
net.jxta.pipe
net.jxta.platform
net.jxta.protocol
net.jxta.util
org.ajmm.obsearch
org.ajmm.obsearch.asserts
org.ajmm.obsearch.exception
org.ajmm.obsearch.index.pptree
org.ajmm.obsearch.index.utils
org.ajmm.obsearch.ob
org.ajmm.obsearch.query
org.ajmm.obsearch.result
org.ajmm.obsearch.util
org.apache.log4j
sun.misc

org.ajmm.obsearch.index.pivotselection

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
11022.0%91.0%13.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.ajmm.obsearch.index.pivotselection.AbstractTentaclePivotSelector
org.ajmm.obsearch.index.pivotselection.Pivotable
org.ajmm.obsearch.index.pivotselection.AcceptAll
org.ajmm.obsearch.index.pivotselection.DummyPivotSelector
org.ajmm.obsearch.index.pivotselection.FixedPivotSelector
org.ajmm.obsearch.index.pivotselection.KMeansPPPivotSelector
org.ajmm.obsearch.index.pivotselection.RandomPivotSelector
org.ajmm.obsearch.index.pivotselection.TentaclePivotSelectorShort
org.ajmm.obsearch.index.pivotselection.TentaclePivotSelectorShort$DResult
org.ajmm.obsearch.example
com.sleepycat.je
hep.aida.bin
java.lang
java.util
org.ajmm.obsearch
org.ajmm.obsearch.exception
org.ajmm.obsearch.index
org.ajmm.obsearch.index.utils
org.ajmm.obsearch.ob
org.apache.log4j

org.ajmm.obsearch.index.pptree

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1250.0%67.0%17.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.ajmm.obsearch.index.pptree.AbstractSpaceTreeNode
org.ajmm.obsearch.index.pptree.SpaceTree
org.ajmm.obsearch.index.pptree.SpaceTreeLeaf
org.ajmm.obsearch.index.pptree.SpaceTreeNode
org.ajmm.obsearch.index
java.lang
java.util

org.ajmm.obsearch.index.sync

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
040.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.ajmm.obsearch.index.sync.IntLongComparator
Nonecom.sleepycat.bind.tuple
java.io
java.lang
java.util

org.ajmm.obsearch.index.utils

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
370.0%70.0%30.000002%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.ajmm.obsearch.index.utils.AbstractUnsafeArrayHandler
org.ajmm.obsearch.index.utils.Directory
org.ajmm.obsearch.index.utils.MyTupleInput
org.ajmm.obsearch.index.utils.OBRandom
org.ajmm.obsearch.index
org.ajmm.obsearch.index.pivotselection
org.ajmm.obsearch.util
cern.jet.random.engine
com.sleepycat.bind.tuple
java.io
java.lang
java.lang.reflect
java.util
sun.misc

org.ajmm.obsearch.ob

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
53100.0%38.0%38.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.ajmm.obsearch.ob.OBByte
org.ajmm.obsearch.ob.OBDouble
org.ajmm.obsearch.ob.OBFloat
org.ajmm.obsearch.ob.OBInt
org.ajmm.obsearch.ob.OBLong
org.ajmm.obsearch.ob.OBShort
Noneorg.ajmm.obsearch.example
org.ajmm.obsearch.index
org.ajmm.obsearch.index.pivotselection
org.ajmm.obsearch.query
org.ajmm.obsearch.result
java.lang
org.ajmm.obsearch
org.ajmm.obsearch.exception

org.ajmm.obsearch.query

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
120.0%67.0%33.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.ajmm.obsearch.query.OBQueryByte
org.ajmm.obsearch.query.OBQueryDouble
org.ajmm.obsearch.query.OBQueryFloat
org.ajmm.obsearch.query.OBQueryInt
org.ajmm.obsearch.query.OBQueryLong
org.ajmm.obsearch.query.OBQueryShort
org.ajmm.obsearch.index
org.ajmm.obsearch.ob
org.ajmm.obsearch.result

org.ajmm.obsearch.result

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
340.0%57.0%43.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.ajmm.obsearch.result.OBPriorityQueueByte
org.ajmm.obsearch.result.OBPriorityQueueDouble
org.ajmm.obsearch.result.OBPriorityQueueFloat
org.ajmm.obsearch.result.OBPriorityQueueInt
org.ajmm.obsearch.result.OBPriorityQueueLong
org.ajmm.obsearch.result.OBPriorityQueueShort
org.ajmm.obsearch.result.OBResultByte
org.ajmm.obsearch.result.OBResultDouble
org.ajmm.obsearch.result.OBResultFloat
org.ajmm.obsearch.result.OBResultInt
org.ajmm.obsearch.result.OBResultLong
org.ajmm.obsearch.result.OBResultShort
org.ajmm.obsearch.example
org.ajmm.obsearch.index
org.ajmm.obsearch.query
java.lang
java.util
org.ajmm.obsearch
org.ajmm.obsearch.ob

org.ajmm.obsearch.util

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
130.0%75.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.ajmm.obsearch.util.UnsafeArrayHandlerByte
org.ajmm.obsearch.util.UnsafeArrayHandlerDouble
org.ajmm.obsearch.util.UnsafeArrayHandlerFloat
org.ajmm.obsearch.util.UnsafeArrayHandlerInt
org.ajmm.obsearch.util.UnsafeArrayHandlerLong
org.ajmm.obsearch.util.UnsafeArrayHandlerShort
org.ajmm.obsearch.index
java.lang
org.ajmm.obsearch.index.utils
sun.misc

Cycles

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

There are no cyclic dependencies.

Explanation

[ 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.