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.functor1301381100.0%11.0%11.0%1
org.apache.commons.functor.adapter36360430.0%43.0%57.0%1
org.apache.commons.functor.core14140240.0%67.0%33.0%1
org.apache.commons.functor.core.algorithm19181065.0%100.0%5.0%1
org.apache.commons.functor.core.collection10100080.0%100.0%0.0%1
org.apache.commons.functor.core.comparator11110050.0%100.0%0.0%1
org.apache.commons.functor.core.composite54504367.0%67.0%26.0%1
org.apache.commons.functor.generator141222514.0%71.0%14.0%1
org.apache.commons.functor.generator.util550140.0%80.0%20.0%1

Packages

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

org.apache.commons.functor

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
81100.0%11.0%11.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.commons.functor.BinaryFunction
org.apache.commons.functor.BinaryFunctor
org.apache.commons.functor.BinaryPredicate
org.apache.commons.functor.BinaryProcedure
org.apache.commons.functor.Function
org.apache.commons.functor.Functor
org.apache.commons.functor.NullaryFunctor
org.apache.commons.functor.Predicate
org.apache.commons.functor.Procedure
org.apache.commons.functor.UnaryFunction
org.apache.commons.functor.UnaryFunctor
org.apache.commons.functor.UnaryPredicate
org.apache.commons.functor.UnaryProcedure
Noneorg.apache.commons.functor.adapter
org.apache.commons.functor.core
org.apache.commons.functor.core.algorithm
org.apache.commons.functor.core.collection
org.apache.commons.functor.core.comparator
org.apache.commons.functor.core.composite
org.apache.commons.functor.generator
org.apache.commons.functor.generator.util
java.lang

org.apache.commons.functor.adapter

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
430.0%43.0%57.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.commons.functor.adapter.BinaryFunctionBinaryPredicate
org.apache.commons.functor.adapter.BinaryFunctionBinaryProcedure
org.apache.commons.functor.adapter.BinaryFunctionUnaryFunction
org.apache.commons.functor.adapter.BinaryPredicateBinaryFunction
org.apache.commons.functor.adapter.BinaryPredicateUnaryPredicate
org.apache.commons.functor.adapter.BinaryProcedureBinaryFunction
org.apache.commons.functor.adapter.BinaryProcedureUnaryProcedure
org.apache.commons.functor.adapter.BoundFunction
org.apache.commons.functor.adapter.BoundPredicate
org.apache.commons.functor.adapter.BoundProcedure
org.apache.commons.functor.adapter.FullyBoundFunction
org.apache.commons.functor.adapter.FullyBoundPredicate
org.apache.commons.functor.adapter.FullyBoundProcedure
org.apache.commons.functor.adapter.FunctionPredicate
org.apache.commons.functor.adapter.FunctionProcedure
org.apache.commons.functor.adapter.FunctionUnaryFunction
org.apache.commons.functor.adapter.IgnoreLeftFunction
org.apache.commons.functor.adapter.IgnoreLeftPredicate
org.apache.commons.functor.adapter.IgnoreLeftProcedure
org.apache.commons.functor.adapter.IgnoreRightFunction
org.apache.commons.functor.adapter.IgnoreRightPredicate
org.apache.commons.functor.adapter.IgnoreRightProcedure
org.apache.commons.functor.adapter.LeftBoundFunction
org.apache.commons.functor.adapter.LeftBoundPredicate
org.apache.commons.functor.adapter.LeftBoundProcedure
org.apache.commons.functor.adapter.PredicateFunction
org.apache.commons.functor.adapter.PredicateUnaryPredicate
org.apache.commons.functor.adapter.ProcedureFunction
org.apache.commons.functor.adapter.ProcedureUnaryProcedure
org.apache.commons.functor.adapter.RightBoundFunction
org.apache.commons.functor.adapter.RightBoundPredicate
org.apache.commons.functor.adapter.RightBoundProcedure
org.apache.commons.functor.adapter.UnaryFunctionUnaryPredicate
org.apache.commons.functor.adapter.UnaryFunctionUnaryProcedure
org.apache.commons.functor.adapter.UnaryPredicateUnaryFunction
org.apache.commons.functor.adapter.UnaryProcedureUnaryFunction
org.apache.commons.functor.core
org.apache.commons.functor.core.collection
org.apache.commons.functor.core.comparator
org.apache.commons.functor.core.composite
java.io
java.lang
org.apache.commons.functor

