JDepend Analysis

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 Total Classes Abstract Classes Concrete Classes Afferent Couplings Efferent Couplings Abstractness Instability Distance
org.chwf.config 10 3 7 10 8 0.3 0.44 0.26
org.chwf.converter 4 1 3 7 4 0.25 0.36 0.39
org.chwf.converter.basic 17 2 15 0 5 0.12 1 0.12
org.chwf.filter 14 3 11 4 9 0.21 0.69 0.09
org.chwf.i18n 5 2 3 11 6 0.4 0.35 0.25
org.chwf.plugin 7 6 1 6 8 0.86 0.57 0.43
org.chwf.plugin.defaults 4 0 4 0 12 0 1 0
org.chwf.registry 3 0 3 5 5 0 0.5 0.5
org.chwf.resources 11 3 8 1 5 0.27 0.83 0.11
org.chwf.servlet 11 0 11 7 10 0 0.59 0.41
org.chwf.servlet.engine 15 3 12 3 15 0.2 0.83 0.03
org.chwf.servlet.filter 11 0 11 2 10 0 0.83 0.17
org.chwf.servlet.mock 13 1 12 0 13 0.08 1 0.08
org.chwf.servlet.view 5 0 5 1 11 0 0.92 0.08
org.chwf.taglib.base 5 1 4 3 9 0.2 0.75 0.05
org.chwf.taglib.jhtml 8 1 7 0 11 0.12 1 0.12
org.chwf.taglib.ji18n 6 1 5 0 12 0.17 1 0.17
org.chwf.taglib.jutil 13 1 12 0 16 0.08 1 0.08
org.chwf.util 7 1 6 8 4 0.14 0.33 0.52
org.chwf.webdoc 8 0 8 0 8 0 1 0

Packages

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

org.chwf.config

Afferent Couplings Efferent Couplings Abstractness Instability Distance
10 8 0.3 0.44 0.26
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.config.Config
org.chwf.config.ConfigFactory
org.chwf.config.RawConfig
org.chwf.config.ConfigFactory$1
org.chwf.config.ConfigImpl
org.chwf.config.ConfigMap
org.chwf.config.ConfigurationException
org.chwf.config.PolymorphicConfig
org.chwf.config.PolymorphicConfigImpl
org.chwf.config.XMLDigester
org.chwf.converter
org.chwf.filter
org.chwf.i18n
org.chwf.plugin
org.chwf.plugin.defaults
org.chwf.registry
org.chwf.resources
org.chwf.servlet.engine
org.chwf.servlet.view
org.chwf.taglib.ji18n
java.io
java.lang
java.text
java.util
javax.xml.parsers
org.chwf.util
org.xml.sax
org.xml.sax.helpers

org.chwf.converter

Afferent Couplings Efferent Couplings Abstractness Instability Distance
7 4 0.25 0.36 0.39
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.converter.Converter
org.chwf.converter.ConversionConfigurationException
org.chwf.converter.ConversionException
org.chwf.converter.DefaultConverter
org.chwf.converter.basic
org.chwf.filter
org.chwf.plugin
org.chwf.plugin.defaults
org.chwf.servlet
org.chwf.servlet.engine
org.chwf.taglib.jutil
java.lang
java.util
org.chwf.config
org.chwf.i18n

org.chwf.converter.basic

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 0.12 1 0.12
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.converter.basic.BaseNumberConverter
org.chwf.converter.basic.ConversionMessages
org.chwf.converter.basic.BooleanConverter
org.chwf.converter.basic.ByteConverter
org.chwf.converter.basic.CharacterConverter
org.chwf.converter.basic.CurrencyConverter
org.chwf.converter.basic.DateConverter
org.chwf.converter.basic.DoubleConverter
org.chwf.converter.basic.FloatConverter
org.chwf.converter.basic.IntegerConverter
org.chwf.converter.basic.LongConverter
org.chwf.converter.basic.LongDateConverter
org.chwf.converter.basic.SQLDateConverter
org.chwf.converter.basic.SQLTimeConverter
org.chwf.converter.basic.SQLTimestampConverter
org.chwf.converter.basic.ShortConverter
org.chwf.converter.basic.StringConverter
None java.lang
java.sql
java.util
org.chwf.converter
org.chwf.i18n

