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
info.magnolia.cache.concurrent 5 5 0 1 4 0.0% 80.0% 20.0% 1
info.magnolia.cms.cache 1 1 0 3 3 0.0% 50.0% 50.0% 1
info.magnolia.module.cache 23 13 10 13 24 43.0% 65.0% 8.0% 1
info.magnolia.module.cache.blocking 1 0 1 0 5 100.0% 100.0% 100.0% 1
info.magnolia.module.cache.browsercachepolicy 4 3 1 1 4 25.0% 80.0% 5.0% 1
info.magnolia.module.cache.cachekey 4 2 2 4 8 50.0% 67.0% 17.0% 1
info.magnolia.module.cache.cachepolicy 4 4 0 3 17 0.0% 85.0% 15.000001% 1
info.magnolia.module.cache.cachepolicy.instructor 1 1 0 2 2 0.0% 50.0% 50.0% 1
info.magnolia.module.cache.cachepolicy.result 1 1 0 2 2 0.0% 50.0% 50.0% 1
info.magnolia.module.cache.cachepolicy.voters 4 4 0 1 8 0.0% 89.0% 11.0% 1
info.magnolia.module.cache.commands 3 3 0 0 9 0.0% 100.0% 0.0% 1
info.magnolia.module.cache.entry 1 1 0 1 5 0.0% 83.0% 17.0% 1
info.magnolia.module.cache.exception 1 1 0 2 1 0.0% 33.0% 67.0% 1
info.magnolia.module.cache.executor 7 6 1 1 18 14.0% 95.0% 9.0% 1
info.magnolia.module.cache.factory 2 2 0 2 4 0.0% 67.0% 33.0% 1
info.magnolia.module.cache.filter 26 23 3 5 28 12.0% 85.0% 4.0% 1
info.magnolia.module.cache.inject 1 1 0 2 5 0.0% 71.0% 29.0% 1
info.magnolia.module.cache.listeners 2 0 2 2 4 100.0% 67.0% 67.0% 1
info.magnolia.module.cache.mbean 2 1 1 2 12 50.0% 86.0% 36.0% 1
info.magnolia.module.cache.setup 10 10 0 0 18 0.0% 100.0% 0.0% 1
info.magnolia.module.cache.util 1 1 0 1 9 0.0% 90.0% 10.0% 1

Packages

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

info.magnolia.cache.concurrent

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 0.0% 80.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.cache.concurrent.ConcurrencyUtil
info.magnolia.cache.concurrent.LockType
info.magnolia.cache.concurrent.ReadWriteLockSync
info.magnolia.cache.concurrent.ReadWriteLockSync$1
info.magnolia.cache.concurrent.StripedReadWriteLockSync
info.magnolia.module.cache.blocking
java.lang
java.util
java.util.concurrent
java.util.concurrent.locks

info.magnolia.cms.cache

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 3 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.cms.cache.CacheConstants
info.magnolia.module.cache.cachepolicy
info.magnolia.module.cache.executor
info.magnolia.module.cache.filter
java.lang
java.util
org.apache.commons.lang3

info.magnolia.module.cache

Afferent Couplings Efferent Couplings Abstractness Instability Distance
13 24 43.0% 65.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.module.cache.AbstractCacheModule
info.magnolia.module.cache.AbstractListeningFlushPolicy
info.magnolia.module.cache.BlockingCache
info.magnolia.module.cache.BrowserCachePolicy
info.magnolia.module.cache.Cache
info.magnolia.module.cache.CacheFactory
info.magnolia.module.cache.CacheModuleLifecycleListener
info.magnolia.module.cache.CachePolicy
info.magnolia.module.cache.CachePolicyExecutor
info.magnolia.module.cache.FlushPolicy
info.magnolia.module.cache.AbstractListeningFlushPolicy$CacheCleaner
info.magnolia.module.cache.BrowserCachePolicyResult
info.magnolia.module.cache.CacheConfiguration
info.magnolia.module.cache.CacheModule
info.magnolia.module.cache.CacheModule$1
info.magnolia.module.cache.CachePolicyResult
info.magnolia.module.cache.CachePolicyResult$1
info.magnolia.module.cache.CachePolicyResult$CachePolicyBehaviour
info.magnolia.module.cache.ContentCachingConfiguration
info.magnolia.module.cache.ContentCompression
info.magnolia.module.cache.DefaultCacheKey
info.magnolia.module.cache.DelegateFlushPolicy
info.magnolia.module.cache.FlushAllListeningPolicy
info.magnolia.module.cache.blocking
info.magnolia.module.cache.browsercachepolicy
info.magnolia.module.cache.cachepolicy
info.magnolia.module.cache.cachepolicy.result
info.magnolia.module.cache.commands
info.magnolia.module.cache.executor
info.magnolia.module.cache.factory
info.magnolia.module.cache.filter
info.magnolia.module.cache.inject
info.magnolia.module.cache.listeners
info.magnolia.module.cache.mbean
info.magnolia.module.cache.setup
info.magnolia.module.cache.util
info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.event
info.magnolia.module
info.magnolia.module.cache.browsercachepolicy
info.magnolia.module.cache.cachekey
info.magnolia.module.cache.cachepolicy
info.magnolia.module.cache.cachepolicy.result
info.magnolia.module.cache.executor
info.magnolia.module.cache.factory
info.magnolia.module.cache.listeners
info.magnolia.module.cache.mbean
info.magnolia.objectfactory
info.magnolia.repository
info.magnolia.voting.voters
java.io
java.lang
java.util
javax.jcr
javax.jcr.observation
javax.servlet
javax.servlet.http
org.apache.commons.lang3
org.slf4j

