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.seasar.cubby110010.0%100.0%0.0%1
org.seasar.cubby.action135891262.0%57.0%19.0%1
org.seasar.cubby.action.impl220140.0%80.0%20.0%1
org.seasar.cubby.aop110180.0%89.0%11.0%1
org.seasar.cubby.controller8269875.0%47.0%22.0%1
org.seasar.cubby.controller.impl7701220.0%96.0%4.0%1
org.seasar.cubby.convention30333100.0%50.0%50.0%1
org.seasar.cubby.convention.impl1210201717.0%100.0%17.0%1
org.seasar.cubby.customizer220050.0%100.0%0.0%1
org.seasar.cubby.dxo10112100.0%67.0%67.0%1
org.seasar.cubby.dxo.impl440080.0%100.0%0.0%1
org.seasar.cubby.exception330130.0%75.0%25.0%1
org.seasar.cubby.filter5501150.0%94.0%6.0%1
org.seasar.cubby.interceptor330090.0%100.0%0.0%1
org.seasar.cubby.tags119201018.0%100.0%18.0%1
org.seasar.cubby.util6609150.0%62.0%38.0%1
org.seasar.cubby.validator8353562.0%62.0%25.0%1
org.seasar.cubby.validator.impl110080.0%100.0%0.0%1
org.seasar.cubby.validator.validators131300110.0%100.0%0.0%1

Packages

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

org.seasar.cubby

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
010.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.CubbyConstants
Nonejava.lang

org.seasar.cubby.action

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
91262.0%57.0%19.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.seasar.cubby.action.AbstractActionResult
org.seasar.cubby.action.Action
org.seasar.cubby.action.ActionErrors
org.seasar.cubby.action.ActionResult
org.seasar.cubby.action.Form
org.seasar.cubby.action.FormatPattern
org.seasar.cubby.action.Url
org.seasar.cubby.action.Validation
org.seasar.cubby.action.Direct
org.seasar.cubby.action.Forward
org.seasar.cubby.action.Json
org.seasar.cubby.action.Redirect
org.seasar.cubby.action.Url$Method
org.seasar.cubby.action.impl
org.seasar.cubby.controller
org.seasar.cubby.controller.impl
org.seasar.cubby.dxo.impl
org.seasar.cubby.interceptor
org.seasar.cubby.util
org.seasar.cubby.validator
org.seasar.cubby.validator.impl
org.seasar.cubby.validator.validators
java.io
java.lang
java.lang.annotation
java.text
java.util
javax.servlet
javax.servlet.http
org.seasar.cubby.controller
org.seasar.cubby.util
org.seasar.framework.container
org.seasar.framework.log
org.seasar.framework.util

org.seasar.cubby.action.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
140.0%80.0%20.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.action.impl.ActionErrorsImpl
org.seasar.cubby.action.impl.FormatPatternImpl
org.seasar.cubby.controller.impl
java.lang
java.text
java.util
org.seasar.cubby.action

org.seasar.cubby.aop

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
180.0%89.0%11.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.aop.ActionMethodPointcutImpl
org.seasar.cubby.customizer
java.io
java.lang
java.lang.reflect
java.util
java.util.regex
org.seasar.cubby.util
org.seasar.framework.aop
org.seasar.framework.exception

org.seasar.cubby.controller

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
9875.0%47.0%22.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.seasar.cubby.controller.ActionContext
org.seasar.cubby.controller.ActionDef
org.seasar.cubby.controller.ActionProcessor
org.seasar.cubby.controller.CubbyConfiguration
org.seasar.cubby.controller.Populator
org.seasar.cubby.controller.RequestParser
org.seasar.cubby.controller.ThreadContext
org.seasar.cubby.controller.ThreadContext$1
org.seasar.cubby.action
org.seasar.cubby.controller.impl
org.seasar.cubby.convention
org.seasar.cubby.convention.impl
org.seasar.cubby.dxo.impl
org.seasar.cubby.filter
org.seasar.cubby.interceptor
org.seasar.cubby.util
org.seasar.cubby.validator.impl
java.lang
java.lang.reflect
java.util
javax.servlet
javax.servlet.http
org.seasar.cubby.action
org.seasar.framework.container
org.seasar.framework.util

