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.fulcrum.jce.crypto9632533.0%71.0%5.0%1
org.apache.fulcrum.yaafi.cli330070.0%100.0%0.0%1
org.apache.fulcrum.yaafi.framework.component41311075.0%91.0%66.0%1
org.apache.fulcrum.yaafi.framework.configuration3121767.0%88.0%54.000004%1
org.apache.fulcrum.yaafi.framework.constant40411100.0%50.0%50.0%1
org.apache.fulcrum.yaafi.framework.container41331875.0%86.0%61.0%1
org.apache.fulcrum.yaafi.framework.context220140.0%80.0%20.0%1
org.apache.fulcrum.yaafi.framework.factory2201110.0%92.0%8.0%1
org.apache.fulcrum.yaafi.framework.interceptor5326740.0%54.000004%6.0%1
org.apache.fulcrum.yaafi.framework.locking8531338.0%75.0%12.0%1
org.apache.fulcrum.yaafi.framework.reflection110330.0%50.0%50.0%1
org.apache.fulcrum.yaafi.framework.role4222450.0%67.0%17.0%1
org.apache.fulcrum.yaafi.framework.tls4311225.0%67.0%8.0%1
org.apache.fulcrum.yaafi.framework.util7701260.0%33.0%67.0%1
org.apache.fulcrum.yaafi.interceptor.baseservice110390.0%75.0%25.0%1
org.apache.fulcrum.yaafi.interceptor.jamon53201340.0%100.0%40.0%1
org.apache.fulcrum.yaafi.interceptor.logging21101050.0%100.0%50.0%1
org.apache.fulcrum.yaafi.interceptor.performance21101050.0%100.0%50.0%1
org.apache.fulcrum.yaafi.interceptor.util5413520.0%62.0%18.0%1
org.apache.fulcrum.yaafi.service.advice2110850.0%100.0%50.0%1
org.apache.fulcrum.yaafi.service.baseservice20208100.0%100.0%100.0%1
org.apache.fulcrum.yaafi.service.reconfiguration32101033.0%100.0%33.0%1
org.apache.fulcrum.yaafi.service.servicemanager2110650.0%100.0%50.0%1
org.apache.fulcrum.yaafi.service.shutdown4310925.0%100.0%25.0%1
org.apache.fulcrum.yaafi.service.systemproperty2110350.0%100.0%50.0%1

Packages

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

org.apache.fulcrum.jce.crypto

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2533.0%71.0%5.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.jce.crypto.CryptoParameters
org.apache.fulcrum.jce.crypto.CryptoStreamFactory
org.apache.fulcrum.jce.crypto.PasswordParameters
org.apache.fulcrum.jce.crypto.CryptoStreamFactoryImpl
org.apache.fulcrum.jce.crypto.CryptoUtil
org.apache.fulcrum.jce.crypto.HexConverter
org.apache.fulcrum.jce.crypto.Main
org.apache.fulcrum.jce.crypto.PasswordFactory
org.apache.fulcrum.jce.crypto.SmartDecryptingInputStream
org.apache.fulcrum.yaafi.framework.container
org.apache.fulcrum.yaafi.framework.factory
java.io
java.lang
java.security
javax.crypto
javax.crypto.spec

org.apache.fulcrum.yaafi.cli

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
070.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.fulcrum.yaafi.cli.Getopt
org.apache.fulcrum.yaafi.cli.Main
org.apache.fulcrum.yaafi.cli.Shutdown
Nonejava.io
java.lang
org.apache.avalon.framework.activity
org.apache.avalon.framework.logger
org.apache.avalon.framework.service
org.apache.fulcrum.yaafi.framework.container
org.apache.fulcrum.yaafi.framework.factory