org.chwf.filter

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 9 0.21 0.69 0.09
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.filter.BeanFilter
org.chwf.filter.PropertyFilter
org.chwf.filter.Validator
org.chwf.filter.BeanWrapper
org.chwf.filter.FilterException
org.chwf.filter.GenericBeanFilter
org.chwf.filter.GenericPropertyFilter
org.chwf.filter.GenericValidator
org.chwf.filter.InitializationException
org.chwf.filter.OperationException
org.chwf.filter.PropertyNotFoundException
org.chwf.filter.PropertyNotReadableException
org.chwf.filter.PropertyNotWriteableException
org.chwf.filter.ValidationException
org.chwf.servlet.engine
org.chwf.taglib.base
org.chwf.taglib.jhtml
org.chwf.taglib.jutil
java.beans
java.lang
java.lang.reflect
java.util
org.chwf.config
org.chwf.converter
org.chwf.i18n
org.chwf.plugin
org.chwf.util

org.chwf.i18n

Afferent Couplings Efferent Couplings Abstractness Instability Distance
11 6 0.4 0.35 0.25
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.i18n.Localizer
org.chwf.i18n.UserLocale
org.chwf.i18n.Message
org.chwf.i18n.MessageException
org.chwf.i18n.RuntimeMessageException
org.chwf.converter
org.chwf.converter.basic
org.chwf.filter
org.chwf.plugin
org.chwf.resources
org.chwf.servlet
org.chwf.servlet.view
org.chwf.taglib.base
org.chwf.taglib.jhtml
org.chwf.taglib.ji18n
org.chwf.taglib.jutil
java.io
java.lang
java.text
java.util
org.chwf.config
org.chwf.registry

org.chwf.plugin

Afferent Couplings Efferent Couplings Abstractness Instability Distance
6 8 0.86 0.57 0.43
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.plugin.Logger
org.chwf.plugin.OptionLister
org.chwf.plugin.Plugin
org.chwf.plugin.Scripter
org.chwf.plugin.User
org.chwf.plugin.ValidationData
org.chwf.plugin.AuthenticationException
org.chwf.filter
org.chwf.plugin.defaults
org.chwf.servlet.engine
org.chwf.servlet.view
org.chwf.taglib.jhtml
org.chwf.taglib.jutil
java.io
java.lang
java.util
javax.servlet.jsp
org.chwf.config
org.chwf.converter
org.chwf.i18n
org.chwf.registry

org.chwf.plugin.defaults

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 12 0 1 0
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.chwf.plugin.defaults.DefaultLogger
org.chwf.plugin.defaults.DefaultOptionLister
org.chwf.plugin.defaults.DefaultScripter
org.chwf.plugin.defaults.DefaultUser
None java.io
java.lang
java.util
javax.servlet
javax.servlet.http
javax.servlet.jsp
org.chwf.config
org.chwf.converter
org.chwf.plugin
org.chwf.registry
org.chwf.servlet
org.chwf.util

org.chwf.registry

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 5 0 0.5 0.5
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.chwf.registry.GlobalUserRegistry
org.chwf.registry.RegistryException
org.chwf.registry.UserRegistry
org.chwf.i18n
org.chwf.plugin
org.chwf.plugin.defaults
org.chwf.servlet
org.chwf.servlet.engine
java.io
java.lang
java.text
java.util
org.chwf.config

org.chwf.resources

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 0.27 0.83 0.11
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.resources.ManagedResourceFactory
org.chwf.resources.ResourceFactory
org.chwf.resources.ResourceFactoryConfig
org.chwf.resources.ResourceException
org.chwf.resources.ResourceFactoryConfigImpl
org.chwf.resources.ResourceID
org.chwf.resources.ResourceInitException
org.chwf.resources.ResourceLocator
org.chwf.resources.ResourceLocator$ManagedResource
org.chwf.resources.ResourceManager
org.chwf.resources.ResourceManagerConfig
org.chwf.servlet.engine
java.lang
java.util
org.chwf.config
org.chwf.i18n
org.chwf.util

org.chwf.servlet

