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.apache.commons.collections.primitives9850483449.0%57.0%6.0%1
org.apache.commons.collections.primitives.adapters12997320525.0%100.0%25.0%1
org.apache.commons.collections.primitives.adapters.io440040.0%100.0%0.0%1
org.apache.commons.collections.primitives.decorators6328351356.0%75.0%31.0%1

Packages

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

org.apache.commons.collections.primitives

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
3449.0%57.0%6.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.commons.collections.primitives.AbstractBooleanCollection
org.apache.commons.collections.primitives.AbstractByteCollection
org.apache.commons.collections.primitives.AbstractCharCollection
org.apache.commons.collections.primitives.AbstractDoubleCollection
org.apache.commons.collections.primitives.AbstractFloatCollection
org.apache.commons.collections.primitives.AbstractIntCollection
org.apache.commons.collections.primitives.AbstractLongCollection
org.apache.commons.collections.primitives.AbstractShortCollection
org.apache.commons.collections.primitives.BooleanCollection
org.apache.commons.collections.primitives.BooleanIterator
org.apache.commons.collections.primitives.BooleanList
org.apache.commons.collections.primitives.BooleanListIterator
org.apache.commons.collections.primitives.ByteCollection
org.apache.commons.collections.primitives.ByteIterator
org.apache.commons.collections.primitives.ByteList
org.apache.commons.collections.primitives.ByteListIterator
org.apache.commons.collections.primitives.CharCollection
org.apache.commons.collections.primitives.CharIterator
org.apache.commons.collections.primitives.CharList
org.apache.commons.collections.primitives.CharListIterator
org.apache.commons.collections.primitives.DoubleCollection
org.apache.commons.collections.primitives.DoubleIterator
org.apache.commons.collections.primitives.DoubleList
org.apache.commons.collections.primitives.DoubleListIterator
org.apache.commons.collections.primitives.FloatCollection
org.apache.commons.collections.primitives.FloatIterator
org.apache.commons.collections.primitives.FloatList
org.apache.commons.collections.primitives.FloatListIterator
org.apache.commons.collections.primitives.IntCollection
org.apache.commons.collections.primitives.IntIterator
org.apache.commons.collections.primitives.IntList
org.apache.commons.collections.primitives.IntListIterator
org.apache.commons.collections.primitives.LongCollection
org.apache.commons.collections.primitives.LongIterator
org.apache.commons.collections.primitives.LongList
org.apache.commons.collections.primitives.LongListIterator
org.apache.commons.collections.primitives.RandomAccessBooleanList
org.apache.commons.collections.primitives.RandomAccessByteList
org.apache.commons.collections.primitives.RandomAccessCharList
org.apache.commons.collections.primitives.RandomAccessDoubleList
org.apache.commons.collections.primitives.RandomAccessFloatList
org.apache.commons.collections.primitives.RandomAccessIntList
org.apache.commons.collections.primitives.RandomAccessLongList
org.apache.commons.collections.primitives.RandomAccessShortList
org.apache.commons.collections.primitives.ShortCollection
org.apache.commons.collections.primitives.ShortIterator
org.apache.commons.collections.primitives.ShortList
org.apache.commons.collections.primitives.ShortListIterator
org.apache.commons.collections.primitives.ArrayBooleanList
org.apache.commons.collections.primitives.ArrayByteList
org.apache.commons.collections.primitives.ArrayCharList
org.apache.commons.collections.primitives.ArrayDoubleList
org.apache.commons.collections.primitives.ArrayFloatList
org.apache.commons.collections.primitives.ArrayIntList
org.apache.commons.collections.primitives.ArrayLongList
org.apache.commons.collections.primitives.ArrayShortList
org.apache.commons.collections.primitives.ArrayUnsignedByteList
org.apache.commons.collections.primitives.ArrayUnsignedIntList
org.apache.commons.collections.primitives.ArrayUnsignedShortList
org.apache.commons.collections.primitives.BooleanStack
org.apache.commons.collections.primitives.ByteCollections
org.apache.commons.collections.primitives.ByteStack
org.apache.commons.collections.primitives.CharCollections
org.apache.commons.collections.primitives.CharStack
org.apache.commons.collections.primitives.DoubleCollections
org.apache.commons.collections.primitives.DoubleStack
org.apache.commons.collections.primitives.FloatCollections
org.apache.commons.collections.primitives.FloatStack
org.apache.commons.collections.primitives.IntCollections
org.apache.commons.collections.primitives.IntStack
org.apache.commons.collections.primitives.LongCollections
org.apache.commons.collections.primitives.LongStack
org.apache.commons.collections.primitives.RandomAccessBooleanList$ComodChecker
org.apache.commons.collections.primitives.RandomAccessBooleanList$RandomAccessBooleanListIterator
org.apache.commons.collections.primitives.RandomAccessBooleanList$RandomAccessBooleanSubList
org.apache.commons.collections.primitives.RandomAccessByteList$ComodChecker
org.apache.commons.collections.primitives.RandomAccessByteList$RandomAccessByteListIterator
org.apache.commons.collections.primitives.RandomAccessByteList$RandomAccessByteSubList
org.apache.commons.collections.primitives.RandomAccessCharList$ComodChecker
org.apache.commons.collections.primitives.RandomAccessCharList$RandomAccessCharListIterator
org.apache.commons.collections.primitives.RandomAccessCharList$RandomAccessCharSubList
org.apache.commons.collections.primitives.RandomAccessDoubleList$ComodChecker
org.apache.commons.collections.primitives.RandomAccessDoubleList$RandomAccessDoubleListIterator
org.apache.commons.collections.primitives.RandomAccessDoubleList$RandomAccessDoubleSubList
org.apache.commons.collections.primitives.RandomAccessFloatList$ComodChecker
org.apache.commons.collections.primitives.RandomAccessFloatList$RandomAccessFloatListIterator
org.apache.commons.collections.primitives.RandomAccessFloatList$RandomAccessFloatSubList
org.apache.commons.collections.primitives.RandomAccessIntList$ComodChecker
org.apache.commons.collections.primitives.RandomAccessIntList$RandomAccessIntListIterator
org.apache.commons.collections.primitives.RandomAccessIntList$RandomAccessIntSubList
org.apache.commons.collections.primitives.RandomAccessLongList$ComodChecker
org.apache.commons.collections.primitives.RandomAccessLongList$RandomAccessLongListIterator
org.apache.commons.collections.primitives.RandomAccessLongList$RandomAccessLongSubList
org.apache.commons.collections.primitives.RandomAccessShortList$ComodChecker
org.apache.commons.collections.primitives.RandomAccessShortList$RandomAccessShortListIterator
org.apache.commons.collections.primitives.RandomAccessShortList$RandomAccessShortSubList
org.apache.commons.collections.primitives.ShortCollections
org.apache.commons.collections.primitives.ShortStack
org.apache.commons.collections.primitives.adapters
org.apache.commons.collections.primitives.adapters.io
org.apache.commons.collections.primitives.decorators
java.io
java.lang
java.util
org.apache.commons.collections.primitives.decorators

