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 ]

Package TC CC AC Ca Ce A I D V
de.smartics.properties.api.config.app 5 3 2 4 10 40.0% 71.0% 11.0% 1
de.smartics.properties.api.config.domain 30 20 10 12 10 33.0% 45.0% 21.0% 1
de.smartics.properties.api.config.domain.key 9 9 0 12 9 0.0% 43.0% 57.0% 1
de.smartics.properties.impl.config.cache 4 3 1 1 14 25.0% 93.0% 18.0% 1
de.smartics.properties.impl.config.classpath 2 2 0 0 7 0.0% 100.0% 0.0% 1
de.smartics.properties.impl.config.ds 2 2 0 0 9 0.0% 100.0% 0.0% 1
de.smartics.properties.impl.config.properties 2 2 0 1 7 0.0% 88.0% 12.0% 1
de.smartics.properties.impl.config.resource 1 1 0 0 9 0.0% 100.0% 0.0% 1
de.smartics.properties.spi.config.definition 3 3 0 1 12 0.0% 92.0% 8.0% 1
de.smartics.properties.spi.config.domain 2 2 0 0 8 0.0% 100.0% 0.0% 1
de.smartics.properties.spi.config.ds 16 11 5 1 12 31.0% 92.0% 24.0% 1
de.smartics.properties.spi.config.proxy 7 7 0 1 10 0.0% 91.0% 9.0% 1
de.smartics.properties.spi.config.resolve 11 9 2 1 7 18.0% 88.0% 6.0% 1
de.smartics.properties.spi.config.support 27 20 7 5 26 26.0% 84.0% 10.0% 1
de.smartics.properties.spi.config.validation 1 1 0 1 7 0.0% 88.0% 12.0% 1

Packages

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

de.smartics.properties.api.config.app

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 10 40.0% 71.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.api.config.app.BootProperties
de.smartics.properties.api.config.app.ConfigurationPropertiesFactory
de.smartics.properties.api.config.app.ConfigurationFactoryException
de.smartics.properties.api.config.app.ConfigurationPropertiesFactoryFactory
de.smartics.properties.api.config.app.FactoryConfiguration
de.smartics.properties.impl.config.ds
de.smartics.properties.impl.config.resource
de.smartics.properties.spi.config.domain
de.smartics.properties.spi.config.support
de.smartics.properties.api.config.domain
de.smartics.properties.api.config.domain.key
de.smartics.properties.api.core.app
de.smartics.util.lang
java.io
java.lang
java.net
java.util
org.apache.commons.lang.builder
org.slf4j

de.smartics.properties.api.config.domain

Afferent Couplings Efferent Couplings Abstractness Instability Distance
12 10 33.0% 45.0% 21.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.api.config.domain.ConfigurationProperties
de.smartics.properties.api.config.domain.ConfigurationPropertiesManagement
de.smartics.properties.api.config.domain.ConfigurationRepository
de.smartics.properties.api.config.domain.ConfigurationRepositoryManagement
de.smartics.properties.api.config.domain.PropertyCollection
de.smartics.properties.api.config.domain.PropertyManager
de.smartics.properties.api.config.domain.PropertyProvider
de.smartics.properties.api.config.domain.PropertySource
de.smartics.properties.api.config.domain.SerializableConfigurationProperties
de.smartics.properties.api.config.domain.SerializableConfigurationPropertiesManagement
de.smartics.properties.api.config.domain.CompoundConfigurationException
de.smartics.properties.api.config.domain.ConfigurationException
de.smartics.properties.api.config.domain.ConfigurationLoadingException
de.smartics.properties.api.config.domain.ConfigurationNotFoundException
de.smartics.properties.api.config.domain.ConfigurationValidationException
de.smartics.properties.api.config.domain.DependenciesParser
de.smartics.properties.api.config.domain.DuplicateConfigurationException
de.smartics.properties.api.config.domain.DuplicatePropertyDefinitionException
de.smartics.properties.api.config.domain.DuplicatePropertyException
de.smartics.properties.api.config.domain.MissingConfigurationException
de.smartics.properties.api.config.domain.Property
de.smartics.properties.api.config.domain.PropertyDefinition
de.smartics.properties.api.config.domain.PropertyIndex
de.smartics.properties.api.config.domain.PropertyLocation
de.smartics.properties.api.config.domain.PropertyValidationWithSourceException
de.smartics.properties.api.config.domain.PropertyValueConversionWithSourceException
de.smartics.properties.api.config.domain.PropertyValueResolveWithSourceException
de.smartics.properties.api.config.domain.ResolvedProperty
de.smartics.properties.api.config.domain.UnknownProperties
de.smartics.properties.api.config.domain.UnknownPropertyException
de.smartics.properties.api.config.app
de.smartics.properties.impl.config.cache
de.smartics.properties.impl.config.classpath
de.smartics.properties.impl.config.ds
de.smartics.properties.impl.config.properties
de.smartics.properties.impl.config.resource
de.smartics.properties.spi.config.domain
de.smartics.properties.spi.config.ds
de.smartics.properties.spi.config.proxy
de.smartics.properties.spi.config.resolve
de.smartics.properties.spi.config.support
de.smartics.properties.spi.config.validation
de.smartics.properties.api.config.domain.key
de.smartics.properties.api.core.app
de.smartics.properties.api.core.domain
de.smartics.util.lang
java.beans
java.io
java.lang
java.util
org.apache.commons.lang
org.apache.commons.lang.builder

