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 ]

Package TC CC AC Ca Ce A I D V
de.gluehloch.swinger.action 7 6 1 3 5 14.0% 62.0% 23.0% 1
de.gluehloch.swinger.channel 6 1 5 2 1 83.0% 33.0% 17.0% 1
de.gluehloch.swinger.channel.impl 3 3 0 1 4 0.0% 80.0% 20.0% 1
de.gluehloch.swinger.common 17 15 2 2 16 12.0% 89.0% 1.0% 1
de.gluehloch.swinger.dialog 27 23 4 3 21 15.000001% 88.0% 2.0% 1
de.gluehloch.swinger.dialog.action 6 2 4 1 6 67.0% 86.0% 52.0% 1
de.gluehloch.swinger.dialog.model 5 4 1 2 4 20.0% 67.0% 13.0% 1
de.gluehloch.swinger.event 5 3 2 0 7 40.0% 100.0% 40.0% 1
de.gluehloch.swinger.icon 1 1 0 1 6 0.0% 86.0% 14.0% 1
de.gluehloch.swinger.widget 4 3 1 0 9 25.0% 100.0% 25.0% 1
de.gluehloch.swinger.widget.tab 13 8 5 1 7 38.0% 88.0% 26.0% 1
de.gluehloch.swinger.widget.tab.impl 7 7 0 0 10 0.0% 100.0% 0.0% 1

Packages

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

de.gluehloch.swinger.action

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 5 14.0% 62.0% 23.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.gluehloch.swinger.action.AbstractSwingerAction
de.gluehloch.swinger.action.ActionGroup
de.gluehloch.swinger.action.ActionGroup$1
de.gluehloch.swinger.action.ActionGroup$Seperator
de.gluehloch.swinger.action.ActionPool
de.gluehloch.swinger.action.ActionPool$PlaceHolderAction
de.gluehloch.swinger.action.DefaultSwingerAction
de.gluehloch.swinger.common
de.gluehloch.swinger.dialog
de.gluehloch.swinger.dialog.action
de.gluehloch.swinger.common
java.awt.event
java.lang
java.util
javax.swing

de.gluehloch.swinger.channel

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 1 83.0% 33.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.gluehloch.swinger.channel.Channel
de.gluehloch.swinger.channel.Message
de.gluehloch.swinger.channel.MessageBus
de.gluehloch.swinger.channel.MessageListener
de.gluehloch.swinger.channel.VetoableMessageListener
de.gluehloch.swinger.channel.MessageVetoException
de.gluehloch.swinger.channel.impl
de.gluehloch.swinger.event
java.lang

de.gluehloch.swinger.channel.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 0.0% 80.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.gluehloch.swinger.channel.impl.DefaultChannel
de.gluehloch.swinger.channel.impl.DefaultMessage
de.gluehloch.swinger.channel.impl.DefaultMessageBus
de.gluehloch.swinger.event
de.gluehloch.swinger.channel
java.lang
java.util
org.apache.commons.lang

de.gluehloch.swinger.common

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 16 12.0% 89.0% 1.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.gluehloch.swinger.common.SwingApplication
de.gluehloch.swinger.common.WinFileFilter
de.gluehloch.swinger.common.ActionBinder
de.gluehloch.swinger.common.AngledLinesWindowsCornerIcon
de.gluehloch.swinger.common.FadingLabel
de.gluehloch.swinger.common.InfoDialogBuilder
de.gluehloch.swinger.common.InfoDialogBuilder$CloseAction
de.gluehloch.swinger.common.LabeldSeparator
de.gluehloch.swinger.common.MnemonicUtils
de.gluehloch.swinger.common.RegExFormatter
de.gluehloch.swinger.common.SwingApplication$1
de.gluehloch.swinger.common.SwingerStatusBar
de.gluehloch.swinger.common.SwingerUtils
de.gluehloch.swinger.common.TitledSeperator
de.gluehloch.swinger.common.TriangleSquareWindowsCornerIcon
de.gluehloch.swinger.common.VerticalSeparator
de.gluehloch.swinger.common.WindowBlocker
de.gluehloch.swinger.action
de.gluehloch.swinger.dialog
com.jgoodies.forms.factories
com.jgoodies.forms.layout
de.gluehloch.swinger.action
de.gluehloch.swinger.dialog
java.awt
java.awt.event
java.awt.geom
java.io
java.lang
java.text
java.util.regex
javax.swing
javax.swing.event
javax.swing.filechooser
javax.swing.text
org.apache.commons.lang

