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.desktop13493369.0%50.0%19.0%1
siouxsie.desktop.commands8442250.0%50.0%0.0%1
siouxsie.desktop.commands.impl1512321220.0%86.0%6.0%1
siouxsie.desktop.events6332350.0%60.000004%10.0%1
siouxsie.desktop.events.impl110120.0%67.0%33.0%1
siouxsie.desktop.impl121200160.0%100.0%0.0%1
siouxsie.desktop.option7341257.0%67.0%24.0%1
siouxsie.desktop.option.impl121110138.0%100.0%8.0%1
siouxsie.desktop.prefs10132100.0%40.0%40.0%1
siouxsie.desktop.prefs.impl110050.0%100.0%0.0%1
siouxsie.hivemind6600180.0%100.0%0.0%1

Packages

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

siouxsie.desktop

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
3369.0%50.0%19.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
siouxsie.desktop.IApplication
siouxsie.desktop.IApplicationCategory
siouxsie.desktop.IApplicationRegistry
siouxsie.desktop.IDesktopRunner
siouxsie.desktop.IDesktopUIProvider
siouxsie.desktop.IStarter
siouxsie.desktop.IStatusBar
siouxsie.desktop.IView
siouxsie.desktop.IViewHandler
siouxsie.desktop.ApplicationDescription
siouxsie.desktop.CategoryDescription
siouxsie.desktop.StarterDescription
siouxsie.desktop.ViewContribution
siouxsie.desktop.commands.impl
siouxsie.desktop.events
siouxsie.desktop.impl
java.lang
java.util
javax.swing

siouxsie.desktop.commands

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2250.0%50.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
siouxsie.desktop.commands.ICommand
siouxsie.desktop.commands.ICommandInitializer
siouxsie.desktop.commands.IExceptionHandler
siouxsie.desktop.commands.IToggleCommand
siouxsie.desktop.commands.CommandDescription
siouxsie.desktop.commands.CommandInitializerContribution
siouxsie.desktop.commands.Face
siouxsie.desktop.commands.Group
siouxsie.desktop.commands.impl
siouxsie.desktop.option.impl
java.beans
java.lang

siouxsie.desktop.commands.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
21220.0%86.0%6.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
siouxsie.desktop.commands.impl.AbstractCommand
siouxsie.desktop.commands.impl.AbstractToggleCommand
siouxsie.desktop.commands.impl.ISiouxsieCommand
siouxsie.desktop.commands.impl.CommandInitializerService
siouxsie.desktop.commands.impl.CommandManagerListenerContribution
siouxsie.desktop.commands.impl.CommandsHandler
siouxsie.desktop.commands.impl.CommandsHandler$ApplicationMenuBarContainer
siouxsie.desktop.commands.impl.CommandsHandler$CommandFactory
siouxsie.desktop.commands.impl.ExceptionHandler
siouxsie.desktop.commands.impl.ExitCommand
siouxsie.desktop.commands.impl.SiouxsieActionCommand
siouxsie.desktop.commands.impl.SiouxsieActionCommand$EnableListener
siouxsie.desktop.commands.impl.SiouxsieToggleCommand
siouxsie.desktop.commands.impl.SiouxsieToggleCommand$EnableListener
siouxsie.desktop.commands.impl.StatusBarHoverListener
siouxsie.desktop.impl
siouxsie.desktop.option.impl
java.beans
java.lang
java.net
java.util
javax.swing
org.apache.commons.lang
org.apache.commons.logging
org.jdesktop.swingx
org.jdesktop.swingx.error
org.pietschy.command
siouxsie.desktop
siouxsie.desktop.commands

siouxsie.desktop.events

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2350.0%60.000004%10.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
siouxsie.desktop.events.DesktopEvent
siouxsie.desktop.events.DesktopListener
siouxsie.desktop.events.IDesktopActor
siouxsie.desktop.events.ApplicationSelectedEvent
siouxsie.desktop.events.DesktopActorContribution
siouxsie.desktop.events.DesktopBus
siouxsie.desktop.events.impl
siouxsie.desktop.impl
java.lang
java.util
siouxsie.desktop

siouxsie.desktop.events.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
120.0%67.0%33.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonesiouxsie.desktop.events.impl.AbstractDesktopActor
siouxsie.desktop.impl
java.lang
siouxsie.desktop.events

