JDepend Analysis

Designed for use with JDepend and Ant.


Summary

[summary] [packages] [cycles] [explanations]
PackageTotal ClassesAbstract ClassesConcrete ClassesAfferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
de.betabeans.metabeans.dataset90903010
de.betabeans.metabeans.dataset.base2201210.670.67
de.betabeans.metabeans.dataset.editor30300001
de.betabeans.metabeans.locator413300.2500.75
de.betabeans.metabeans.provider21615210.290.330.38

Packages

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

de.betabeans.metabeans.dataset

Afferent Couplings: 0Efferent Couplings: 3Abstractness: 0Instability: 1Distance: 0
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None de.betabeans.metabeans.dataset.ColumnMetaData
de.betabeans.metabeans.dataset.ColumnMetaDataBeanInfo
de.betabeans.metabeans.dataset.ProcedureMetaData
de.betabeans.metabeans.dataset.ProcedureMetaDataBeanInfo
de.betabeans.metabeans.dataset.ProcedureNames
de.betabeans.metabeans.dataset.TableMetaData
de.betabeans.metabeans.dataset.TableMetaDataBeanInfo
de.betabeans.metabeans.dataset.TableNames
de.betabeans.metabeans.dataset.ViewNames
Nonede.betabeans.metabeans.dataset.base
de.betabeans.metabeans.locator
de.betabeans.metabeans.provider

de.betabeans.metabeans.dataset.base

Afferent Couplings: 1Efferent Couplings: 2Abstractness: 1Instability: 0.67Distance: 0.67
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
de.betabeans.metabeans.dataset.base.BasicTableNamesDataSet
de.betabeans.metabeans.dataset.base.MetaDataSet
Nonede.betabeans.metabeans.dataset
de.betabeans.metabeans.locator
de.betabeans.metabeans.provider

de.betabeans.metabeans.dataset.editor

Afferent Couplings: 0Efferent Couplings: 0Abstractness: 0Instability: 0Distance: 1
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None de.betabeans.metabeans.dataset.editor.ColumnMetaDataEditor
de.betabeans.metabeans.dataset.editor.ProcedureMetaDataEditor
de.betabeans.metabeans.dataset.editor.TableMetaDataEditor
NoneNone

de.betabeans.metabeans.locator

Afferent Couplings: 3Efferent Couplings: 0Abstractness: 0.25Instability: 0Distance: 0.75
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
de.betabeans.metabeans.locator.SchemaLocator
de.betabeans.metabeans.locator.ColumnLocator
de.betabeans.metabeans.locator.ProcedureLocator
de.betabeans.metabeans.locator.TableLocator
de.betabeans.metabeans.dataset
de.betabeans.metabeans.dataset.base
de.betabeans.metabeans.provider
None

de.betabeans.metabeans.provider

Afferent Couplings: 2Efferent Couplings: 1Abstractness: 0.29Instability: 0.33Distance: 0.38
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
de.betabeans.metabeans.provider.ColumnMetadataProvider
de.betabeans.metabeans.provider.MultiMetadataProvider
de.betabeans.metabeans.provider.ProcedureColumnsProvider
de.betabeans.metabeans.provider.SchemaMetadataProvider
de.betabeans.metabeans.provider.TableMetadataProvider
de.betabeans.metabeans.provider.TableReferencesProvider
de.betabeans.metabeans.provider.CatalogNamesProvider
de.betabeans.metabeans.provider.ColumnDependenciesProvider
de.betabeans.metabeans.provider.ColumnPrivilegesProvider
de.betabeans.metabeans.provider.ProcedureNamesProvider
de.betabeans.metabeans.provider.ProcedureParameterProvider
de.betabeans.metabeans.provider.ProcedureResultSetProvider
de.betabeans.metabeans.provider.SchemaNamesProvider
de.betabeans.metabeans.provider.TableColumnsProvider
de.betabeans.metabeans.provider.TableDependenciesProvider
de.betabeans.metabeans.provider.TableExportedKeysProvider
de.betabeans.metabeans.provider.TableImportedKeysProvider
de.betabeans.metabeans.provider.TableIndexProvider
de.betabeans.metabeans.provider.TableNamesProvider
de.betabeans.metabeans.provider.TablePrimaryKeysProvider
de.betabeans.metabeans.provider.TablePrivilegesProvider
de.betabeans.metabeans.dataset
de.betabeans.metabeans.dataset.base
de.betabeans.metabeans.locator

Cycles

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

There are no cyclic dependancies.

Explanations

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

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

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.