Afferent Couplings Efferent Couplings Abstractness Instability Distance
7 10 0 0.59 0.41
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.chwf.servlet.Controller
org.chwf.servlet.ControllerException
org.chwf.servlet.InvocationContext
org.chwf.servlet.MissingParameterException
org.chwf.servlet.MultiMissingParameterException
org.chwf.servlet.MultiParameterException
org.chwf.servlet.ParameterException
org.chwf.servlet.RequestParameterMap
org.chwf.servlet.ServletData
org.chwf.servlet.ServletData$ServletObjects
org.chwf.servlet.ServletUtils
org.chwf.plugin.defaults
org.chwf.servlet.engine
org.chwf.servlet.filter
org.chwf.servlet.view
org.chwf.taglib.jhtml
org.chwf.taglib.ji18n
org.chwf.taglib.jutil
java.io
java.lang
java.net
java.util
javax.servlet
javax.servlet.http
javax.servlet.jsp
org.chwf.converter
org.chwf.i18n
org.chwf.registry

org.chwf.servlet.engine

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 15 0.2 0.83 0.03
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.servlet.engine.ArgumentMapper
org.chwf.servlet.engine.ControllerMessages
org.chwf.servlet.engine.URIMapper
org.chwf.servlet.engine.ArgumentMapper$BeanMapper
org.chwf.servlet.engine.ArgumentMapper$MultiValueMapper
org.chwf.servlet.engine.ArgumentMapper$NewBeanMapper
org.chwf.servlet.engine.ArgumentMapper$SingleValueMapper
org.chwf.servlet.engine.CommandFilter
org.chwf.servlet.engine.ControllerConfig
org.chwf.servlet.engine.ControllerMapper
org.chwf.servlet.engine.InitFilter
org.chwf.servlet.engine.InvokerFilter
org.chwf.servlet.engine.MethodConfig
org.chwf.servlet.engine.MethodMapper
org.chwf.servlet.engine.RedirectFilter
org.chwf.servlet.mock
org.chwf.servlet.view
org.chwf.taglib.jutil
java.io
java.lang
java.lang.reflect
java.util
javax.servlet
javax.servlet.http
org.chwf.config
org.chwf.converter
org.chwf.filter
org.chwf.plugin
org.chwf.registry
org.chwf.resources
org.chwf.servlet
org.chwf.servlet.filter
org.chwf.util

org.chwf.servlet.filter

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 10 0 0.83 0.17
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.chwf.servlet.filter.AllFilterConfig
org.chwf.servlet.filter.CompositeFilter
org.chwf.servlet.filter.CompositeFilter$CompositeFilterSet
org.chwf.servlet.filter.CompositeFilter$OriginalChainInvoker
org.chwf.servlet.filter.FilterChainImpl
org.chwf.servlet.filter.FilterChainImpl$FilterIterator
org.chwf.servlet.filter.FilterInfo
org.chwf.servlet.filter.FilterServlet
org.chwf.servlet.filter.FilterSet
org.chwf.servlet.filter.FilterSupport
org.chwf.servlet.filter.ResourceMapper
org.chwf.servlet.engine
org.chwf.servlet.view
java.io
java.lang
java.util
javax.servlet
javax.servlet.http
javax.xml.parsers
org.chwf.servlet
org.chwf.util
org.w3c.dom
org.xml.sax

org.chwf.servlet.mock

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 13 0.08 1 0.08
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.servlet.mock.ReflectingTestCase
org.chwf.servlet.mock.ControllerTestCase
org.chwf.servlet.mock.MockFilterChain
org.chwf.servlet.mock.MockFilterConfig
org.chwf.servlet.mock.MockJspWriter
org.chwf.servlet.mock.MockPageContext
org.chwf.servlet.mock.MockRequestDispatcher
org.chwf.servlet.mock.MockServletConfig
org.chwf.servlet.mock.MockServletContext
org.chwf.servlet.mock.MockServletRequest
org.chwf.servlet.mock.MockServletResponse
org.chwf.servlet.mock.MockSession
org.chwf.servlet.mock.ServletTestCase
None java.io
java.lang
java.lang.reflect
java.net
java.security
java.util
javax.servlet
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
junit.framework
org.chwf.servlet.engine
org.chwf.util

org.chwf.servlet.view

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 11 0 0.92 0.08
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.chwf.servlet.view.EncryptionFilter
org.chwf.servlet.view.PageConfig
org.chwf.servlet.view.SecurityFilter
org.chwf.servlet.view.TemplateFilter
org.chwf.servlet.view.ViewFilter
org.chwf.taglib.ji18n
java.io
java.lang
java.util
javax.servlet
javax.servlet.http
org.chwf.config
org.chwf.i18n
org.chwf.plugin
org.chwf.servlet
org.chwf.servlet.engine
org.chwf.servlet.filter

