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 ]Packages
[ summary ] [ packages ] [ cycles ] [ explanations ]org.apache.fulcrum.yaafi.cli
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 | org.apache.fulcrum.yaafi.cli.Getopt org.apache.fulcrum.yaafi.cli.Main org.apache.fulcrum.yaafi.cli.Shutdown |
None | java.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 Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 10 | 75.0% | 91.0% | 66.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses 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 Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 8 | 67.0% | 89.0% | 56.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses 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.constant org.apache.fulcrum.yaafi.framework.util |
org.apache.fulcrum.yaafi.framework.constant
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
6 | 1 | 100.0% | 14.0% | 14.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses 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 |
None | 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 |
java.lang |
org.apache.fulcrum.yaafi.framework.container
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 18 | 75.0% | 86.0% | 61.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses 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.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.commons.lang3 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.crypto org.apache.fulcrum.yaafi.framework.role org.apache.fulcrum.yaafi.framework.util |
org.apache.fulcrum.yaafi.framework.context
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 | org.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.constant org.apache.fulcrum.yaafi.framework.util |
org.apache.fulcrum.yaafi.framework.crypto
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 3 | 0.0% | 60.000004% | 40.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.fulcrum.yaafi.framework.crypto.CryptoStreamFactory |
org.apache.fulcrum.yaafi.framework.container org.apache.fulcrum.yaafi.framework.factory |
java.io java.lang org.apache.fulcrum.yaafi.framework.reflection |
org.apache.fulcrum.yaafi.framework.factory
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 13 | 0.0% | 93.0% | 7.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.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.commons.lang3 org.apache.fulcrum.yaafi.framework.constant org.apache.fulcrum.yaafi.framework.container org.apache.fulcrum.yaafi.framework.crypto org.apache.fulcrum.yaafi.framework.util |
org.apache.fulcrum.yaafi.framework.interceptor
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
7 | 9 | 40.0% | 56.0% | 4.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses 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.javasimon 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 java.util.concurrent.atomic org.apache.avalon.framework.service org.apache.fulcrum.yaafi.framework.constant org.apache.fulcrum.yaafi.framework.reflection org.apache.fulcrum.yaafi.framework.tls org.apache.fulcrum.yaafi.framework.util |
org.apache.fulcrum.yaafi.framework.logger
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 3 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.fulcrum.yaafi.framework.logger.Log4j2Logger |
None | java.lang org.apache.avalon.framework.logger org.apache.logging.log4j |
org.apache.fulcrum.yaafi.framework.reflection
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
5 | 3 | 0.0% | 38.0% | 62.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.fulcrum.yaafi.framework.reflection.Clazz |
org.apache.fulcrum.yaafi.framework.crypto org.apache.fulcrum.yaafi.framework.interceptor org.apache.fulcrum.yaafi.interceptor.jamon org.apache.fulcrum.yaafi.interceptor.javasimon org.apache.fulcrum.yaafi.interceptor.logging |
java.lang java.lang.reflect java.util |
org.apache.fulcrum.yaafi.framework.role
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 5 | 50.0% | 71.0% | 21.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses 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.constant org.apache.fulcrum.yaafi.framework.util |
org.apache.fulcrum.yaafi.framework.tls
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 2 | 25.0% | 67.0% | 8.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses 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 Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
10 | 6 | 0.0% | 38.0% | 62.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.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.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.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.commons.lang3 |
org.apache.fulcrum.yaafi.interceptor.baseservice
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
4 | 9 | 0.0% | 69.0% | 31.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.fulcrum.yaafi.interceptor.baseservice.BaseInterceptorServiceImpl |
org.apache.fulcrum.yaafi.interceptor.jamon org.apache.fulcrum.yaafi.interceptor.javasimon 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.commons.lang3 org.apache.fulcrum.yaafi.framework.interceptor |
org.apache.fulcrum.yaafi.interceptor.jamon
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 13 | 40.0% | 100.0% | 40.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses 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 |
None | com.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.javasimon
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 13 | 50.0% | 100.0% | 50.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.fulcrum.yaafi.interceptor.javasimon.JavaSimonInterceptorService org.apache.fulcrum.yaafi.interceptor.javasimon.JavaSimonPerformanceMonitor |
org.apache.fulcrum.yaafi.interceptor.javasimon.JavaSimon4PerformanceMonitorImpl org.apache.fulcrum.yaafi.interceptor.javasimon.JavaSimonInterceptorServiceImpl |
None | 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.javasimon |
org.apache.fulcrum.yaafi.interceptor.logging
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 10 | 50.0% | 100.0% | 50.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.fulcrum.yaafi.interceptor.logging.LoggingInterceptorService |
org.apache.fulcrum.yaafi.interceptor.logging.LoggingInterceptorServiceImpl |
None | java.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 Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 10 | 50.0% | 100.0% | 50.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.fulcrum.yaafi.interceptor.performance.PerformanceInterceptorService |
org.apache.fulcrum.yaafi.interceptor.performance.PerformanceInterceptorServiceImpl |
None | java.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 Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
4 | 5 | 20.0% | 56.0% | 24.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses 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.javasimon org.apache.fulcrum.yaafi.interceptor.logging org.apache.fulcrum.yaafi.interceptor.performance |
java.io java.lang java.lang.reflect java.util org.apache.commons.lang3 |
org.apache.fulcrum.yaafi.service.advice
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 8 | 50.0% | 100.0% | 50.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.fulcrum.yaafi.service.advice.AdviceService |
org.apache.fulcrum.yaafi.service.advice.AdviceServiceImpl |
None | java.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 Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 8 | 100.0% | 100.0% | 100.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.fulcrum.yaafi.service.baseservice.BaseService org.apache.fulcrum.yaafi.service.baseservice.BaseServiceImpl |
None | None | java.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 Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 12 | 33.0% | 100.0% | 33.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.fulcrum.yaafi.service.reconfiguration.ReconfigurationService |
org.apache.fulcrum.yaafi.service.reconfiguration.ReconfigurationEntry org.apache.fulcrum.yaafi.service.reconfiguration.ReconfigurationServiceImpl |
None | java.io java.lang java.security java.util 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.commons.io org.apache.fulcrum.yaafi.framework.container org.apache.fulcrum.yaafi.framework.util |
org.apache.fulcrum.yaafi.service.servicemanager
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 6 | 50.0% | 100.0% | 50.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.fulcrum.yaafi.service.servicemanager.ServiceManagerService |
org.apache.fulcrum.yaafi.service.servicemanager.ServiceManagerServiceImpl |
None | java.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 Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 11 | 25.0% | 100.0% | 25.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses 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 |
None | java.io java.lang java.security java.util 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.commons.io org.apache.fulcrum.yaafi.framework.util |
org.apache.fulcrum.yaafi.service.systemproperty
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 3 | 50.0% | 100.0% | 50.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.fulcrum.yaafi.service.systemproperty.SystemPropertyService |
org.apache.fulcrum.yaafi.service.systemproperty.SystemPropertyServiceImpl |
None | java.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.
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. |