info.magnolia.module.cache.blocking

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.module.cache.blocking.AbstractBlockingCache
None None info.magnolia.cache.concurrent
info.magnolia.module.cache
info.magnolia.module.cache.exception
info.magnolia.module.cache.listeners
java.lang

info.magnolia.module.cache.browsercachepolicy

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 25.0% 80.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.module.cache.browsercachepolicy.AbstractVoterBased
info.magnolia.module.cache.browsercachepolicy.BrowserCachePolicySet
info.magnolia.module.cache.browsercachepolicy.FixedDuration
info.magnolia.module.cache.browsercachepolicy.Never
info.magnolia.module.cache
info.magnolia.module.cache
info.magnolia.voting.voters
java.lang
java.util

info.magnolia.module.cache.cachekey

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 8 50.0% 67.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.module.cache.cachekey.CacheKey
info.magnolia.module.cache.cachekey.CacheKeyGenerator
info.magnolia.module.cache.cachekey.DefaultCacheKey
info.magnolia.module.cache.cachekey.DefaultCacheKeyGenerator
info.magnolia.module.cache
info.magnolia.module.cache.cachepolicy
info.magnolia.module.cache.cachepolicy.instructor
info.magnolia.module.cache.mbean
info.magnolia.cms.core
info.magnolia.cms.security
info.magnolia.context
java.io
java.lang
java.util
javax.servlet.http
org.apache.commons.lang3

info.magnolia.module.cache.cachepolicy

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 17 0.0% 85.0% 15.000001%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.module.cache.cachepolicy.Default
info.magnolia.module.cache.cachepolicy.Default$1
info.magnolia.module.cache.cachepolicy.Never
info.magnolia.module.cache.cachepolicy.XMagnoliaCacheAttribute
info.magnolia.module.cache
info.magnolia.module.cache.commands
info.magnolia.module.cache.mbean
info.magnolia.cms.cache
info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.context
info.magnolia.module.cache
info.magnolia.module.cache.cachekey
info.magnolia.module.cache.cachepolicy.instructor
info.magnolia.module.cache.cachepolicy.voters
info.magnolia.module.cache.filter
info.magnolia.objectfactory
info.magnolia.voting.voters
java.lang
java.util
javax.inject
javax.servlet.http
org.apache.commons.lang3
org.slf4j

info.magnolia.module.cache.cachepolicy.instructor

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 2 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.module.cache.cachepolicy.instructor.CacheInstructor
info.magnolia.module.cache.cachepolicy
info.magnolia.module.cache.cachepolicy.voters
info.magnolia.module.cache.cachekey
java.lang

info.magnolia.module.cache.cachepolicy.result

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 2 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.module.cache.cachepolicy.result.CachePolicyResultProvider
info.magnolia.module.cache
info.magnolia.module.cache.filter
info.magnolia.module.cache
java.lang

info.magnolia.module.cache.cachepolicy.voters

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 0.0% 89.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.module.cache.cachepolicy.voters.BrowserTtlVoter
info.magnolia.module.cache.cachepolicy.voters.ServerTtlVoter
info.magnolia.module.cache.cachepolicy.voters.ServerTtlVoter$1
info.magnolia.module.cache.cachepolicy.voters.TtlVoting
info.magnolia.module.cache.cachepolicy
info.magnolia.module.cache.cachepolicy.instructor
info.magnolia.module.cache.filter
info.magnolia.objectfactory
info.magnolia.voting
info.magnolia.voting.voters
java.lang
javax.inject
org.slf4j