de.gluehloch.swinger.dialog

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 21 15.000001% 88.0% 2.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.gluehloch.swinger.dialog.AbstractMessageDialog
de.gluehloch.swinger.dialog.AbstractSwingerDialog
de.gluehloch.swinger.dialog.AddAndRemoveSelectionsPanel$SelectionAction
de.gluehloch.swinger.dialog.SwingerDialog
de.gluehloch.swinger.dialog.AbstractMessageDialogAdapter
de.gluehloch.swinger.dialog.AbstractMessageDialogAdapter$1
de.gluehloch.swinger.dialog.AbstractMessageDialogAdapter$DialogModelHandler
de.gluehloch.swinger.dialog.AddAndRemoveSelectionsPanel
de.gluehloch.swinger.dialog.AddAndRemoveSelectionsPanel$AllToLeftAction
de.gluehloch.swinger.dialog.AddAndRemoveSelectionsPanel$AllToRightAction
de.gluehloch.swinger.dialog.AddAndRemoveSelectionsPanel$LayoutWrapper
de.gluehloch.swinger.dialog.AddAndRemoveSelectionsPanel$ShiftToLeftAction
de.gluehloch.swinger.dialog.AddAndRemoveSelectionsPanel$ShiftToRightAction
de.gluehloch.swinger.dialog.DefaultDialogModel
de.gluehloch.swinger.dialog.DialogEnum
de.gluehloch.swinger.dialog.DialogFactory
de.gluehloch.swinger.dialog.DialogHeaderBorder
de.gluehloch.swinger.dialog.DialogHeaderPanel
de.gluehloch.swinger.dialog.DialogHeaderPanel$1
de.gluehloch.swinger.dialog.DialogHeaderPanel$TextAdapter
de.gluehloch.swinger.dialog.DialogLayout
de.gluehloch.swinger.dialog.MessageDialogFactory
de.gluehloch.swinger.dialog.OkAbortDialog
de.gluehloch.swinger.dialog.OkDetailDialog
de.gluehloch.swinger.dialog.OkDetailDialog$CloseDetails
de.gluehloch.swinger.dialog.OkDetailDialog$OpenDetails
de.gluehloch.swinger.dialog.OkDialog
de.gluehloch.swinger.common
de.gluehloch.swinger.dialog.action
de.gluehloch.swinger.dialog.model
ca.odell.glazedlists
ca.odell.glazedlists.swing
com.jgoodies.binding.value
com.jgoodies.forms.builder
com.jgoodies.forms.factories
com.jgoodies.forms.layout
de.gluehloch.swinger.action
de.gluehloch.swinger.common
de.gluehloch.swinger.dialog.action
de.gluehloch.swinger.dialog.model
de.gluehloch.swinger.icon
java.awt
java.awt.event
java.beans
java.lang
java.text
java.util
javax.swing
javax.swing.border
javax.swing.text
org.apache.commons.lang.enums

de.gluehloch.swinger.dialog.action

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 67.0% 86.0% 52.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.gluehloch.swinger.dialog.action.ActionConst
de.gluehloch.swinger.dialog.action.DialogCloseDetailAction
de.gluehloch.swinger.dialog.action.DialogHelpAction
de.gluehloch.swinger.dialog.action.DialogOpenDetailAction
de.gluehloch.swinger.dialog.action.DialogAbortAction
de.gluehloch.swinger.dialog.action.DialogOkAction
de.gluehloch.swinger.dialog
de.awtools.lang
de.gluehloch.swinger.action
de.gluehloch.swinger.dialog
de.gluehloch.swinger.dialog.model
java.awt.event
java.lang

de.gluehloch.swinger.dialog.model

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 4 20.0% 67.0% 13.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.gluehloch.swinger.dialog.model.DialogModel
de.gluehloch.swinger.dialog.model.DefaultDialogModel
de.gluehloch.swinger.dialog.model.DetailMessageDialogModel
de.gluehloch.swinger.dialog.model.DialogHeaderModel
de.gluehloch.swinger.dialog.model.MessageDialogModel
de.gluehloch.swinger.dialog
de.gluehloch.swinger.dialog.action
de.gluehloch.swinger.dialog
java.beans
java.lang
javax.swing