org.apache.commons.collections.primitives.adapters

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0525.0%100.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.commons.collections.primitives.adapters.AbstractBooleanCollectionCollection
org.apache.commons.collections.primitives.adapters.AbstractBooleanListList
org.apache.commons.collections.primitives.adapters.AbstractByteCollectionCollection
org.apache.commons.collections.primitives.adapters.AbstractByteListList
org.apache.commons.collections.primitives.adapters.AbstractCharCollectionCollection
org.apache.commons.collections.primitives.adapters.AbstractCharListList
org.apache.commons.collections.primitives.adapters.AbstractCollectionBooleanCollection
org.apache.commons.collections.primitives.adapters.AbstractCollectionByteCollection
org.apache.commons.collections.primitives.adapters.AbstractCollectionCharCollection
org.apache.commons.collections.primitives.adapters.AbstractCollectionDoubleCollection
org.apache.commons.collections.primitives.adapters.AbstractCollectionFloatCollection
org.apache.commons.collections.primitives.adapters.AbstractCollectionIntCollection
org.apache.commons.collections.primitives.adapters.AbstractCollectionLongCollection
org.apache.commons.collections.primitives.adapters.AbstractCollectionShortCollection
org.apache.commons.collections.primitives.adapters.AbstractDoubleCollectionCollection
org.apache.commons.collections.primitives.adapters.AbstractDoubleListList
org.apache.commons.collections.primitives.adapters.AbstractFloatCollectionCollection
org.apache.commons.collections.primitives.adapters.AbstractFloatListList
org.apache.commons.collections.primitives.adapters.AbstractIntCollectionCollection
org.apache.commons.collections.primitives.adapters.AbstractIntListList
org.apache.commons.collections.primitives.adapters.AbstractListBooleanList
org.apache.commons.collections.primitives.adapters.AbstractListByteList
org.apache.commons.collections.primitives.adapters.AbstractListCharList
org.apache.commons.collections.primitives.adapters.AbstractListDoubleList
org.apache.commons.collections.primitives.adapters.AbstractListFloatList
org.apache.commons.collections.primitives.adapters.AbstractListIntList
org.apache.commons.collections.primitives.adapters.AbstractListLongList
org.apache.commons.collections.primitives.adapters.AbstractListShortList
org.apache.commons.collections.primitives.adapters.AbstractLongCollectionCollection
org.apache.commons.collections.primitives.adapters.AbstractLongListList
org.apache.commons.collections.primitives.adapters.AbstractShortCollectionCollection
org.apache.commons.collections.primitives.adapters.AbstractShortListList
org.apache.commons.collections.primitives.adapters.Adapt
org.apache.commons.collections.primitives.adapters.BooleanCollectionCollection
org.apache.commons.collections.primitives.adapters.BooleanIteratorIterator
org.apache.commons.collections.primitives.adapters.BooleanListIteratorListIterator
org.apache.commons.collections.primitives.adapters.BooleanListList
org.apache.commons.collections.primitives.adapters.ByteCollectionCollection
org.apache.commons.collections.primitives.adapters.ByteIteratorIterator
org.apache.commons.collections.primitives.adapters.ByteListIteratorListIterator
org.apache.commons.collections.primitives.adapters.ByteListList
org.apache.commons.collections.primitives.adapters.CharCollectionCollection
org.apache.commons.collections.primitives.adapters.CharIteratorIterator
org.apache.commons.collections.primitives.adapters.CharListIteratorListIterator
org.apache.commons.collections.primitives.adapters.CharListList
org.apache.commons.collections.primitives.adapters.CollectionBooleanCollection
org.apache.commons.collections.primitives.adapters.CollectionByteCollection
org.apache.commons.collections.primitives.adapters.CollectionCharCollection
org.apache.commons.collections.primitives.adapters.CollectionDoubleCollection
org.apache.commons.collections.primitives.adapters.CollectionFloatCollection
org.apache.commons.collections.primitives.adapters.CollectionIntCollection
org.apache.commons.collections.primitives.adapters.CollectionLongCollection
org.apache.commons.collections.primitives.adapters.CollectionShortCollection
org.apache.commons.collections.primitives.adapters.DoubleCollectionCollection
org.apache.commons.collections.primitives.adapters.DoubleIteratorIterator
org.apache.commons.collections.primitives.adapters.DoubleListIteratorListIterator
org.apache.commons.collections.primitives.adapters.DoubleListList
org.apache.commons.collections.primitives.adapters.FloatCollectionCollection
org.apache.commons.collections.primitives.adapters.FloatIteratorIterator
org.apache.commons.collections.primitives.adapters.FloatListIteratorListIterator
org.apache.commons.collections.primitives.adapters.FloatListList
org.apache.commons.collections.primitives.adapters.IntCollectionCollection
org.apache.commons.collections.primitives.adapters.IntIteratorIterator
org.apache.commons.collections.primitives.adapters.IntListIteratorListIterator
org.apache.commons.collections.primitives.adapters.IntListList
org.apache.commons.collections.primitives.adapters.IteratorBooleanIterator
org.apache.commons.collections.primitives.adapters.IteratorByteIterator
org.apache.commons.collections.primitives.adapters.IteratorCharIterator
org.apache.commons.collections.primitives.adapters.IteratorDoubleIterator
org.apache.commons.collections.primitives.adapters.IteratorFloatIterator
org.apache.commons.collections.primitives.adapters.IteratorIntIterator
org.apache.commons.collections.primitives.adapters.IteratorLongIterator
org.apache.commons.collections.primitives.adapters.IteratorShortIterator
org.apache.commons.collections.primitives.adapters.ListBooleanList
org.apache.commons.collections.primitives.adapters.ListByteList
org.apache.commons.collections.primitives.adapters.ListCharList
org.apache.commons.collections.primitives.adapters.ListDoubleList
org.apache.commons.collections.primitives.adapters.ListFloatList
org.apache.commons.collections.primitives.adapters.ListIntList
org.apache.commons.collections.primitives.adapters.ListIteratorBooleanListIterator
org.apache.commons.collections.primitives.adapters.ListIteratorByteListIterator
org.apache.commons.collections.primitives.adapters.ListIteratorCharListIterator
org.apache.commons.collections.primitives.adapters.ListIteratorDoubleListIterator
org.apache.commons.collections.primitives.adapters.ListIteratorFloatListIterator
org.apache.commons.collections.primitives.adapters.ListIteratorIntListIterator
org.apache.commons.collections.primitives.adapters.ListIteratorLongListIterator
org.apache.commons.collections.primitives.adapters.ListIteratorShortListIterator
org.apache.commons.collections.primitives.adapters.ListLongList
org.apache.commons.collections.primitives.adapters.ListShortList
org.apache.commons.collections.primitives.adapters.LongCollectionCollection
org.apache.commons.collections.primitives.adapters.LongIteratorIterator
org.apache.commons.collections.primitives.adapters.LongListIteratorListIterator
org.apache.commons.collections.primitives.adapters.LongListList
org.apache.commons.collections.primitives.adapters.NonSerializableBooleanCollectionCollection
org.apache.commons.collections.primitives.adapters.NonSerializableBooleanListList
org.apache.commons.collections.primitives.adapters.NonSerializableByteCollectionCollection
org.apache.commons.collections.primitives.adapters.NonSerializableByteListList
org.apache.commons.collections.primitives.adapters.NonSerializableCharCollectionCollection
org.apache.commons.collections.primitives.adapters.NonSerializableCharListList
org.apache.commons.collections.primitives.adapters.NonSerializableCollectionBooleanCollection
org.apache.commons.collections.primitives.adapters.NonSerializableCollectionByteCollection
org.apache.commons.collections.primitives.adapters.NonSerializableCollectionCharCollection
org.apache.commons.collections.primitives.adapters.NonSerializableCollectionDoubleCollection
org.apache.commons.collections.primitives.adapters.NonSerializableCollectionFloatCollection
org.apache.commons.collections.primitives.adapters.NonSerializableCollectionIntCollection
org.apache.commons.collections.primitives.adapters.NonSerializableCollectionLongCollection
org.apache.commons.collections.primitives.adapters.NonSerializableCollectionShortCollection
org.apache.commons.collections.primitives.adapters.NonSerializableDoubleCollectionCollection
org.apache.commons.collections.primitives.adapters.NonSerializableDoubleListList
org.apache.commons.collections.primitives.adapters.NonSerializableFloatCollectionCollection
org.apache.commons.collections.primitives.adapters.NonSerializableFloatListList
org.apache.commons.collections.primitives.adapters.NonSerializableIntCollectionCollection
org.apache.commons.collections.primitives.adapters.NonSerializableIntListList
org.apache.commons.collections.primitives.adapters.NonSerializableListBooleanList
org.apache.commons.collections.primitives.adapters.NonSerializableListByteList
org.apache.commons.collections.primitives.adapters.NonSerializableListCharList
org.apache.commons.collections.primitives.adapters.NonSerializableListDoubleList
org.apache.commons.collections.primitives.adapters.NonSerializableListFloatList
org.apache.commons.collections.primitives.adapters.NonSerializableListIntList
org.apache.commons.collections.primitives.adapters.NonSerializableListLongList
org.apache.commons.collections.primitives.adapters.NonSerializableListShortList
org.apache.commons.collections.primitives.adapters.NonSerializableLongCollectionCollection
org.apache.commons.collections.primitives.adapters.NonSerializableLongListList
org.apache.commons.collections.primitives.adapters.NonSerializableShortCollectionCollection
org.apache.commons.collections.primitives.adapters.NonSerializableShortListList
org.apache.commons.collections.primitives.adapters.ShortCollectionCollection
org.apache.commons.collections.primitives.adapters.ShortIteratorIterator
org.apache.commons.collections.primitives.adapters.ShortListIteratorListIterator
org.apache.commons.collections.primitives.adapters.ShortListList
Nonejava.io
java.lang
java.lang.reflect
java.util
org.apache.commons.collections.primitives

