Apache MyFaces
Foundation

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.myfaces.extensions.validator109122710.0%93.0%3.0%1
org.apache.myfaces.extensions.validator.baseval3122367.0%60.000004%27.000002%1
org.apache.myfaces.extensions.validator.baseval.annotation90933100.0%50.0%50.0%1
org.apache.myfaces.extensions.validator.baseval.annotation.extractor110260.0%75.0%25.0%1
org.apache.myfaces.extensions.validator.baseval.message.resolver220050.0%100.0%0.0%1
org.apache.myfaces.extensions.validator.baseval.metadata.transformer109101710.0%100.0%10.0%1
org.apache.myfaces.extensions.validator.baseval.strategy9901200.0%95.0%5.0%1
org.apache.myfaces.extensions.validator.crossval42211250.0%92.0%42.0%1
org.apache.myfaces.extensions.validator.crossval.annotation9451356.0%75.0%31.0%1
org.apache.myfaces.extensions.validator.crossval.message.resolver110020.0%100.0%0.0%1
org.apache.myfaces.extensions.validator.crossval.parameter10112100.0%67.0%67.0%1
org.apache.myfaces.extensions.validator.crossval.recorder110190.0%90.0%10.0%1
org.apache.myfaces.extensions.validator.crossval.storage8626725.0%54.000004%21.0%1
org.apache.myfaces.extensions.validator.crossval.storage.mapper220130.0%75.0%25.0%1
org.apache.myfaces.extensions.validator.crossval.strategy139421931.0%90.0%21.0%1
org.apache.myfaces.extensions.validator.util22010100.0%50.0%50.0%1

Packages

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

org.apache.myfaces.extensions.validator

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
22710.0%93.0%3.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.myfaces.extensions.validator.PropertyValidationModuleKey
org.apache.myfaces.extensions.validator.HtmlCoreComponentsComponentInitializer
org.apache.myfaces.extensions.validator.JoinValidationMetaDataStorageFilter
org.apache.myfaces.extensions.validator.JoinValidationMetaDataStorageFilter$1
org.apache.myfaces.extensions.validator.JoinValidationMetaDataStorageFilter$StaticSyntaxMetaDataExtractor
org.apache.myfaces.extensions.validator.MappedConstraintSourcePropertyValidationModuleValidationInterceptor
org.apache.myfaces.extensions.validator.PropertyValidationGroupStorageNameMapper
org.apache.myfaces.extensions.validator.PropertyValidationModuleStartupListener
org.apache.myfaces.extensions.validator.PropertyValidationModuleValidationInterceptor
org.apache.myfaces.extensions.validator.PropertyValidationSkipValidationEvaluator
org.apache.myfaces.extensions.validator.baseval.annotation.extractor
org.apache.myfaces.extensions.validator.crossval
java.lang
java.util
java.util.logging
javax.faces.component
javax.faces.context
org.apache.myfaces.extensions.validator.baseval
org.apache.myfaces.extensions.validator.baseval.annotation
org.apache.myfaces.extensions.validator.core
org.apache.myfaces.extensions.validator.core.el
org.apache.myfaces.extensions.validator.core.factory
org.apache.myfaces.extensions.validator.core.initializer.component
org.apache.myfaces.extensions.validator.core.initializer.configuration
org.apache.myfaces.extensions.validator.core.interceptor
org.apache.myfaces.extensions.validator.core.mapper
org.apache.myfaces.extensions.validator.core.metadata
org.apache.myfaces.extensions.validator.core.metadata.extractor
org.apache.myfaces.extensions.validator.core.property
org.apache.myfaces.extensions.validator.core.startup
org.apache.myfaces.extensions.validator.core.storage
org.apache.myfaces.extensions.validator.core.validation
org.apache.myfaces.extensions.validator.core.validation.parameter
org.apache.myfaces.extensions.validator.core.validation.strategy
org.apache.myfaces.extensions.validator.crossval
org.apache.myfaces.extensions.validator.crossval.recorder
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.storage.mapper
org.apache.myfaces.extensions.validator.util

org.apache.myfaces.extensions.validator.baseval

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2367.0%60.000004%27.000002%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.myfaces.extensions.validator.baseval.ExtValBaseValidationModuleConfiguration
org.apache.myfaces.extensions.validator.baseval.WebXmlParameter
org.apache.myfaces.extensions.validator.baseval.DefaultExtValBaseValidationModuleConfiguration
org.apache.myfaces.extensions.validator
org.apache.myfaces.extensions.validator.baseval.message.resolver
java.lang
org.apache.myfaces.extensions.validator.core
org.apache.myfaces.extensions.validator.util