de.smartics.properties.api.config.domain.key

Afferent Couplings Efferent Couplings Abstractness Instability Distance
12 9 0.0% 43.0% 57.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.api.config.domain.key.ApplicationId
de.smartics.properties.api.config.domain.key.ApplicationIdLoader
de.smartics.properties.api.config.domain.key.ConfigurationKey
de.smartics.properties.api.config.domain.key.ConfigurationKeyBuilder
de.smartics.properties.api.config.domain.key.ConfigurationKeyBuilder$1
de.smartics.properties.api.config.domain.key.ConfigurationKeyBuilder$ApplicationIdBuilder
de.smartics.properties.api.config.domain.key.ConfigurationKeyBuilder$EnvironmentIdBuilder
de.smartics.properties.api.config.domain.key.ConfigurationKeyHelper
de.smartics.properties.api.config.domain.key.EnvironmentId
de.smartics.properties.api.config.app
de.smartics.properties.api.config.domain
de.smartics.properties.impl.config.cache
de.smartics.properties.impl.config.classpath
de.smartics.properties.impl.config.ds
de.smartics.properties.impl.config.properties
de.smartics.properties.impl.config.resource
de.smartics.properties.spi.config.definition
de.smartics.properties.spi.config.domain
de.smartics.properties.spi.config.ds
de.smartics.properties.spi.config.resolve
de.smartics.properties.spi.config.support
de.smartics.util.lang
java.io
java.lang
java.net
java.util
java.util.concurrent.locks
java.util.jar
org.apache.commons.io
org.apache.commons.lang

de.smartics.properties.impl.config.cache

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 14 25.0% 93.0% 18.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.impl.config.cache.AbstractCacheConfigurationPropertiesManagement
de.smartics.properties.impl.config.cache.CacheConfigurationPropertiesManagement
de.smartics.properties.impl.config.cache.DependencyTrackingCache
de.smartics.properties.impl.config.cache.SerializableCacheConfigurationPropertiesManagement
de.smartics.properties.impl.config.ds
com.google.common.collect
de.smartics.properties.api.config.domain
de.smartics.properties.api.config.domain.key
de.smartics.properties.api.core.domain
de.smartics.properties.spi.config.support
de.smartics.util.lang
java.beans
java.io
java.lang
java.util
java.util.concurrent.locks
org.apache.commons.collections.map
org.apache.commons.lang
org.slf4j

de.smartics.properties.impl.config.classpath

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.impl.config.classpath.ClasspathConfigurationProperties
de.smartics.properties.impl.config.classpath.ClasspathConfigurationPropertiesFactory
None de.smartics.properties.api.config.domain
de.smartics.properties.api.config.domain.key
de.smartics.properties.api.core.domain
de.smartics.properties.spi.config.support
de.smartics.properties.spi.core.registry
de.smartics.util.lang
java.lang

de.smartics.properties.impl.config.ds

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 9 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.impl.config.ds.DataSourceConfigurationProperties
de.smartics.properties.impl.config.ds.DataSourceConfigurationPropertiesFactory
None de.smartics.properties.api.config.app
de.smartics.properties.api.config.domain
de.smartics.properties.api.config.domain.key
de.smartics.properties.api.core.domain
de.smartics.properties.impl.config.cache
de.smartics.properties.spi.config.ds
de.smartics.properties.spi.config.support
de.smartics.util.lang
java.lang