org.apache.commons.functor.core

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
240.0%67.0%33.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.commons.functor.core.Constant
org.apache.commons.functor.core.Identity
org.apache.commons.functor.core.IsEqual
org.apache.commons.functor.core.IsInstance
org.apache.commons.functor.core.IsNotEqual
org.apache.commons.functor.core.IsNotNull
org.apache.commons.functor.core.IsNotSame
org.apache.commons.functor.core.IsNull
org.apache.commons.functor.core.IsSame
org.apache.commons.functor.core.LeftIdentity
org.apache.commons.functor.core.Limit
org.apache.commons.functor.core.NoOp
org.apache.commons.functor.core.Offset
org.apache.commons.functor.core.RightIdentity
org.apache.commons.functor.core.collection
org.apache.commons.functor.core.composite
java.io
java.lang
org.apache.commons.functor
org.apache.commons.functor.adapter

org.apache.commons.functor.core.algorithm

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
065.0%100.0%5.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.commons.functor.core.algorithm.PredicatedLoop
org.apache.commons.functor.core.algorithm.DoUntil
org.apache.commons.functor.core.algorithm.DoWhile
org.apache.commons.functor.core.algorithm.FindWithinGenerator
org.apache.commons.functor.core.algorithm.FindWithinGenerator$FindProcedure
org.apache.commons.functor.core.algorithm.FoldLeft
org.apache.commons.functor.core.algorithm.FoldLeft$FoldLeftHelper
org.apache.commons.functor.core.algorithm.FoldRight
org.apache.commons.functor.core.algorithm.FoldRight$FoldRightHelper
org.apache.commons.functor.core.algorithm.GeneratorContains
org.apache.commons.functor.core.algorithm.GeneratorContains$ContainsProcedure
org.apache.commons.functor.core.algorithm.InPlaceTransform
org.apache.commons.functor.core.algorithm.IndexOfInGenerator
org.apache.commons.functor.core.algorithm.IndexOfInGenerator$IndexProcedure
org.apache.commons.functor.core.algorithm.RecursiveEvaluation
org.apache.commons.functor.core.algorithm.RemoveMatching
org.apache.commons.functor.core.algorithm.RetainMatching
org.apache.commons.functor.core.algorithm.UntilDo
org.apache.commons.functor.core.algorithm.WhileDo
Nonejava.io
java.lang
java.util
org.apache.commons.functor
org.apache.commons.functor.core.composite
org.apache.commons.functor.generator

org.apache.commons.functor.core.collection

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
080.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.commons.functor.core.collection.FilteredIterable
org.apache.commons.functor.core.collection.FilteredIterable$1
org.apache.commons.functor.core.collection.FilteredIterable$2
org.apache.commons.functor.core.collection.FilteredIterable$2$1
org.apache.commons.functor.core.collection.FilteredIterable$3
org.apache.commons.functor.core.collection.FilteredIterator
org.apache.commons.functor.core.collection.IsElementOf
org.apache.commons.functor.core.collection.IsEmpty
org.apache.commons.functor.core.collection.Size
org.apache.commons.functor.core.collection.TransformedIterator
Nonejava.io
java.lang
java.lang.reflect
java.util
org.apache.commons.functor
org.apache.commons.functor.adapter
org.apache.commons.functor.core
org.apache.commons.functor.core.composite

org.apache.commons.functor.core.comparator

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
050.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.commons.functor.core.comparator.ComparableComparator
org.apache.commons.functor.core.comparator.ComparatorFunction
org.apache.commons.functor.core.comparator.IsEquivalent
org.apache.commons.functor.core.comparator.IsGreaterThan
org.apache.commons.functor.core.comparator.IsGreaterThanOrEqual
org.apache.commons.functor.core.comparator.IsLessThan
org.apache.commons.functor.core.comparator.IsLessThanOrEqual
org.apache.commons.functor.core.comparator.IsNotEquivalent
org.apache.commons.functor.core.comparator.IsWithinRange
org.apache.commons.functor.core.comparator.Max
org.apache.commons.functor.core.comparator.Min
Nonejava.io
java.lang
java.util
org.apache.commons.functor
org.apache.commons.functor.adapter