org.apache.myfaces.extensions.validator.baseval.annotation

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
33100.0%50.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.myfaces.extensions.validator.baseval.annotation.DoubleRange
org.apache.myfaces.extensions.validator.baseval.annotation.JoinValidation
org.apache.myfaces.extensions.validator.baseval.annotation.Length
org.apache.myfaces.extensions.validator.baseval.annotation.LongRange
org.apache.myfaces.extensions.validator.baseval.annotation.Pattern
org.apache.myfaces.extensions.validator.baseval.annotation.Required
org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidation
org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport
org.apache.myfaces.extensions.validator.baseval.annotation.Validator
Noneorg.apache.myfaces.extensions.validator
org.apache.myfaces.extensions.validator.baseval.metadata.transformer
org.apache.myfaces.extensions.validator.baseval.strategy
java.lang
java.lang.annotation
org.apache.myfaces.extensions.validator.core.validation.parameter

org.apache.myfaces.extensions.validator.baseval.annotation.extractor

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
260.0%75.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.myfaces.extensions.validator.baseval.annotation.extractor.DefaultPropertyScanningMetaDataExtractor
org.apache.myfaces.extensions.validator.baseval.metadata.transformer
org.apache.myfaces.extensions.validator.baseval.strategy
java.lang
javax.faces.context
org.apache.myfaces.extensions.validator
org.apache.myfaces.extensions.validator.core.metadata.extractor
org.apache.myfaces.extensions.validator.core.property
org.apache.myfaces.extensions.validator.util

org.apache.myfaces.extensions.validator.baseval.message.resolver

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
050.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.myfaces.extensions.validator.baseval.message.resolver.DefaultValidationErrorMessageResolver
org.apache.myfaces.extensions.validator.baseval.message.resolver.JpaValidationErrorMessageResolver
Nonejava.lang
org.apache.myfaces.extensions.validator.baseval
org.apache.myfaces.extensions.validator.core
org.apache.myfaces.extensions.validator.core.validation.message.resolver
org.apache.myfaces.extensions.validator.util

org.apache.myfaces.extensions.validator.baseval.metadata.transformer

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01710.0%100.0%10.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.myfaces.extensions.validator.baseval.metadata.transformer.AbstractValidationParameterAwareTransformer
org.apache.myfaces.extensions.validator.baseval.metadata.transformer.DoubleRangeMetaDataTransformer
org.apache.myfaces.extensions.validator.baseval.metadata.transformer.JoinMetaDataTransformer
org.apache.myfaces.extensions.validator.baseval.metadata.transformer.JpaMetaDataTransformer
org.apache.myfaces.extensions.validator.baseval.metadata.transformer.LengthMetaDataTransformer
org.apache.myfaces.extensions.validator.baseval.metadata.transformer.LongRangeMetaDataTransformer
org.apache.myfaces.extensions.validator.baseval.metadata.transformer.PatternMetaDataTransformer
org.apache.myfaces.extensions.validator.baseval.metadata.transformer.RequiredMetaDataTransformer
org.apache.myfaces.extensions.validator.baseval.metadata.transformer.SkipMetaDataTransformer
org.apache.myfaces.extensions.validator.baseval.metadata.transformer.ValidatorMetaDataTransformer
Nonejava.lang
java.lang.annotation
java.util
java.util.logging
javax.faces.application
javax.faces.component
javax.faces.context
javax.persistence
org.apache.myfaces.extensions.validator.baseval.annotation
org.apache.myfaces.extensions.validator.baseval.annotation.extractor
org.apache.myfaces.extensions.validator.core.metadata
org.apache.myfaces.extensions.validator.core.metadata.extractor
org.apache.myfaces.extensions.validator.core.metadata.transformer
org.apache.myfaces.extensions.validator.core.property
org.apache.myfaces.extensions.validator.core.validation.message.resolver
org.apache.myfaces.extensions.validator.core.validation.parameter
org.apache.myfaces.extensions.validator.util

