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
siouxsie.mvc11382673.0%75.0%48.0%1
siouxsie.mvc.impl141310247.0%100.0%7.0%1
siouxsie.mvc.spring110080.0%100.0%0.0%1
siouxsie.mvc.test109101610.0%100.0%10.0%1

Packages

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

siouxsie.mvc

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2673.0%75.0%48.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
siouxsie.mvc.IActionLauncher
siouxsie.mvc.IActionTrigger
siouxsie.mvc.IController
siouxsie.mvc.IInitializer
siouxsie.mvc.IInitializerContainer
siouxsie.mvc.IScreen
siouxsie.mvc.IScreenHandler
siouxsie.mvc.IValueStackAware
siouxsie.mvc.ActionTriggerDescription
siouxsie.mvc.Message
siouxsie.mvc.Severity
siouxsie.mvc.impl
siouxsie.mvc.test
com.opensymphony.xwork2
com.opensymphony.xwork2.util
java.beans
java.lang
java.util
javax.swing

siouxsie.mvc.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0247.0%100.0%7.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
siouxsie.mvc.impl.ScreenSupport
siouxsie.mvc.impl.ActionTrigger
siouxsie.mvc.impl.Controller
siouxsie.mvc.impl.ExceptionHandler
siouxsie.mvc.impl.ForwardAction
siouxsie.mvc.impl.GuiceInitializer
siouxsie.mvc.impl.InitializerContainer
siouxsie.mvc.impl.InitializerInterceptor
siouxsie.mvc.impl.PanelScreenHandler
siouxsie.mvc.impl.ScreenExceptionHandler
siouxsie.mvc.impl.ScreenResult
siouxsie.mvc.impl.ScreenSupport$LaunchSwingAction
siouxsie.mvc.impl.SimpleActionLauncher
siouxsie.mvc.impl.SiouxsieMVCConfigurationProvider
Nonecom.opensymphony.xwork2
com.opensymphony.xwork2.config
com.opensymphony.xwork2.config.providers
com.opensymphony.xwork2.conversion
com.opensymphony.xwork2.conversion.impl
com.opensymphony.xwork2.inject
com.opensymphony.xwork2.interceptor
com.opensymphony.xwork2.ognl
com.opensymphony.xwork2.ognl.accessor
com.opensymphony.xwork2.util
com.opensymphony.xwork2.util.location
com.opensymphony.xwork2.util.reflection
com.opensymphony.xwork2.validator
java.awt
java.awt.event
java.beans
java.lang
java.util
javax.swing
ognl
org.apache.commons.logging
org.jdesktop.swingx
org.jdesktop.swingx.error
siouxsie.mvc

siouxsie.mvc.spring

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
080.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonesiouxsie.mvc.spring.SpringObjectFactory
Nonecom.opensymphony.xwork2
com.opensymphony.xwork2.util.logging
java.lang
java.util
org.springframework.beans
org.springframework.beans.factory
org.springframework.beans.factory.config
org.springframework.context

siouxsie.mvc.test

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01610.0%100.0%10.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
siouxsie.mvc.test.IScreenLauncher
siouxsie.mvc.test.ConfigurationFinder
siouxsie.mvc.test.ConfigurationFinder$1
siouxsie.mvc.test.ConsoleActionTrigger
siouxsie.mvc.test.JFrameScreenLauncher
siouxsie.mvc.test.JFrameScreenLauncher$1
siouxsie.mvc.test.JFrameScreenLauncher$SelectionListener
siouxsie.mvc.test.LaunchConfiguration
siouxsie.mvc.test.ScreenCreator
siouxsie.mvc.test.TestContainerProvider
Nonecom.opensymphony.xwork2
com.opensymphony.xwork2.config
com.opensymphony.xwork2.config.providers
com.opensymphony.xwork2.inject
com.opensymphony.xwork2.util
com.opensymphony.xwork2.util.location
java.awt
java.beans
java.io
java.lang
java.lang.reflect
java.util
javax.swing
javax.swing.event
org.apache.commons.logging
siouxsie.mvc

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.