org.apache.fulcrum.yaafi.framework.component

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
11075.0%91.0%66.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.framework.component.ServiceComponent
org.apache.fulcrum.yaafi.framework.component.ServiceComponentImpl
org.apache.fulcrum.yaafi.framework.component.ServiceComponentLifecycle
org.apache.fulcrum.yaafi.framework.component.AvalonServiceComponentImpl
org.apache.fulcrum.yaafi.framework.container
java.lang
org.apache.avalon.framework.activity
org.apache.avalon.framework.configuration
org.apache.avalon.framework.context
org.apache.avalon.framework.logger
org.apache.avalon.framework.parameters
org.apache.avalon.framework.service
org.apache.fulcrum.yaafi.framework.interceptor
org.apache.fulcrum.yaafi.framework.role
org.apache.fulcrum.yaafi.framework.util

org.apache.fulcrum.yaafi.framework.configuration

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1767.0%88.0%54.000004%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.framework.configuration.ComponentConfigurationPropertiesResolver
org.apache.fulcrum.yaafi.framework.configuration.ComponentConfigurationPropertiesResolverBaseImpl
org.apache.fulcrum.yaafi.framework.configuration.ComponentConfigurationPropertiesResolverImpl
org.apache.fulcrum.yaafi.framework.container
java.io
java.lang
java.util
org.apache.avalon.framework.configuration
org.apache.avalon.framework.context
org.apache.avalon.framework.logger
org.apache.fulcrum.yaafi.framework.util

org.apache.fulcrum.yaafi.framework.constant

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
11100.0%50.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.framework.constant.AvalonFortressConstants
org.apache.fulcrum.yaafi.framework.constant.AvalonMerlinConstants
org.apache.fulcrum.yaafi.framework.constant.AvalonPhoenixConstants
org.apache.fulcrum.yaafi.framework.constant.AvalonYaafiConstants
Noneorg.apache.fulcrum.yaafi.framework.container
java.lang

org.apache.fulcrum.yaafi.framework.container

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
31875.0%86.0%61.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.framework.container.ServiceConstants
org.apache.fulcrum.yaafi.framework.container.ServiceContainer
org.apache.fulcrum.yaafi.framework.container.ServiceLifecycleManager
org.apache.fulcrum.yaafi.framework.container.ServiceContainerImpl
org.apache.fulcrum.yaafi.cli
org.apache.fulcrum.yaafi.framework.factory
org.apache.fulcrum.yaafi.service.reconfiguration
java.io
java.lang
java.security
java.util
org.apache.avalon.framework.activity
org.apache.avalon.framework.configuration
org.apache.avalon.framework.container
org.apache.avalon.framework.context
org.apache.avalon.framework.logger
org.apache.avalon.framework.parameters
org.apache.avalon.framework.service
org.apache.fulcrum.jce.crypto
org.apache.fulcrum.yaafi.framework.component
org.apache.fulcrum.yaafi.framework.configuration
org.apache.fulcrum.yaafi.framework.constant
org.apache.fulcrum.yaafi.framework.context
org.apache.fulcrum.yaafi.framework.role
org.apache.fulcrum.yaafi.framework.util

org.apache.fulcrum.yaafi.framework.context

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
140.0%80.0%20.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.fulcrum.yaafi.framework.context.AvalonToYaafiContextMapper
org.apache.fulcrum.yaafi.framework.context.YaafiToAvalonContextMapper
org.apache.fulcrum.yaafi.framework.container
java.io
java.lang
org.apache.avalon.framework.context
org.apache.fulcrum.yaafi.framework.util

org.apache.fulcrum.yaafi.framework.factory

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1110.0%92.0%8.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.fulcrum.yaafi.framework.factory.ServiceContainerConfiguration
org.apache.fulcrum.yaafi.framework.factory.ServiceContainerFactory
org.apache.fulcrum.yaafi.cli
java.io
java.lang
java.util
org.apache.avalon.framework.configuration
org.apache.avalon.framework.container
org.apache.avalon.framework.context
org.apache.avalon.framework.logger
org.apache.avalon.framework.service
org.apache.fulcrum.jce.crypto
org.apache.fulcrum.yaafi.framework.container
org.apache.fulcrum.yaafi.framework.util