info.magnolia.module.cache.commands

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 info.magnolia.module.cache.commands.FlushCachesCommand
info.magnolia.module.cache.commands.FlushFromCachesByUUIDCommand
info.magnolia.module.cache.commands.FlushNamedCacheCommand
None info.magnolia.commands
info.magnolia.context
info.magnolia.module.cache
info.magnolia.module.cache.cachepolicy
info.magnolia.module.cache.inject
info.magnolia.objectfactory
java.lang
java.util
org.apache.commons.lang3

info.magnolia.module.cache.entry

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 0.0% 83.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.module.cache.entry.SingleReplayCacheEntryWrapper
info.magnolia.module.cache.filter
info.magnolia.module.cache.filter
java.io
java.lang
javax.servlet
javax.servlet.http

info.magnolia.module.cache.exception

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 1 0.0% 33.0% 67.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.module.cache.exception.MgnlLockTimeoutException
info.magnolia.module.cache.blocking
info.magnolia.module.cache.filter
java.lang

info.magnolia.module.cache.executor

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 18 14.0% 95.0% 9.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.module.cache.executor.AbstractExecutor
info.magnolia.module.cache.executor.Bypass
info.magnolia.module.cache.executor.CompositeExecutor
info.magnolia.module.cache.executor.CompositeExecutorTransformer
info.magnolia.module.cache.executor.SetExpirationHeaders
info.magnolia.module.cache.executor.Store
info.magnolia.module.cache.executor.UseCache
info.magnolia.module.cache
info.magnolia.cms.cache
info.magnolia.cms.core
info.magnolia.context
info.magnolia.jcr.node2bean.impl
info.magnolia.jcr.util
info.magnolia.module
info.magnolia.module.cache
info.magnolia.module.cache.filter
info.magnolia.objectfactory
info.magnolia.voting.voters
java.io
java.lang
javax.jcr
javax.servlet
javax.servlet.http
org.apache.commons.io.output
org.apache.commons.lang3
org.slf4j

info.magnolia.module.cache.factory

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 4 0.0% 67.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.module.cache.factory.DelegatingCacheFactory
info.magnolia.module.cache.factory.DelegatingCacheFactory$NullCache
info.magnolia.module.cache
info.magnolia.module.cache.inject
info.magnolia.module.cache
java.lang
java.util
org.slf4j

info.magnolia.module.cache.filter

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 28 12.0% 85.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.module.cache.filter.AbstractThresholdingCacheOutputStream
info.magnolia.module.cache.filter.CachedEntry
info.magnolia.module.cache.filter.ContentCachedEntry
info.magnolia.module.cache.filter.CacheFilter
info.magnolia.module.cache.filter.CacheFilter$1
info.magnolia.module.cache.filter.CacheFilter$2
info.magnolia.module.cache.filter.CacheFilter$3
info.magnolia.module.cache.filter.CacheHeadersFilter
info.magnolia.module.cache.filter.CacheResponseWrapper
info.magnolia.module.cache.filter.CacheResponseWrapper$1
info.magnolia.module.cache.filter.CacheResponseWrapper$ThresholdingCacheOutputStream
info.magnolia.module.cache.filter.CachedError
info.magnolia.module.cache.filter.CachedRedirect
info.magnolia.module.cache.filter.ContentCachedEntry$1
info.magnolia.module.cache.filter.DelegatingBlobCachedEntry
info.magnolia.module.cache.filter.GZipFilter
info.magnolia.module.cache.filter.GZipFilter$1
info.magnolia.module.cache.filter.GZipFilter$GZipCacheResponseWrapper
info.magnolia.module.cache.filter.GZipFilter$GZipCacheResponseWrapper$DeferredServletOutputStream
info.magnolia.module.cache.filter.GZipFilter$GzipThresholdingCacheOutputStream
info.magnolia.module.cache.filter.InMemoryCachedEntry
info.magnolia.module.cache.filter.ResponseExpirationCalculator
info.magnolia.module.cache.filter.ResponseExpirationCalculator$HeaderEntry
info.magnolia.module.cache.filter.SimpleServletOutputStream
info.magnolia.module.cache.filter.StandaloneGZipFilter
info.magnolia.module.cache.filter.UncacheableEntry
info.magnolia.module.cache.cachepolicy
info.magnolia.module.cache.cachepolicy.voters
info.magnolia.module.cache.entry
info.magnolia.module.cache.executor
info.magnolia.module.cache.setup
info.magnolia.cms.cache
info.magnolia.cms.core
info.magnolia.cms.filters
info.magnolia.cms.util
info.magnolia.context
info.magnolia.module.cache
info.magnolia.module.cache.cachepolicy.result
info.magnolia.module.cache.entry
info.magnolia.module.cache.exception
info.magnolia.module.cache.mbean
info.magnolia.module.cache.util
info.magnolia.objectfactory
java.io
java.lang
java.util
javax.inject
javax.servlet
javax.servlet.http
org.apache.commons.collections4
org.apache.commons.collections4.map
org.apache.commons.io
org.apache.commons.io.output
org.apache.commons.lang3.builder
org.apache.commons.lang3.exception
org.apache.http
org.apache.http.client.utils
org.apache.http.message
org.slf4j