org.chwf.taglib.base

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 9 0.2 0.75 0.05
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.taglib.base.Parameterized
org.chwf.taglib.base.LifeCycleBodyTagSupport
org.chwf.taglib.base.LifeCycleTagSupport
org.chwf.taglib.base.ObjectTagSupport
org.chwf.taglib.base.TagException
org.chwf.taglib.jhtml
org.chwf.taglib.ji18n
org.chwf.taglib.jutil
java.io
java.lang
java.util
javax.servlet
javax.servlet.jsp
javax.servlet.jsp.tagext
org.apache.taglibs.standard.lang.support
org.chwf.filter
org.chwf.i18n

org.chwf.taglib.jhtml

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 11 0.12 1 0.12
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.taglib.jhtml.JhtmlMessages
org.chwf.taglib.jhtml.FieldPatternTag
org.chwf.taglib.jhtml.FieldTag
org.chwf.taglib.jhtml.FieldTagSupport
org.chwf.taglib.jhtml.FormTag
org.chwf.taglib.jhtml.InputTag
org.chwf.taglib.jhtml.LabelTag
org.chwf.taglib.jhtml.LinkTag
None java.io
java.lang
java.util
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.chwf.filter
org.chwf.i18n
org.chwf.plugin
org.chwf.servlet
org.chwf.taglib.base

org.chwf.taglib.ji18n

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 12 0.17 1 0.17
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.taglib.ji18n.Ji18nMessages
org.chwf.taglib.ji18n.IncludeBodyTag
org.chwf.taglib.ji18n.IncludeTag
org.chwf.taglib.ji18n.MessageTag
org.chwf.taglib.ji18n.ResourceTag
org.chwf.taglib.ji18n.UrlTag
None java.io
java.lang
java.util
javax.servlet
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.chwf.config
org.chwf.i18n
org.chwf.servlet
org.chwf.servlet.view
org.chwf.taglib.base

org.chwf.taglib.jutil

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 16 0.08 1 0.08
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.taglib.jutil.JutilMessages
org.chwf.taglib.jutil.AttributeTag
org.chwf.taglib.jutil.ElementTag
org.chwf.taglib.jutil.ElseIfTag
org.chwf.taglib.jutil.ElseTag
org.chwf.taglib.jutil.ForEachTag
org.chwf.taglib.jutil.IfTag
org.chwf.taglib.jutil.NewTag
org.chwf.taglib.jutil.ParamTag
org.chwf.taglib.jutil.PrintErrorTag
org.chwf.taglib.jutil.PrintTag
org.chwf.taglib.jutil.SetTag
org.chwf.taglib.jutil.UseTag
None java.io
java.lang
java.util
javax.servlet
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.apache.taglibs.standard.lang.support
org.chwf.converter
org.chwf.filter
org.chwf.i18n
org.chwf.plugin
org.chwf.servlet
org.chwf.servlet.engine
org.chwf.taglib.base
org.chwf.util

org.chwf.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
8 4 0.14 0.33 0.52
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.chwf.util.MiscUtils
org.chwf.util.SequencedHashMap
org.chwf.util.SequencedHashMap$1
org.chwf.util.SequencedHashMap$2
org.chwf.util.SequencedHashMap$3
org.chwf.util.SequencedHashMap$Entry
org.chwf.util.SequencedHashMap$OrderedIterator
org.chwf.config
org.chwf.filter
org.chwf.plugin.defaults
org.chwf.resources
org.chwf.servlet.engine
org.chwf.servlet.filter
org.chwf.servlet.mock
org.chwf.taglib.jutil
java.beans
java.io
java.lang
java.util

org.chwf.webdoc

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 8 0 1 0
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.chwf.webdoc.CommentData
org.chwf.webdoc.DTDDoc
org.chwf.webdoc.JavaScriptDoc
org.chwf.webdoc.SectionCommentData
org.chwf.webdoc.TagDoc
org.chwf.webdoc.TagDocDTDResolver
org.chwf.webdoc.WebDoc
org.chwf.webdoc.WebDocDTDResolver
None java.io
java.lang
java.util
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.stream
org.xml.sax

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.