org.apache.fulcrum.yaafi.framework.interceptor

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
6740.0%54.000004%6.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.framework.interceptor.AvalonInterceptorContext
org.apache.fulcrum.yaafi.framework.interceptor.AvalonInterceptorService
org.apache.fulcrum.yaafi.framework.interceptor.AvalonInterceptorContextImpl
org.apache.fulcrum.yaafi.framework.interceptor.AvalonInterceptorFactory
org.apache.fulcrum.yaafi.framework.interceptor.AvalonInterceptorInvocationHandler
org.apache.fulcrum.yaafi.framework.component
org.apache.fulcrum.yaafi.interceptor.baseservice
org.apache.fulcrum.yaafi.interceptor.jamon
org.apache.fulcrum.yaafi.interceptor.logging
org.apache.fulcrum.yaafi.interceptor.performance
org.apache.fulcrum.yaafi.service.advice
java.lang
java.lang.reflect
java.util
org.apache.avalon.framework.service
org.apache.fulcrum.yaafi.framework.reflection
org.apache.fulcrum.yaafi.framework.tls
org.apache.fulcrum.yaafi.framework.util

org.apache.fulcrum.yaafi.framework.locking

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1338.0%75.0%12.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.framework.locking.LoggerFacade
org.apache.fulcrum.yaafi.framework.locking.MultiLevelLock
org.apache.fulcrum.yaafi.framework.locking.MultiLevelLock2
org.apache.fulcrum.yaafi.framework.locking.AvalonLoggerFacade
org.apache.fulcrum.yaafi.framework.locking.GenericLock
org.apache.fulcrum.yaafi.framework.locking.GenericLock$LockOwner
org.apache.fulcrum.yaafi.framework.locking.LockException
org.apache.fulcrum.yaafi.framework.locking.ReadWriteLock
org.apache.fulcrum.yaafi.framework.util
java.lang
java.util
org.apache.avalon.framework.logger

org.apache.fulcrum.yaafi.framework.reflection

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
330.0%50.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.fulcrum.yaafi.framework.reflection.Clazz
org.apache.fulcrum.yaafi.framework.interceptor
org.apache.fulcrum.yaafi.interceptor.jamon
org.apache.fulcrum.yaafi.interceptor.logging
java.lang
java.lang.reflect
java.util

org.apache.fulcrum.yaafi.framework.role

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2450.0%67.0%17.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.framework.role.RoleConfigurationParser
org.apache.fulcrum.yaafi.framework.role.RoleEntry
org.apache.fulcrum.yaafi.framework.role.RoleConfigurationParserImpl
org.apache.fulcrum.yaafi.framework.role.RoleEntryImpl
org.apache.fulcrum.yaafi.framework.component
org.apache.fulcrum.yaafi.framework.container
java.lang
java.util
org.apache.avalon.framework.configuration
org.apache.fulcrum.yaafi.framework.util

org.apache.fulcrum.yaafi.framework.tls

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1225.0%67.0%8.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.framework.tls.ThreadLocalStorage
org.apache.fulcrum.yaafi.framework.tls.ThreadLocalStorageImpl
org.apache.fulcrum.yaafi.framework.tls.ThreadLocalStorageImpl$1
org.apache.fulcrum.yaafi.framework.tls.ThreadLocalStorageImpl$CleanableThreadLocal
org.apache.fulcrum.yaafi.framework.interceptor
java.lang
java.util