de.smartics.properties.impl.config.properties

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 0.0% 88.0% 12.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.impl.config.properties.PropertiesConfigurationProperties
de.smartics.properties.impl.config.properties.PropertiesConfigurationPropertiesFactory
de.smartics.properties.impl.config.resource
de.smartics.properties.api.config.domain
de.smartics.properties.api.config.domain.key
de.smartics.properties.api.core.domain
de.smartics.properties.spi.config.support
de.smartics.properties.spi.core.registry
de.smartics.util.lang
java.lang

de.smartics.properties.impl.config.resource

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 9 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.impl.config.resource.ResourceConfigurationPropertiesFactory
None de.smartics.properties.api.config.app
de.smartics.properties.api.config.domain
de.smartics.properties.api.config.domain.key
de.smartics.properties.impl.config.properties
de.smartics.properties.resource.repository
de.smartics.properties.spi.config.support
de.smartics.util.lang
java.lang
java.util

de.smartics.properties.spi.config.definition

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 12 0.0% 92.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.spi.config.definition.DefinitionConfigParser
de.smartics.properties.spi.config.definition.DefinitionKeyHelper
de.smartics.properties.spi.config.definition.PropertiesDefinitionContext
de.smartics.properties.spi.config.support
de.smartics.properties.api.config.domain.key
de.smartics.properties.api.core.domain
de.smartics.properties.spi.core.util
de.smartics.util.lang
java.io
java.lang
java.net
java.util
org.apache.commons.io
org.apache.commons.lang
org.jdom
org.jdom.input

de.smartics.properties.spi.config.domain

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 8 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.spi.config.domain.ConfigurationPropertiesManagementProxy
de.smartics.properties.spi.config.domain.ConfigurationPropertiesProxy
None de.smartics.properties.api.config.app
de.smartics.properties.api.config.domain
de.smartics.properties.api.config.domain.key
de.smartics.properties.api.core.domain
java.beans
java.io
java.lang
java.util

de.smartics.properties.spi.config.ds

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 12 31.0% 92.0% 24.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.spi.config.ds.AbstractDataSourceDescriptor
de.smartics.properties.spi.config.ds.DataSourceProxy
de.smartics.properties.spi.config.ds.PropertiesDataSourceAccessor
de.smartics.properties.spi.config.ds.PropertiesDataSourceDescriptor
de.smartics.properties.spi.config.ds.PropertiesDataSourceManager
de.smartics.properties.spi.config.ds.AbstractDataSourceDescriptor$Builder
de.smartics.properties.spi.config.ds.DataSourceConfigurationPropertyProvider
de.smartics.properties.spi.config.ds.DataSourceException
de.smartics.properties.spi.config.ds.DefaultDataSourceManager
de.smartics.properties.spi.config.ds.DefaultDataSourceManager$Builder
de.smartics.properties.spi.config.ds.DsPropertyCollection
de.smartics.properties.spi.config.ds.DsPropertyCollection$1
de.smartics.properties.spi.config.ds.DsPropertyCollection$ResultSetIterator
de.smartics.properties.spi.config.ds.JndiDataSourceProxy
de.smartics.properties.spi.config.ds.PropertiesStore
de.smartics.properties.spi.config.ds.PropertiesStore$Builder
de.smartics.properties.impl.config.ds
de.smartics.properties.api.config.domain
de.smartics.properties.api.config.domain.key
de.smartics.properties.api.core.app
de.smartics.util.lang
java.io
java.lang
java.sql
java.util
javax.naming
javax.sql
org.apache.commons.lang
org.slf4j

de.smartics.properties.spi.config.proxy

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 10 0.0% 91.0% 9.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.spi.config.proxy.InvalidArgumentsException
de.smartics.properties.spi.config.proxy.NotAPropertySetAnnotatedInterfaceException
de.smartics.properties.spi.config.proxy.PropertiesException
de.smartics.properties.spi.config.proxy.PropertiesProxyInvocationHandler
de.smartics.properties.spi.config.proxy.PropertyConfigurationObjectBuilder
de.smartics.properties.spi.config.proxy.PropertyMethodNameUtilities
de.smartics.properties.spi.config.proxy.PropertyMethodNotFoundException
de.smartics.properties.spi.config.support
de.smartics.properties.api.config.domain
de.smartics.properties.api.core.annotations
de.smartics.properties.api.core.domain
de.smartics.properties.spi.core.metadata
de.smartics.util.lang
java.io
java.lang
java.lang.annotation
java.lang.reflect
org.apache.commons.lang