org.seasar.cubby.controller.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1220.0%96.0%4.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.controller.impl.ActionContextImpl
org.seasar.cubby.controller.impl.ActionDefImpl
org.seasar.cubby.controller.impl.ActionProcessorImpl
org.seasar.cubby.controller.impl.CubbyConfigurationImpl
org.seasar.cubby.controller.impl.DefaultRequestParserImpl
org.seasar.cubby.controller.impl.MultipartRequestParserImpl
org.seasar.cubby.controller.impl.PopulatorImpl
org.seasar.cubby.convention.impl
java.io
java.lang
java.lang.reflect
java.util
javax.servlet
javax.servlet.http
org.apache.commons.fileupload
org.apache.commons.fileupload.servlet
org.seasar.cubby.action
org.seasar.cubby.action.impl
org.seasar.cubby.controller
org.seasar.cubby.convention
org.seasar.cubby.dxo
org.seasar.cubby.exception
org.seasar.cubby.filter
org.seasar.cubby.util
org.seasar.framework.beans
org.seasar.framework.beans.factory
org.seasar.framework.container
org.seasar.framework.exception
org.seasar.framework.log
org.seasar.framework.util

org.seasar.cubby.convention

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
33100.0%50.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.seasar.cubby.convention.CubbyConvention
org.seasar.cubby.convention.ForwardInfo
org.seasar.cubby.convention.PathResolver
Noneorg.seasar.cubby.controller.impl
org.seasar.cubby.convention.impl
org.seasar.cubby.filter
java.lang
javax.servlet.http
org.seasar.cubby.controller

org.seasar.cubby.convention.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01717.0%100.0%17.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.seasar.cubby.convention.impl.ClassCollector
org.seasar.cubby.convention.impl.ClassCollector$Strategy
org.seasar.cubby.convention.impl.ClassCollector$1
org.seasar.cubby.convention.impl.ClassCollector$CodeSourceFileStrategy
org.seasar.cubby.convention.impl.ClassCollector$FileSystemStrategy
org.seasar.cubby.convention.impl.ClassCollector$JarFileStrategy
org.seasar.cubby.convention.impl.ClassCollector$ZipFileStrategy
org.seasar.cubby.convention.impl.CubbyConventionImpl
org.seasar.cubby.convention.impl.ForwardInfoImpl
org.seasar.cubby.convention.impl.PathResolverImpl
org.seasar.cubby.convention.impl.PathResolverImpl$ActionClassCollector
org.seasar.cubby.convention.impl.PathResolverImpl$RoutingInfo
Nonejava.io
java.lang
java.lang.reflect
java.net
java.util
java.util.jar
java.util.regex
javax.servlet.http
org.seasar.cubby.controller
org.seasar.cubby.controller.impl
org.seasar.cubby.convention
org.seasar.cubby.util
org.seasar.framework.container
org.seasar.framework.convention
org.seasar.framework.exception
org.seasar.framework.log
org.seasar.framework.util

org.seasar.cubby.customizer

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
050.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.customizer.ActionMethodCustomizer
org.seasar.cubby.customizer.PointcutFactory
Nonejava.lang
org.seasar.cubby.aop
org.seasar.framework.aop
org.seasar.framework.container.customizer
org.seasar.framework.util

org.seasar.cubby.dxo

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
12100.0%67.0%67.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.seasar.cubby.dxo.HttpRequestDxo
Noneorg.seasar.cubby.controller.impl
java.lang
java.util

org.seasar.cubby.dxo.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
080.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.dxo.impl.RequestParameterAnnotationReaderFactoryWrapper
org.seasar.cubby.dxo.impl.RequestParameterAnnotationReaderFactoryWrapper$CubbyAnnotationReaderWrapper
org.seasar.cubby.dxo.impl.RequestParameterConverterFactoryWrapper
org.seasar.cubby.dxo.impl.RequestParameterConverterFactoryWrapper$DisregardExceptionConverterWrapper
Nonejava.lang
java.lang.reflect
java.util
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.extension.dxo.annotation
org.seasar.extension.dxo.converter
org.seasar.framework.util

org.seasar.cubby.exception

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
130.0%75.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.exception.ActionRuntimeException
org.seasar.cubby.exception.DownloadRuntimeException
org.seasar.cubby.exception.FileUploadRuntimeException
org.seasar.cubby.controller.impl
java.lang
org.apache.commons.fileupload
org.seasar.framework.exception

org.seasar.cubby.filter

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1150.0%94.0%6.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.filter.CubbyFilter
org.seasar.cubby.filter.CubbyHttpServletRequestWrapper
org.seasar.cubby.filter.CubbyHttpServletRequestWrapper$IteratorEnumeration
org.seasar.cubby.filter.RequestDumpFilter
org.seasar.cubby.filter.RequestRoutingFilter
org.seasar.cubby.controller.impl
java.io
java.lang
java.util
java.util.regex
javax.servlet
javax.servlet.http
org.seasar.cubby.controller
org.seasar.cubby.convention
org.seasar.cubby.util
org.seasar.framework.beans
org.seasar.framework.beans.factory
org.seasar.framework.container
org.seasar.framework.container.factory
org.seasar.framework.log
org.seasar.framework.util