de.gluehloch.swinger.event

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 40.0% 100.0% 40.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.gluehloch.swinger.event.WorkspaceChangeListener
de.gluehloch.swinger.event.WorkspaceChangeMediator
de.gluehloch.swinger.event.DefaultWorkspaceManager
de.gluehloch.swinger.event.SwingerWindowListener
de.gluehloch.swinger.event.WorkspaceChangeEvent
None de.gluehloch.swinger.channel
de.gluehloch.swinger.channel.impl
java.awt.event
java.beans
java.lang
java.util
javax.swing.event

de.gluehloch.swinger.icon

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 0.0% 86.0% 14.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.gluehloch.swinger.icon.IconResources
de.gluehloch.swinger.dialog
java.awt
java.io
java.lang
javax.imageio
javax.swing
org.apache.commons.lang

de.gluehloch.swinger.widget

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 9 25.0% 100.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.gluehloch.swinger.widget.TableEditorFormat
de.gluehloch.swinger.widget.DefaultComponentBuilder
de.gluehloch.swinger.widget.SwingerTable
de.gluehloch.swinger.widget.SwingerTableUtils
None com.jgoodies.binding.adapter
com.jgoodies.binding.beans
com.jgoodies.binding.list
com.jgoodies.binding.value
java.awt
java.lang
java.util
javax.swing
javax.swing.table

de.gluehloch.swinger.widget.tab

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 38.0% 88.0% 26.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.gluehloch.swinger.widget.tab.AbstractTabbedPanelBuilder
de.gluehloch.swinger.widget.tab.TabComponent
de.gluehloch.swinger.widget.tab.TabGroup
de.gluehloch.swinger.widget.tab.TabGroupListener
de.gluehloch.swinger.widget.tab.TabbedAdapter
de.gluehloch.swinger.widget.tab.DefaultTabComponent
de.gluehloch.swinger.widget.tab.DefaultTabGroup
de.gluehloch.swinger.widget.tab.InfonodeTabbedPanelBuilder
de.gluehloch.swinger.widget.tab.SwingTabbedPanelBuilder
de.gluehloch.swinger.widget.tab.TabGroupEvent
de.gluehloch.swinger.widget.tab.TabGroupView
de.gluehloch.swinger.widget.tab.TabGroupView$1
de.gluehloch.swinger.widget.tab.TabGroupView$TabComponentChangeListener
de.gluehloch.swinger.widget.tab.impl
java.beans
java.lang
java.util
javax.swing
javax.swing.event
net.infonode.tabbedpanel
net.infonode.tabbedpanel.titledtab

de.gluehloch.swinger.widget.tab.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 10 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.gluehloch.swinger.widget.tab.impl.InfoNodeTabAdapter
de.gluehloch.swinger.widget.tab.impl.InfoNodeTabAdapter$1
de.gluehloch.swinger.widget.tab.impl.InfoNodeTabAdapter$SelectionChangeListener
de.gluehloch.swinger.widget.tab.impl.SwingTabAdapter
de.gluehloch.swinger.widget.tab.impl.SwingTabAdapter$1
de.gluehloch.swinger.widget.tab.impl.SwingTabAdapter$SelectionChangeListener
de.gluehloch.swinger.widget.tab.impl.SwingTabAdapter$TabComponentChangeListener
None de.gluehloch.swinger.widget.tab
java.beans
java.lang
java.util
javax.swing
javax.swing.event
net.infonode.tabbedpanel
net.infonode.tabbedpanel.titledtab
org.apache.commons.lang
org.slf4j

Cycles

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

Package Package Dependencies
de.gluehloch.swinger.action de.gluehloch.swinger.common
de.gluehloch.swinger.action
de.gluehloch.swinger.common de.gluehloch.swinger.action
de.gluehloch.swinger.common
de.gluehloch.swinger.dialog de.gluehloch.swinger.dialog.model
de.gluehloch.swinger.dialog
de.gluehloch.swinger.dialog.action de.gluehloch.swinger.dialog.model
de.gluehloch.swinger.dialog
de.gluehloch.swinger.dialog.model
de.gluehloch.swinger.dialog.model de.gluehloch.swinger.dialog
de.gluehloch.swinger.dialog.model

Explanation

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

The following explanations are for quick reference and are lifted directly from the original JDepend documentation.

Term Description
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.
Cycles Packages 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.