info.magnolia.module.cache.inject

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 5 0.0% 71.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.module.cache.inject.CacheFactoryProvider
info.magnolia.module.cache.commands
info.magnolia.module.cache.mbean
info.magnolia.module.cache
info.magnolia.module.cache.factory
java.lang
java.util
javax.inject

info.magnolia.module.cache.listeners

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 4 100.0% 67.0% 67.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.module.cache.listeners.AbstractCacheListener
info.magnolia.module.cache.listeners.AbstractListeningCacheWrapper
None info.magnolia.module.cache
info.magnolia.module.cache.blocking
info.magnolia.module.cache
java.lang
java.util
org.slf4j

info.magnolia.module.cache.mbean

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 12 50.0% 86.0% 36.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.module.cache.mbean.CacheMonitorMBean
info.magnolia.module.cache.mbean.CacheMonitor
info.magnolia.module.cache
info.magnolia.module.cache.filter
info.magnolia.cms.util
info.magnolia.commands
info.magnolia.commands.chain
info.magnolia.context
info.magnolia.module.cache
info.magnolia.module.cache.cachekey
info.magnolia.module.cache.cachepolicy
info.magnolia.module.cache.inject
info.magnolia.objectfactory
java.lang
java.util
javax.inject

info.magnolia.module.cache.setup

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 18 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.module.cache.setup.CacheModuleVersionHandler
info.magnolia.module.cache.setup.CacheModuleVersionHandler$1
info.magnolia.module.cache.setup.ExcludeWorkspacesFromFlushCachePolicy
info.magnolia.module.cache.setup.MigrateCacheFilterConfigurationTask
info.magnolia.module.cache.setup.MigrateEhcache15ConfigurationTask
info.magnolia.module.cache.setup.MigrateFlushListeningPolicyTask
info.magnolia.module.cache.setup.RemoveCacheTempFilesTask
info.magnolia.module.cache.setup.RemoveCacheTempFilesTask$1
info.magnolia.module.cache.setup.RemoveVirtualUriMappingTask
info.magnolia.module.cache.setup.SupportForMultipleCacheImplementationsTask
None info.magnolia.cms.core
info.magnolia.context
info.magnolia.jcr.iterator
info.magnolia.jcr.predicate
info.magnolia.jcr.util
info.magnolia.module
info.magnolia.module.cache
info.magnolia.module.cache.filter
info.magnolia.module.delta
info.magnolia.objectfactory
info.magnolia.repository
info.magnolia.voting.voters
java.io
java.lang
java.util
javax.jcr
org.apache.commons.lang3
org.slf4j

info.magnolia.module.cache.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 9 0.0% 90.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.module.cache.util.GZipUtil
info.magnolia.module.cache.filter
info.magnolia.cms.util
info.magnolia.module.cache
info.magnolia.objectfactory
info.magnolia.voting.voters
java.io
java.lang
java.util
java.util.zip
javax.servlet.http

Cycles

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

Package Package Dependencies
info.magnolia.module.cache info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.blocking info.magnolia.module.cache.listeners
info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.browsercachepolicy info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.cachepolicy info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.cachepolicy.result info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.cachepolicy.voters info.magnolia.module.cache.filter
info.magnolia.module.cache.cachepolicy.result
info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.commands info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.entry info.magnolia.module.cache.filter
info.magnolia.module.cache.cachepolicy.result
info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.executor info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.factory info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache.filter info.magnolia.module.cache.cachepolicy.result
info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.inject info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.listeners info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.mbean info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.setup info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache
info.magnolia.module.cache.util info.magnolia.module.cache
info.magnolia.module.cache.mbean
info.magnolia.module.cache.inject
info.magnolia.module.cache.factory
info.magnolia.module.cache

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.