org.seasar.cubby.interceptor

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
090.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.interceptor.InitializeInterceptor
org.seasar.cubby.interceptor.ValidationInterceptor
org.seasar.cubby.interceptor.ValidationInterceptor$1
Nonejava.lang
java.util
javax.servlet.http
org.aopalliance.intercept
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.validator
org.seasar.framework.beans
org.seasar.framework.beans.factory

org.seasar.cubby.tags

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01018.0%100.0%18.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.seasar.cubby.tags.DynamicAttributesTagSupport
org.seasar.cubby.tags.SelectTag$ItemAdaptor
org.seasar.cubby.tags.FormTag
org.seasar.cubby.tags.InputTag
org.seasar.cubby.tags.NullTag
org.seasar.cubby.tags.SelectTag
org.seasar.cubby.tags.SelectTag$BeanItemAdaptor
org.seasar.cubby.tags.SelectTag$EntryItemAdaptor
org.seasar.cubby.tags.SelectTag$OptionWriter
org.seasar.cubby.tags.TemplateTag
org.seasar.cubby.tags.TextareaTag
Nonejava.io
java.lang
java.util
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.apache.taglibs.standard.tag.rt.core
org.seasar.cubby.util
org.seasar.framework.log
org.seasar.framework.message

org.seasar.cubby.util

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
9150.0%62.0%38.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.util.CubbyFunctions
org.seasar.cubby.util.CubbyHelperFunctions
org.seasar.cubby.util.CubbyUtils
org.seasar.cubby.util.Messages
org.seasar.cubby.util.QueryStringBuilder
org.seasar.cubby.util.RequestDumpUtil
org.seasar.cubby.action
org.seasar.cubby.aop
org.seasar.cubby.controller.impl
org.seasar.cubby.convention.impl
org.seasar.cubby.filter
org.seasar.cubby.tags
org.seasar.cubby.validator
org.seasar.cubby.validator.impl
org.seasar.cubby.validator.validators
java.io
java.lang
java.lang.reflect
java.net
java.text
java.util
javax.servlet
javax.servlet.http
javax.servlet.jsp
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.framework.beans
org.seasar.framework.beans.factory
org.seasar.framework.exception
org.seasar.framework.util

org.seasar.cubby.validator

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
3562.0%62.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.seasar.cubby.validator.ActionValidator
org.seasar.cubby.validator.BaseValidator
org.seasar.cubby.validator.ValidationRule
org.seasar.cubby.validator.ValidationRules
org.seasar.cubby.validator.Validator
org.seasar.cubby.validator.DefaultValidationRules
org.seasar.cubby.validator.PropertyValidationRule
org.seasar.cubby.validator.ValidationContext
org.seasar.cubby.interceptor
org.seasar.cubby.validator.impl
org.seasar.cubby.validator.validators
java.lang
java.text
java.util
org.seasar.cubby.action
org.seasar.cubby.util

org.seasar.cubby.validator.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
080.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.validator.impl.ActionValidatorImpl
Nonejava.lang
java.util
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.util
org.seasar.cubby.validator
org.seasar.framework.beans
org.seasar.framework.beans.factory

org.seasar.cubby.validator.validators

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0110.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.validator.validators.ArrayValidator
org.seasar.cubby.validator.validators.DateFormatValidator
org.seasar.cubby.validator.validators.EmailValidator
org.seasar.cubby.validator.validators.EqualsValidator
org.seasar.cubby.validator.validators.FileRegexpValidator
org.seasar.cubby.validator.validators.MaxLengthValidator
org.seasar.cubby.validator.validators.MaxSizeValidator
org.seasar.cubby.validator.validators.MinSizeValidator
org.seasar.cubby.validator.validators.NumberValidator
org.seasar.cubby.validator.validators.RangeLengthValidator
org.seasar.cubby.validator.validators.RangeValidator
org.seasar.cubby.validator.validators.RegexpValidator
org.seasar.cubby.validator.validators.RequiredValidator
Nonejava.lang
java.math
java.text
java.util
java.util.regex
org.apache.commons.fileupload
org.seasar.cubby.action
org.seasar.cubby.util
org.seasar.cubby.validator
org.seasar.framework.exception
org.seasar.framework.util

Cycles

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

PackagePackage Dependencies
org.seasar.cubby.actionorg.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.action.implorg.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.aoporg.seasar.cubby.util
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.controllerorg.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.controller.implorg.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.conventionorg.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.convention.implorg.seasar.cubby.controller.impl
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.customizerorg.seasar.cubby.aop
org.seasar.cubby.util
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.dxo.implorg.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.filterorg.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.interceptororg.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.tagsorg.seasar.cubby.util
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.utilorg.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.validatororg.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.validator.implorg.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.validator.validatorsorg.seasar.cubby.validator
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action

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.