org.apache.commons.functor.core.composite

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
367.0%67.0%26.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.commons.functor.core.composite.AbstractLoopProcedure
org.apache.commons.functor.core.composite.BaseBinaryPredicateList
org.apache.commons.functor.core.composite.BasePredicateList
org.apache.commons.functor.core.composite.BaseUnaryPredicateList
org.apache.commons.functor.core.composite.And
org.apache.commons.functor.core.composite.BinaryAnd
org.apache.commons.functor.core.composite.BinaryCompositeBinaryFunction
org.apache.commons.functor.core.composite.BinaryCompositeBinaryFunction$Helper
org.apache.commons.functor.core.composite.BinaryNot
org.apache.commons.functor.core.composite.BinaryOr
org.apache.commons.functor.core.composite.BinarySequence
org.apache.commons.functor.core.composite.Composite
org.apache.commons.functor.core.composite.CompositeUnaryFunction
org.apache.commons.functor.core.composite.CompositeUnaryFunction$Helper
org.apache.commons.functor.core.composite.CompositeUnaryPredicate
org.apache.commons.functor.core.composite.CompositeUnaryProcedure
org.apache.commons.functor.core.composite.Conditional
org.apache.commons.functor.core.composite.ConditionalBinaryFunction
org.apache.commons.functor.core.composite.ConditionalBinaryPredicate
org.apache.commons.functor.core.composite.ConditionalBinaryProcedure
org.apache.commons.functor.core.composite.ConditionalFunction
org.apache.commons.functor.core.composite.ConditionalPredicate
org.apache.commons.functor.core.composite.ConditionalProcedure
org.apache.commons.functor.core.composite.ConditionalUnaryFunction
org.apache.commons.functor.core.composite.ConditionalUnaryPredicate
org.apache.commons.functor.core.composite.ConditionalUnaryProcedure
org.apache.commons.functor.core.composite.DoWhileProcedure
org.apache.commons.functor.core.composite.Not
org.apache.commons.functor.core.composite.Or
org.apache.commons.functor.core.composite.Sequence
org.apache.commons.functor.core.composite.TransformedBinaryFunction
org.apache.commons.functor.core.composite.TransformedBinaryFunction$1
org.apache.commons.functor.core.composite.TransformedBinaryFunction$Helper
org.apache.commons.functor.core.composite.TransformedBinaryProcedure
org.apache.commons.functor.core.composite.TransformedBinaryProcedure$1
org.apache.commons.functor.core.composite.TransformedBinaryProcedure$Helper
org.apache.commons.functor.core.composite.TransformedFunction
org.apache.commons.functor.core.composite.TransformedFunction$1
org.apache.commons.functor.core.composite.TransformedFunction$Helper
org.apache.commons.functor.core.composite.TransformedProcedure
org.apache.commons.functor.core.composite.TransformedProcedure$1
org.apache.commons.functor.core.composite.TransformedProcedure$Helper
org.apache.commons.functor.core.composite.TransposedFunction
org.apache.commons.functor.core.composite.TransposedPredicate
org.apache.commons.functor.core.composite.TransposedProcedure
org.apache.commons.functor.core.composite.UnaryAnd
org.apache.commons.functor.core.composite.UnaryCompositeBinaryFunction
org.apache.commons.functor.core.composite.UnaryCompositeBinaryFunction$Helper
org.apache.commons.functor.core.composite.UnaryCompositeBinaryPredicate
org.apache.commons.functor.core.composite.UnaryCompositeBinaryPredicate$Helper
org.apache.commons.functor.core.composite.UnaryNot
org.apache.commons.functor.core.composite.UnaryOr
org.apache.commons.functor.core.composite.UnarySequence
org.apache.commons.functor.core.composite.WhileDoProcedure
org.apache.commons.functor.core.algorithm
org.apache.commons.functor.core.collection
org.apache.commons.functor.generator
java.io
java.lang
java.util
org.apache.commons.functor
org.apache.commons.functor.adapter
org.apache.commons.functor.core

org.apache.commons.functor.generator

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2514.0%71.0%14.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.commons.functor.generator.BaseGenerator
org.apache.commons.functor.generator.Generator
org.apache.commons.functor.generator.FilteredGenerator
org.apache.commons.functor.generator.GenerateUntil
org.apache.commons.functor.generator.GenerateUntil$1
org.apache.commons.functor.generator.GenerateWhile
org.apache.commons.functor.generator.GenerateWhile$1
org.apache.commons.functor.generator.IteratorToGeneratorAdapter
org.apache.commons.functor.generator.TransformedGenerator
org.apache.commons.functor.generator.TransformedGenerator$1
org.apache.commons.functor.generator.UntilGenerate
org.apache.commons.functor.generator.UntilGenerate$1
org.apache.commons.functor.generator.WhileGenerate
org.apache.commons.functor.generator.WhileGenerate$1
org.apache.commons.functor.core.algorithm
org.apache.commons.functor.generator.util
java.lang
java.util
org.apache.commons.functor
org.apache.commons.functor.core.composite
org.apache.commons.functor.generator.util

org.apache.commons.functor.generator.util

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
140.0%80.0%20.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.commons.functor.generator.util.CollectionTransformer
org.apache.commons.functor.generator.util.CollectionTransformer$1
org.apache.commons.functor.generator.util.EachElement
org.apache.commons.functor.generator.util.IntegerRange
org.apache.commons.functor.generator.util.LongRange
org.apache.commons.functor.generator
java.lang
java.util
org.apache.commons.functor
org.apache.commons.functor.generator

Cycles

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

PackagePackage Dependencies
org.apache.commons.functor.core.algorithmorg.apache.commons.functor.generator
org.apache.commons.functor.generator.util
org.apache.commons.functor.generator
org.apache.commons.functor.generatororg.apache.commons.functor.generator.util
org.apache.commons.functor.generator
org.apache.commons.functor.generator.utilorg.apache.commons.functor.generator
org.apache.commons.functor.generator.util

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.