org.apache.myfaces.extensions.validator.baseval.strategy

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1200.0%95.0%5.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.myfaces.extensions.validator.baseval.strategy.DoubleRangeStrategy
org.apache.myfaces.extensions.validator.baseval.strategy.JoinValidationStrategy
org.apache.myfaces.extensions.validator.baseval.strategy.JpaValidationStrategy
org.apache.myfaces.extensions.validator.baseval.strategy.LengthStrategy
org.apache.myfaces.extensions.validator.baseval.strategy.LongRangeStrategy
org.apache.myfaces.extensions.validator.baseval.strategy.PatternStrategy
org.apache.myfaces.extensions.validator.baseval.strategy.RequiredStrategy
org.apache.myfaces.extensions.validator.baseval.strategy.SkipValidationStrategy
org.apache.myfaces.extensions.validator.baseval.strategy.ValidatorStrategy
org.apache.myfaces.extensions.validator.util
java.lang
java.lang.annotation
java.util
java.util.logging
java.util.regex
javax.faces
javax.faces.application
javax.faces.component
javax.faces.context
javax.faces.validator
javax.persistence
org.apache.myfaces.extensions.validator.baseval.annotation
org.apache.myfaces.extensions.validator.baseval.annotation.extractor
org.apache.myfaces.extensions.validator.core.el
org.apache.myfaces.extensions.validator.core.metadata
org.apache.myfaces.extensions.validator.core.metadata.extractor
org.apache.myfaces.extensions.validator.core.property
org.apache.myfaces.extensions.validator.core.validation.exception
org.apache.myfaces.extensions.validator.core.validation.strategy
org.apache.myfaces.extensions.validator.util

org.apache.myfaces.extensions.validator.crossval

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
11250.0%92.0%42.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.myfaces.extensions.validator.crossval.ExtValCrossValidationModuleConfiguration
org.apache.myfaces.extensions.validator.crossval.WebXmlParameter
org.apache.myfaces.extensions.validator.crossval.CrossValidationPhaseListener
org.apache.myfaces.extensions.validator.crossval.DefaultExtValCrossValidationModuleConfiguration
org.apache.myfaces.extensions.validator
java.lang
java.util
javax.faces
javax.faces.application
javax.faces.context
javax.faces.event
javax.faces.validator
org.apache.myfaces.extensions.validator
org.apache.myfaces.extensions.validator.core
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.util

org.apache.myfaces.extensions.validator.crossval.annotation

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1356.0%75.0%31.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.myfaces.extensions.validator.crossval.annotation.DateIs
org.apache.myfaces.extensions.validator.crossval.annotation.EmptyIf
org.apache.myfaces.extensions.validator.crossval.annotation.Equals
org.apache.myfaces.extensions.validator.crossval.annotation.NotEquals
org.apache.myfaces.extensions.validator.crossval.annotation.RequiredIf
org.apache.myfaces.extensions.validator.crossval.annotation.DateIsType
org.apache.myfaces.extensions.validator.crossval.annotation.EmptyIfType
org.apache.myfaces.extensions.validator.crossval.annotation.MessageTarget
org.apache.myfaces.extensions.validator.crossval.annotation.RequiredIfType
org.apache.myfaces.extensions.validator.crossval.strategy
java.lang
java.lang.annotation
org.apache.myfaces.extensions.validator.core.validation.parameter

org.apache.myfaces.extensions.validator.crossval.message.resolver

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
020.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.myfaces.extensions.validator.crossval.message.resolver.DefaultValidationErrorMessageResolver
Nonejava.lang
org.apache.myfaces.extensions.validator.core.validation.message.resolver

org.apache.myfaces.extensions.validator.crossval.parameter

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
12100.0%67.0%67.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.myfaces.extensions.validator.crossval.parameter.CaseInsensitive
Noneorg.apache.myfaces.extensions.validator.crossval.strategy
java.lang
org.apache.myfaces.extensions.validator.core.validation.parameter

org.apache.myfaces.extensions.validator.crossval.recorder

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
190.0%90.0%10.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.myfaces.extensions.validator.crossval.recorder.CrossValidationUserInputRecorder
org.apache.myfaces.extensions.validator
java.lang
java.util
javax.faces.component
javax.faces.context
org.apache.myfaces.extensions.validator.core.el
org.apache.myfaces.extensions.validator.core.property
org.apache.myfaces.extensions.validator.core.recorder
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.util

org.apache.myfaces.extensions.validator.crossval.storage

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
6725.0%54.000004%21.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.myfaces.extensions.validator.crossval.storage.CrossValidationStorage
org.apache.myfaces.extensions.validator.crossval.storage.ProcessedInformationStorage
org.apache.myfaces.extensions.validator.crossval.storage.CrossValidationStorageEntry
org.apache.myfaces.extensions.validator.crossval.storage.DefaultCrossValidationStorage
org.apache.myfaces.extensions.validator.crossval.storage.DefaultCrossValidationStorageManager
org.apache.myfaces.extensions.validator.crossval.storage.DefaultProcessedInformationStorage
org.apache.myfaces.extensions.validator.crossval.storage.DefaultProcessedInformationStorageManager
org.apache.myfaces.extensions.validator.crossval.storage.ProcessedInformationStorageEntry
org.apache.myfaces.extensions.validator
org.apache.myfaces.extensions.validator.crossval
org.apache.myfaces.extensions.validator.crossval.recorder
org.apache.myfaces.extensions.validator.crossval.storage.mapper
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.util
java.lang
java.util
javax.faces.component
org.apache.myfaces.extensions.validator.core.metadata
org.apache.myfaces.extensions.validator.core.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.util