org.apache.fulcrum.yaafi.framework.util

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1260.0%33.0%67.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.fulcrum.yaafi.framework.util.ConfigurationUtil
org.apache.fulcrum.yaafi.framework.util.ExceptionUtils
org.apache.fulcrum.yaafi.framework.util.InputStreamLocator
org.apache.fulcrum.yaafi.framework.util.ReadWriteLock
org.apache.fulcrum.yaafi.framework.util.StringUtils
org.apache.fulcrum.yaafi.framework.util.ToStringBuilder
org.apache.fulcrum.yaafi.framework.util.Validate
org.apache.fulcrum.yaafi.framework.component
org.apache.fulcrum.yaafi.framework.configuration
org.apache.fulcrum.yaafi.framework.container
org.apache.fulcrum.yaafi.framework.context
org.apache.fulcrum.yaafi.framework.factory
org.apache.fulcrum.yaafi.framework.interceptor
org.apache.fulcrum.yaafi.framework.role
org.apache.fulcrum.yaafi.interceptor.baseservice
org.apache.fulcrum.yaafi.interceptor.util
org.apache.fulcrum.yaafi.service.advice
org.apache.fulcrum.yaafi.service.reconfiguration
org.apache.fulcrum.yaafi.service.shutdown
java.io
java.lang
java.util
org.apache.avalon.framework.configuration
org.apache.avalon.framework.logger
org.apache.fulcrum.yaafi.framework.locking

org.apache.fulcrum.yaafi.interceptor.baseservice

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
390.0%75.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.apache.fulcrum.yaafi.interceptor.baseservice.BaseInterceptorServiceImpl
org.apache.fulcrum.yaafi.interceptor.jamon
org.apache.fulcrum.yaafi.interceptor.logging
org.apache.fulcrum.yaafi.interceptor.performance
java.io
java.lang
java.util
org.apache.avalon.framework.configuration
org.apache.avalon.framework.context
org.apache.avalon.framework.logger
org.apache.avalon.framework.service
org.apache.fulcrum.yaafi.framework.interceptor
org.apache.fulcrum.yaafi.framework.util

org.apache.fulcrum.yaafi.interceptor.jamon

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01340.0%100.0%40.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.interceptor.jamon.JamonInterceptorService
org.apache.fulcrum.yaafi.interceptor.jamon.JamonPerformanceMonitor
org.apache.fulcrum.yaafi.interceptor.jamon.Jamon1PerformanceMonitorImpl
org.apache.fulcrum.yaafi.interceptor.jamon.Jamon2PerformanceMonitorImpl
org.apache.fulcrum.yaafi.interceptor.jamon.JamonInterceptorServiceImpl
Nonecom.jamonapi
java.io
java.lang
java.lang.reflect
java.util
org.apache.avalon.framework.activity
org.apache.avalon.framework.configuration
org.apache.avalon.framework.logger
org.apache.avalon.framework.thread
org.apache.fulcrum.yaafi.framework.interceptor
org.apache.fulcrum.yaafi.framework.reflection
org.apache.fulcrum.yaafi.interceptor.baseservice
org.apache.fulcrum.yaafi.interceptor.util

org.apache.fulcrum.yaafi.interceptor.logging

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01050.0%100.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.interceptor.logging.LoggingInterceptorService
org.apache.fulcrum.yaafi.interceptor.logging.LoggingInterceptorServiceImpl
Nonejava.lang
java.lang.reflect
java.util
org.apache.avalon.framework.activity
org.apache.avalon.framework.configuration
org.apache.avalon.framework.logger
org.apache.fulcrum.yaafi.framework.interceptor
org.apache.fulcrum.yaafi.framework.reflection
org.apache.fulcrum.yaafi.interceptor.baseservice
org.apache.fulcrum.yaafi.interceptor.util

org.apache.fulcrum.yaafi.interceptor.performance

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01050.0%100.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.interceptor.performance.PerformanceInterceptorService
org.apache.fulcrum.yaafi.interceptor.performance.PerformanceInterceptorServiceImpl
Nonejava.lang
java.lang.reflect
java.util
org.apache.avalon.framework.configuration
org.apache.avalon.framework.context
org.apache.avalon.framework.logger
org.apache.avalon.framework.thread
org.apache.fulcrum.yaafi.framework.interceptor
org.apache.fulcrum.yaafi.interceptor.baseservice
org.apache.fulcrum.yaafi.interceptor.util