de.smartics.properties.spi.config.resolve

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 18.0% 88.0% 6.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.spi.config.resolve.PropertyValueResolver
de.smartics.properties.spi.config.resolve.ResolveContext
de.smartics.properties.spi.config.resolve.ConfigurationPropertiesResolveContext
de.smartics.properties.spi.config.resolve.NullValuePropertyException
de.smartics.properties.spi.config.resolve.RecursivePropertyException
de.smartics.properties.spi.config.resolve.ResolveConfigurationException
de.smartics.properties.spi.config.resolve.Resolver
de.smartics.properties.spi.config.resolve.Resolver$1
de.smartics.properties.spi.config.resolve.Resolver$RecursionDetection
de.smartics.properties.spi.config.resolve.SimplePropertyValueResolver
de.smartics.properties.spi.config.resolve.UnresolvablePropertyException
de.smartics.properties.spi.config.support
de.smartics.properties.api.config.domain
de.smartics.properties.api.config.domain.key
de.smartics.properties.api.core.domain
java.io
java.lang
java.util
org.apache.commons.lang

de.smartics.properties.spi.config.support

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 26 26.0% 84.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.spi.config.support.AbstractConfigurationProperties
de.smartics.properties.spi.config.support.AbstractConfigurationPropertiesFactory
de.smartics.properties.spi.config.support.AbstractConfigurationPropertiesManagement
de.smartics.properties.spi.config.support.AbstractInMemoryConfigurationProperties
de.smartics.properties.spi.config.support.ConfigurationPropertiesManagementSpi
de.smartics.properties.spi.config.support.ConfigurationPropertiesSpi
de.smartics.properties.spi.config.support.SerializableConfigurationPropertiesManagementSpi
de.smartics.properties.spi.config.support.BootConfigurationProperties
de.smartics.properties.spi.config.support.BootLoader
de.smartics.properties.spi.config.support.ClassPathLoader
de.smartics.properties.spi.config.support.ConfigurationPropertiesManagementWithDefaults
de.smartics.properties.spi.config.support.FactoryCache
de.smartics.properties.spi.config.support.InMemoryConfigurationRepository
de.smartics.properties.spi.config.support.InMemoryConfigurationRepositoryManagement
de.smartics.properties.spi.config.support.InMemoryPropertiesManager
de.smartics.properties.spi.config.support.KeySetBuilder
de.smartics.properties.spi.config.support.MappedPropertyCollection
de.smartics.properties.spi.config.support.MappedPropertyCollection$1
de.smartics.properties.spi.config.support.MultiSourceProperties
de.smartics.properties.spi.config.support.MultiSourcePropertiesManager
de.smartics.properties.spi.config.support.NativePropertyCollection
de.smartics.properties.spi.config.support.NativePropertyCollection$1
de.smartics.properties.spi.config.support.PropertiesHelper
de.smartics.properties.spi.config.support.PropertiesPropertyCollection
de.smartics.properties.spi.config.support.PropertiesPropertyCollection$1
de.smartics.properties.spi.config.support.PropertiesPropertyProvider
de.smartics.properties.spi.config.support.PropertyLocationHelper
de.smartics.properties.impl.config.cache
de.smartics.properties.impl.config.classpath
de.smartics.properties.impl.config.ds
de.smartics.properties.impl.config.properties
de.smartics.properties.impl.config.resource
de.smartics.properties.api.config.app
de.smartics.properties.api.config.domain
de.smartics.properties.api.config.domain.key
de.smartics.properties.api.core.app
de.smartics.properties.api.core.domain
de.smartics.properties.spi.config.definition
de.smartics.properties.spi.config.proxy
de.smartics.properties.spi.config.resolve
de.smartics.properties.spi.config.validation
de.smartics.properties.spi.core.classpath
de.smartics.properties.spi.core.context
de.smartics.properties.spi.core.convert
de.smartics.properties.spi.core.metadata
de.smartics.properties.spi.core.registry
de.smartics.properties.spi.core.util
de.smartics.properties.spi.core.validate
de.smartics.util.lang
java.beans
java.io
java.lang
java.net
java.util
java.util.concurrent.locks
org.apache.commons.io
org.apache.commons.lang
org.slf4j

de.smartics.properties.spi.config.validation

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 0.0% 88.0% 12.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.spi.config.validation.ConfigurationValidator
de.smartics.properties.spi.config.support
de.smartics.properties.api.config.domain
de.smartics.properties.api.core.domain
de.smartics.util.lang
java.io
java.lang
java.util
org.slf4j

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.

Term Description
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.
Cycles Packages 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.