org.apache.commons.collections.primitives.adapters.io

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
040.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.commons.collections.primitives.adapters.io.ByteIteratorInputStream
org.apache.commons.collections.primitives.adapters.io.CharIteratorReader
org.apache.commons.collections.primitives.adapters.io.InputStreamByteIterator
org.apache.commons.collections.primitives.adapters.io.ReaderCharIterator
Nonejava.io
java.lang
java.util
org.apache.commons.collections.primitives

org.apache.commons.collections.primitives.decorators

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1356.0%75.0%31.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.commons.collections.primitives.decorators.BaseProxyByteCollection
org.apache.commons.collections.primitives.decorators.BaseProxyByteList
org.apache.commons.collections.primitives.decorators.BaseProxyCharCollection
org.apache.commons.collections.primitives.decorators.BaseProxyCharList
org.apache.commons.collections.primitives.decorators.BaseProxyDoubleCollection
org.apache.commons.collections.primitives.decorators.BaseProxyDoubleList
org.apache.commons.collections.primitives.decorators.BaseProxyFloatCollection
org.apache.commons.collections.primitives.decorators.BaseProxyFloatList
org.apache.commons.collections.primitives.decorators.BaseProxyIntCollection
org.apache.commons.collections.primitives.decorators.BaseProxyIntList
org.apache.commons.collections.primitives.decorators.BaseProxyLongCollection
org.apache.commons.collections.primitives.decorators.BaseProxyLongList
org.apache.commons.collections.primitives.decorators.BaseProxyShortCollection
org.apache.commons.collections.primitives.decorators.BaseProxyShortList
org.apache.commons.collections.primitives.decorators.BaseUnmodifiableByteList
org.apache.commons.collections.primitives.decorators.BaseUnmodifiableCharList
org.apache.commons.collections.primitives.decorators.BaseUnmodifiableDoubleList
org.apache.commons.collections.primitives.decorators.BaseUnmodifiableFloatList
org.apache.commons.collections.primitives.decorators.BaseUnmodifiableIntList
org.apache.commons.collections.primitives.decorators.BaseUnmodifiableLongList
org.apache.commons.collections.primitives.decorators.BaseUnmodifiableShortList
org.apache.commons.collections.primitives.decorators.ProxyByteIterator
org.apache.commons.collections.primitives.decorators.ProxyByteListIterator
org.apache.commons.collections.primitives.decorators.ProxyCharIterator
org.apache.commons.collections.primitives.decorators.ProxyCharListIterator
org.apache.commons.collections.primitives.decorators.ProxyDoubleIterator
org.apache.commons.collections.primitives.decorators.ProxyDoubleListIterator
org.apache.commons.collections.primitives.decorators.ProxyFloatIterator
org.apache.commons.collections.primitives.decorators.ProxyFloatListIterator
org.apache.commons.collections.primitives.decorators.ProxyIntIterator
org.apache.commons.collections.primitives.decorators.ProxyIntListIterator
org.apache.commons.collections.primitives.decorators.ProxyLongIterator
org.apache.commons.collections.primitives.decorators.ProxyLongListIterator
org.apache.commons.collections.primitives.decorators.ProxyShortIterator
org.apache.commons.collections.primitives.decorators.ProxyShortListIterator
org.apache.commons.collections.primitives.decorators.NonSerializableUnmodifiableByteList
org.apache.commons.collections.primitives.decorators.NonSerializableUnmodifiableCharList
org.apache.commons.collections.primitives.decorators.NonSerializableUnmodifiableDoubleList
org.apache.commons.collections.primitives.decorators.NonSerializableUnmodifiableFloatList
org.apache.commons.collections.primitives.decorators.NonSerializableUnmodifiableIntList
org.apache.commons.collections.primitives.decorators.NonSerializableUnmodifiableLongList
org.apache.commons.collections.primitives.decorators.NonSerializableUnmodifiableShortList
org.apache.commons.collections.primitives.decorators.UnmodifiableByteIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableByteList
org.apache.commons.collections.primitives.decorators.UnmodifiableByteListIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableCharIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableCharList
org.apache.commons.collections.primitives.decorators.UnmodifiableCharListIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableDoubleIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableDoubleList
org.apache.commons.collections.primitives.decorators.UnmodifiableDoubleListIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableFloatIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableFloatList
org.apache.commons.collections.primitives.decorators.UnmodifiableFloatListIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableIntIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableIntList
org.apache.commons.collections.primitives.decorators.UnmodifiableIntListIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableLongIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableLongList
org.apache.commons.collections.primitives.decorators.UnmodifiableLongListIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableShortIterator
org.apache.commons.collections.primitives.decorators.UnmodifiableShortList
org.apache.commons.collections.primitives.decorators.UnmodifiableShortListIterator
org.apache.commons.collections.primitives
java.io
java.lang
org.apache.commons.collections.primitives

Cycles

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

PackagePackage Dependencies
org.apache.commons.collections.primitivesorg.apache.commons.collections.primitives.decorators
org.apache.commons.collections.primitives
org.apache.commons.collections.primitives.adaptersorg.apache.commons.collections.primitives
org.apache.commons.collections.primitives.decorators
org.apache.commons.collections.primitives
org.apache.commons.collections.primitives.adapters.ioorg.apache.commons.collections.primitives
org.apache.commons.collections.primitives.decorators
org.apache.commons.collections.primitives
org.apache.commons.collections.primitives.decoratorsorg.apache.commons.collections.primitives
org.apache.commons.collections.primitives.decorators

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.