org.apache.myfaces.extensions.validator.crossval.storage.mapper

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
130.0%75.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.myfaces.extensions.validator.crossval.storage.mapper.CrossValidationStorageNameMapper
org.apache.myfaces.extensions.validator.crossval.storage.mapper.ProcessedInformationStorageNameMapper
org.apache.myfaces.extensions.validator
java.lang
org.apache.myfaces.extensions.validator.core.mapper
org.apache.myfaces.extensions.validator.crossval.storage

org.apache.myfaces.extensions.validator.crossval.strategy

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
21931.0%90.0%21.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.myfaces.extensions.validator.crossval.strategy.AbstractCompareStrategy
org.apache.myfaces.extensions.validator.crossval.strategy.AbstractCrossValidationStrategy
org.apache.myfaces.extensions.validator.crossval.strategy.CrossValidationStrategy
org.apache.myfaces.extensions.validator.crossval.strategy.ReferencingStrategy
org.apache.myfaces.extensions.validator.crossval.strategy.CrossValidationHelper
org.apache.myfaces.extensions.validator.crossval.strategy.DateIsStrategy
org.apache.myfaces.extensions.validator.crossval.strategy.ELCompareStrategy
org.apache.myfaces.extensions.validator.crossval.strategy.EmptyIfStrategy
org.apache.myfaces.extensions.validator.crossval.strategy.EqualsStrategy
org.apache.myfaces.extensions.validator.crossval.strategy.LocalCompareStrategy
org.apache.myfaces.extensions.validator.crossval.strategy.LocalPropertyChainCompareStrategy
org.apache.myfaces.extensions.validator.crossval.strategy.NotEqualsStrategy
org.apache.myfaces.extensions.validator.crossval.strategy.RequiredIfStrategy
org.apache.myfaces.extensions.validator.crossval
org.apache.myfaces.extensions.validator.crossval.storage
java.lang
java.lang.annotation
java.text
java.util
java.util.logging
javax.faces.application
javax.faces.component
javax.faces.context
javax.faces.validator
org.apache.myfaces.extensions.validator.core
org.apache.myfaces.extensions.validator.core.el
org.apache.myfaces.extensions.validator.core.metadata
org.apache.myfaces.extensions.validator.core.property
org.apache.myfaces.extensions.validator.core.validation.parameter
org.apache.myfaces.extensions.validator.core.validation.strategy
org.apache.myfaces.extensions.validator.crossval.annotation
org.apache.myfaces.extensions.validator.crossval.parameter
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.util

org.apache.myfaces.extensions.validator.util

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
10100.0%50.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.myfaces.extensions.validator.util.CrossValidationUtils
org.apache.myfaces.extensions.validator.util.PropertyValidationUtils
org.apache.myfaces.extensions.validator
org.apache.myfaces.extensions.validator.baseval
org.apache.myfaces.extensions.validator.baseval.annotation.extractor
org.apache.myfaces.extensions.validator.baseval.message.resolver
org.apache.myfaces.extensions.validator.baseval.metadata.transformer
org.apache.myfaces.extensions.validator.baseval.strategy
org.apache.myfaces.extensions.validator.crossval
org.apache.myfaces.extensions.validator.crossval.recorder
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
java.lang
java.util
java.util.logging
javax.faces.context
org.apache.myfaces.extensions.validator.baseval.strategy
org.apache.myfaces.extensions.validator.core.el
org.apache.myfaces.extensions.validator.core.metadata
org.apache.myfaces.extensions.validator.core.property
org.apache.myfaces.extensions.validator.core.validation.strategy
org.apache.myfaces.extensions.validator.crossval.storage

Cycles

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

PackagePackage Dependencies
org.apache.myfaces.extensions.validatororg.apache.myfaces.extensions.validator.util
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.basevalorg.apache.myfaces.extensions.validator.util
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.baseval.annotation.extractororg.apache.myfaces.extensions.validator.util
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.baseval.message.resolverorg.apache.myfaces.extensions.validator.util
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.baseval.metadata.transformerorg.apache.myfaces.extensions.validator.util
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.baseval.strategyorg.apache.myfaces.extensions.validator.baseval.annotation.extractor
org.apache.myfaces.extensions.validator.util
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossvalorg.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.recorderorg.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.storageorg.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.storage.mapperorg.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategyorg.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.utilorg.apache.myfaces.extensions.validator.crossval.storage
org.apache.myfaces.extensions.validator.crossval.strategy
org.apache.myfaces.extensions.validator.crossval.storage

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.