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.action157891452.999996%61.0%14.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.controller50567100.0%54.000004%54.000004%1
org.seasar.cubby.controller.impl5501200.0%95.0%5.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.customizer220060.0%100.0%0.0%1
org.seasar.cubby.dxo3211833.0%89.0%22.0%1
org.seasar.cubby.exception330130.0%75.0%25.0%1
org.seasar.cubby.filter3300130.0%100.0%0.0%1
org.seasar.cubby.interceptor3300100.0%100.0%0.0%1
org.seasar.cubby.tags7610814.0%100.0%14.0%1
org.seasar.cubby.util1010010130.0%57.0%43.0%1
org.seasar.cubby.validator8353562.0%62.0%25.0%1
org.seasar.cubby.validator.impl110070.0%100.0%0.0%1
org.seasar.cubby.validator.validators131300100.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
91452.999996%61.0%14.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.ForwardHttpServletRequestWrapper
org.seasar.cubby.action.ForwardHttpServletRequestWrapper$IteratorEnumeration
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
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.beans
org.seasar.framework.beans.factory
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.dxo
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
67100.0%54.000004%54.000004%
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.Populator
org.seasar.cubby.controller.RequestParser
Noneorg.seasar.cubby.action
org.seasar.cubby.controller.impl
org.seasar.cubby.convention
org.seasar.cubby.convention.impl
org.seasar.cubby.filter
org.seasar.cubby.interceptor
java.lang
java.lang.reflect
java.util
javax.servlet
javax.servlet.http
org.seasar.cubby.action
org.seasar.framework.container

org.seasar.cubby.controller.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1200.0%95.0%5.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.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.controller
org.seasar.cubby.convention
org.seasar.cubby.dxo
org.seasar.cubby.exception
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$RewriteInfo
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
060.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.customizer.ActionMethodCustomizer
org.seasar.cubby.customizer.PointcutFactory
Nonejava.lang
java.lang.reflect
org.seasar.cubby.aop
org.seasar.framework.aop
org.seasar.framework.container.customizer
org.seasar.framework.util

org.seasar.cubby.dxo

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1833.0%89.0%22.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.seasar.cubby.dxo.HttpRequestDxo
org.seasar.cubby.dxo.CubbyAnnotationReaderFactoryImpl
org.seasar.cubby.dxo.CubbyAnnotationReaderWrapper
org.seasar.cubby.controller.impl
java.lang
java.lang.reflect
java.util
org.seasar.cubby.action
org.seasar.cubby.action.impl
org.seasar.extension.dxo.annotation
org.seasar.framework.container
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
0130.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneorg.seasar.cubby.filter.CubbyFilter
org.seasar.cubby.filter.RequestDumpFilter
org.seasar.cubby.filter.UrlRewriteFilter
Nonejava.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.container
org.seasar.framework.container.factory
org.seasar.framework.log
org.seasar.framework.util

org.seasar.cubby.interceptor

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0100.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.util
org.seasar.cubby.validator
org.seasar.framework.beans
org.seasar.framework.beans.factory

org.seasar.cubby.tags

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0814.0%100.0%14.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.seasar.cubby.tags.DynamicAttributesTagSupport
org.seasar.cubby.tags.FormTag
org.seasar.cubby.tags.InputTag
org.seasar.cubby.tags.NullTag
org.seasar.cubby.tags.SelectTag
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.cubby.util

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
10130.0%57.0%43.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.LocaleHolder
org.seasar.cubby.util.LocaleHolder$1
org.seasar.cubby.util.Messages
org.seasar.cubby.util.Option
org.seasar.cubby.util.RequestDumpUtil
org.seasar.cubby.util.RequestHolder
org.seasar.cubby.util.Uri
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.interceptor
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.framework.beans
org.seasar.framework.beans.factory
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
070.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.util
org.seasar.cubby.validator
org.seasar.framework.beans
org.seasar.framework.beans.factory

org.seasar.cubby.validator.validators

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0100.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.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.dxoorg.seasar.cubby.action.impl
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.filterorg.seasar.cubby.util
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
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.