org.apache.fulcrum.yaafi.interceptor.util

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
3520.0%62.0%18.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.interceptor.util.InterceptorToStringBuilder
org.apache.fulcrum.yaafi.interceptor.util.ArgumentToStringBuilderImpl
org.apache.fulcrum.yaafi.interceptor.util.DefaultToStringBuilderImpl
org.apache.fulcrum.yaafi.interceptor.util.MethodToStringBuilderImpl
org.apache.fulcrum.yaafi.interceptor.util.StopWatch
org.apache.fulcrum.yaafi.interceptor.jamon
org.apache.fulcrum.yaafi.interceptor.logging
org.apache.fulcrum.yaafi.interceptor.performance
java.io
java.lang
java.lang.reflect
java.util
org.apache.fulcrum.yaafi.framework.util

org.apache.fulcrum.yaafi.service.advice

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0850.0%100.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.service.advice.AdviceService
org.apache.fulcrum.yaafi.service.advice.AdviceServiceImpl
Nonejava.lang
java.lang.reflect
org.apache.avalon.framework.configuration
org.apache.avalon.framework.context
org.apache.avalon.framework.logger
org.apache.avalon.framework.service
org.apache.fulcrum.yaafi.framework.interceptor
org.apache.fulcrum.yaafi.framework.util

org.apache.fulcrum.yaafi.service.baseservice

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
08100.0%100.0%100.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.service.baseservice.BaseService
org.apache.fulcrum.yaafi.service.baseservice.BaseServiceImpl
NoneNonejava.io
java.lang
org.apache.avalon.framework.activity
org.apache.avalon.framework.configuration
org.apache.avalon.framework.context
org.apache.avalon.framework.logger
org.apache.avalon.framework.parameters
org.apache.avalon.framework.service

org.apache.fulcrum.yaafi.service.reconfiguration

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01033.0%100.0%33.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.service.reconfiguration.ReconfigurationService
org.apache.fulcrum.yaafi.service.reconfiguration.ReconfigurationEntry
org.apache.fulcrum.yaafi.service.reconfiguration.ReconfigurationServiceImpl
Nonejava.io
java.lang
java.security
org.apache.avalon.framework.activity
org.apache.avalon.framework.configuration
org.apache.avalon.framework.context
org.apache.avalon.framework.logger
org.apache.avalon.framework.service
org.apache.fulcrum.yaafi.framework.container
org.apache.fulcrum.yaafi.framework.util

org.apache.fulcrum.yaafi.service.servicemanager

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0650.0%100.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.service.servicemanager.ServiceManagerService
org.apache.fulcrum.yaafi.service.servicemanager.ServiceManagerServiceImpl
Nonejava.lang
org.apache.avalon.framework.activity
org.apache.avalon.framework.context
org.apache.avalon.framework.logger
org.apache.avalon.framework.parameters
org.apache.avalon.framework.service

org.apache.fulcrum.yaafi.service.shutdown

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0925.0%100.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.service.shutdown.ShutdownService
org.apache.fulcrum.yaafi.service.shutdown.Shutdown
org.apache.fulcrum.yaafi.service.shutdown.ShutdownEntry
org.apache.fulcrum.yaafi.service.shutdown.ShutdownServiceImpl
Nonejava.io
java.lang
java.security
org.apache.avalon.framework.activity
org.apache.avalon.framework.configuration
org.apache.avalon.framework.context
org.apache.avalon.framework.logger
org.apache.avalon.framework.service
org.apache.fulcrum.yaafi.framework.util

org.apache.fulcrum.yaafi.service.systemproperty

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0350.0%100.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.fulcrum.yaafi.service.systemproperty.SystemPropertyService
org.apache.fulcrum.yaafi.service.systemproperty.SystemPropertyServiceImpl
Nonejava.lang
org.apache.avalon.framework.configuration
org.apache.avalon.framework.logger

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.

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.