siouxsie.desktop.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0160.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonesiouxsie.desktop.impl.Application
siouxsie.desktop.impl.ApplicationCategory
siouxsie.desktop.impl.ApplicationRegistry
siouxsie.desktop.impl.CardLayoutViewHandler
siouxsie.desktop.impl.DesktopRunner
siouxsie.desktop.impl.DesktopUIProvider
siouxsie.desktop.impl.DesktopUIProvider$WindowsClosingListener
siouxsie.desktop.impl.FormLayoutStatusBar
siouxsie.desktop.impl.JXTaskPaneListApplications
siouxsie.desktop.impl.JXTaskPaneListApplications$SwitchApplicationAction
siouxsie.desktop.impl.LAFStarter
siouxsie.desktop.impl.StatusBar
Nonecom.jgoodies.forms.builder
com.jgoodies.forms.layout
java.awt
java.awt.event
java.lang
java.util
java.util.prefs
javax.swing
org.apache.commons.logging
org.jdesktop.swingx
org.pietschy.command
siouxsie.desktop
siouxsie.desktop.commands.impl
siouxsie.desktop.events
siouxsie.desktop.events.impl
siouxsie.desktop.prefs

siouxsie.desktop.option

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1257.0%67.0%24.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
siouxsie.desktop.option.IOptionPane
siouxsie.desktop.option.IOptionPaneInitializer
siouxsie.desktop.option.IPreferencesDisplay
siouxsie.desktop.option.IPreferencesRenderer
siouxsie.desktop.option.CategoryDescription
siouxsie.desktop.option.OptionPaneDescription
siouxsie.desktop.option.OptionPaneInitializerContribution
siouxsie.desktop.option.impl
java.lang
javax.swing

siouxsie.desktop.option.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0138.0%100.0%8.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
siouxsie.desktop.option.impl.AbstractOptionPane
siouxsie.desktop.option.impl.ListPreferencesRenderer
siouxsie.desktop.option.impl.ListPreferencesRenderer$1
siouxsie.desktop.option.impl.ListPreferencesRenderer$2
siouxsie.desktop.option.impl.OptionPaneInitializerService
siouxsie.desktop.option.impl.PreferencesCommand
siouxsie.desktop.option.impl.PreferencesDisplay
siouxsie.desktop.option.impl.PreferencesDisplay$ActionCancel
siouxsie.desktop.option.impl.PreferencesDisplay$ActionOk
siouxsie.desktop.option.impl.PreferencesRenderer
siouxsie.desktop.option.impl.PreferencesRenderer$1
siouxsie.desktop.option.impl.PreferencesRenderer$2
Nonecom.jgoodies.forms.factories
java.awt
java.awt.event
java.lang
java.util
javax.swing
javax.swing.event
javax.swing.tree
org.apache.commons.logging
siouxsie.desktop.commands
siouxsie.desktop.commands.impl
siouxsie.desktop.option
siouxsie.desktop.prefs

siouxsie.desktop.prefs

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
32100.0%40.0%40.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
siouxsie.desktop.prefs.IPreferencesService
Nonesiouxsie.desktop.impl
siouxsie.desktop.option.impl
siouxsie.desktop.prefs.impl
java.lang
java.util.prefs

siouxsie.desktop.prefs.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
050.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonesiouxsie.desktop.prefs.impl.PreferencesService
Nonejava.lang
java.util.prefs
org.apache.commons.logging
org.apache.hivemind.events
siouxsie.desktop.prefs

siouxsie.hivemind

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0180.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonesiouxsie.hivemind.ApplicationContextDesc
siouxsie.hivemind.BeanFactoryDesc
siouxsie.hivemind.IconObjectProvider
siouxsie.hivemind.PropertyFileContribution
siouxsie.hivemind.PropertyFileSymbolSource
siouxsie.hivemind.SpringObjectProvider
Nonejava.awt
java.io
java.lang
java.net
java.util
javax.imageio
javax.swing
org.apache.commons.lang
org.apache.commons.logging
org.apache.hivemind
org.apache.hivemind.internal
org.apache.hivemind.service
org.springframework.beans.factory
org.springframework.beans.factory.support
org.springframework.beans.factory.xml
org.springframework.context
org.springframework.context.support
org.springframework.util

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.