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
net.sf.jhylafax 111 107 4 2 35 4.0% 95.0% 2.0% 1
net.sf.jhylafax.addressbook 23 22 1 1 28 4.0% 97.0% 1.0% 1
net.sf.jhylafax.fax 17 17 0 1 11 0.0% 92.0% 8.0% 1

Packages

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

net.sf.jhylafax

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 35 4.0% 95.0% 2.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.sf.jhylafax.AbstractFaxDialog
net.sf.jhylafax.AbstractQueuePanel
net.sf.jhylafax.LocaleChangeListener
net.sf.jhylafax.Notification
net.sf.jhylafax.AbstractFaxDialog$1
net.sf.jhylafax.AbstractFaxDialog$AddressBookAction
net.sf.jhylafax.AbstractFaxDialog$ContactTransferHandler
net.sf.jhylafax.AbstractFaxDialog$InsertNumberAction
net.sf.jhylafax.AbstractFaxDialog$ParameterDialogAction
net.sf.jhylafax.AbstractQueuePanel$DeleteAction
net.sf.jhylafax.AbstractQueuePanel$ResetQueueTableAction
net.sf.jhylafax.AbstractQueuePanel$SaveAction
net.sf.jhylafax.AbstractQueuePanel$ViewAction
net.sf.jhylafax.ArgsHandler
net.sf.jhylafax.Constants
net.sf.jhylafax.DetailsDialog
net.sf.jhylafax.DetailsDialog$1
net.sf.jhylafax.DetailsDialog$KeyValueTableModel
net.sf.jhylafax.DetailsDialog$Property
net.sf.jhylafax.DetailsDialog$ValueTableCellRenderer
net.sf.jhylafax.DocumentQueuePanel
net.sf.jhylafax.DocumentQueuePanel$DocTableModel
net.sf.jhylafax.EditDialog
net.sf.jhylafax.EditDialog$1
net.sf.jhylafax.ExecutableChooserPanel
net.sf.jhylafax.FaxTray
net.sf.jhylafax.FaxTray$1
net.sf.jhylafax.JHylaFAX
net.sf.jhylafax.JHylaFAX$1
net.sf.jhylafax.JHylaFAX$2
net.sf.jhylafax.JHylaFAX$3
net.sf.jhylafax.JHylaFAX$4
net.sf.jhylafax.JHylaFAX$5
net.sf.jhylafax.JHylaFAX$6
net.sf.jhylafax.JHylaFAX$AboutAction
net.sf.jhylafax.JHylaFAX$AddressBookAction
net.sf.jhylafax.JHylaFAX$ConnectionHandler
net.sf.jhylafax.JHylaFAX$ExitAction
net.sf.jhylafax.JHylaFAX$PollAction
net.sf.jhylafax.JHylaFAX$SendAction
net.sf.jhylafax.JHylaFAX$SettingsDialogAction
net.sf.jhylafax.JHylaFAX$SettingsWizardAction
net.sf.jhylafax.JHylaFAX$UpdateStatusAction
net.sf.jhylafax.JHylaFAXHelper
net.sf.jhylafax.JobDialog
net.sf.jhylafax.JobHelper
net.sf.jhylafax.JobHelper$1
net.sf.jhylafax.JobHelper$2
net.sf.jhylafax.JobHelper$3
net.sf.jhylafax.JobHelper$4
net.sf.jhylafax.JobHelper$5
net.sf.jhylafax.JobHelper$6
net.sf.jhylafax.JobHelper$7
net.sf.jhylafax.JobHelper$FileStat
net.sf.jhylafax.JobHelper$StatusResponse
net.sf.jhylafax.JobHelper$StatusUpdateJob
net.sf.jhylafax.JobPanel
net.sf.jhylafax.JobQueue
net.sf.jhylafax.JobQueue$1
net.sf.jhylafax.JobQueue$1$1
net.sf.jhylafax.JobQueue$2
net.sf.jhylafax.JobQueuePanel
net.sf.jhylafax.JobQueuePanel$DetailsAction
net.sf.jhylafax.JobQueuePanel$EditJobAction
net.sf.jhylafax.JobQueuePanel$JobTableModel
net.sf.jhylafax.JobQueuePanel$RemoveJobAction
net.sf.jhylafax.JobQueuePanel$ResumeJobAction
net.sf.jhylafax.JobQueuePanel$RetryJobAction
net.sf.jhylafax.JobQueuePanel$SuspendJobAction
net.sf.jhylafax.JobQueuePanel$ViewJobAction
net.sf.jhylafax.NotificationTimer
net.sf.jhylafax.NotificationTimer$1
net.sf.jhylafax.NotificationTimer$MonitorPathTask
net.sf.jhylafax.NotificationTimer$MonitorPathTask$1
net.sf.jhylafax.NotificationTimer$StatusUpdateTask
net.sf.jhylafax.PollDialog
net.sf.jhylafax.PollDialog$1
net.sf.jhylafax.ReceiveQueuePanel
net.sf.jhylafax.ReceiveQueuePanel$FaxTableModel
net.sf.jhylafax.SendDialog
net.sf.jhylafax.SendDialog$1
net.sf.jhylafax.SendDialog$2
net.sf.jhylafax.SendDialog$3
net.sf.jhylafax.SendDialog$Fax
net.sf.jhylafax.SendDialog$MoreDocumentsAction
net.sf.jhylafax.SendDialog$MyFileChooserPanel
net.sf.jhylafax.SendDialog$PreviewCoverAction
net.sf.jhylafax.Settings
net.sf.jhylafax.Settings$1
net.sf.jhylafax.Settings$Notification
net.sf.jhylafax.Settings$Notification$1
net.sf.jhylafax.Settings$Notification$2
net.sf.jhylafax.Settings$Notification$3
net.sf.jhylafax.Settings$Notification$4
net.sf.jhylafax.Settings$Resolution
net.sf.jhylafax.Settings$Resolution$1
net.sf.jhylafax.Settings$Resolution$2
net.sf.jhylafax.Settings$Resolution$3
net.sf.jhylafax.SettingsDialog
net.sf.jhylafax.SettingsDialog$1
net.sf.jhylafax.SettingsDialog$2
net.sf.jhylafax.SettingsWizard
net.sf.jhylafax.SettingsWizard$GeneralPage
net.sf.jhylafax.SettingsWizard$IntroductionPage
net.sf.jhylafax.SettingsWizard$NotifyPage
net.sf.jhylafax.SettingsWizard$ProgramsPage
net.sf.jhylafax.SettingsWizard$ProgramsPage$SearchProgramsAction
net.sf.jhylafax.StateCellRenderer
net.sf.jhylafax.StateCellRenderer$1
net.sf.jhylafax.TimeCellRenderer
net.sf.jhylafax.TransferMonitor
net.sf.jhylafax.addressbook
net.sf.jhylafax.fax
com.jgoodies.forms.builder
com.jgoodies.forms.layout
gnu.hylafax
gnu.inet.ftp
java.awt
java.awt.event
java.beans
java.io
java.lang
java.lang.reflect
java.net
java.text
java.util
javax.swing
javax.swing.event
javax.swing.plaf.basic
javax.swing.table
net.sf.jhylafax.addressbook
net.sf.jhylafax.fax
net.wimpi.pim.contact.facades
net.wimpi.pim.contact.model
org.apache.commons.logging
org.apache.log4j
org.xnap.commons.gui
org.xnap.commons.gui.action
org.xnap.commons.gui.completion
org.xnap.commons.gui.settings
org.xnap.commons.gui.shortcut
org.xnap.commons.gui.table
org.xnap.commons.gui.util
org.xnap.commons.gui.wizard
org.xnap.commons.i18n
org.xnap.commons.io
org.xnap.commons.settings
org.xnap.commons.util

net.sf.jhylafax.addressbook

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 28 4.0% 97.0% 1.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.sf.jhylafax.addressbook.AbstractContactTransferHandler
net.sf.jhylafax.addressbook.AddressBook
net.sf.jhylafax.addressbook.AddressBook$1
net.sf.jhylafax.addressbook.AddressBook$2
net.sf.jhylafax.addressbook.AddressBook$AddressTableModel
net.sf.jhylafax.addressbook.AddressBook$CloseAction
net.sf.jhylafax.addressbook.AddressBook$ContactCollection
net.sf.jhylafax.addressbook.AddressBook$ContactCollectionCellRenderer
net.sf.jhylafax.addressbook.AddressBook$ContactTransferHandler
net.sf.jhylafax.addressbook.AddressBook$DeleteAction
net.sf.jhylafax.addressbook.AddressBook$EditAction
net.sf.jhylafax.addressbook.AddressBook$ExportAction
net.sf.jhylafax.addressbook.AddressBook$FilterAction
net.sf.jhylafax.addressbook.AddressBook$ImportAction
net.sf.jhylafax.addressbook.AddressBook$NewAction
net.sf.jhylafax.addressbook.AddressBook$TabTitleButton
net.sf.jhylafax.addressbook.AddressBook$TableDoubleClickAction
net.sf.jhylafax.addressbook.ContactTransferable
net.sf.jhylafax.addressbook.EditContactDialog
net.sf.jhylafax.addressbook.ImportWizard
net.sf.jhylafax.addressbook.ImportWizard$1
net.sf.jhylafax.addressbook.ImportWizard$FilePage
net.sf.jhylafax.addressbook.ImportWizard$FormatPage
net.sf.jhylafax
com.jgoodies.forms.builder
com.jgoodies.forms.layout
java.awt
java.awt.datatransfer
java.awt.event
java.io
java.lang
java.util
javax.swing
javax.swing.event
javax.swing.table
javax.swing.tree
net.sf.jhylafax
net.wimpi.pim
net.wimpi.pim.contact.db
net.wimpi.pim.contact.facades
net.wimpi.pim.contact.io
net.wimpi.pim.contact.model
net.wimpi.pim.factory
org.apache.commons.logging
org.xnap.commons.gui
org.xnap.commons.gui.action
org.xnap.commons.gui.table
org.xnap.commons.gui.util
org.xnap.commons.gui.wizard
org.xnap.commons.i18n
org.xnap.commons.io
org.xnap.commons.settings

net.sf.jhylafax.fax

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 11 0.0% 92.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.sf.jhylafax.fax.Document
net.sf.jhylafax.fax.FaxCover
net.sf.jhylafax.fax.FaxCover$1
net.sf.jhylafax.fax.FaxHelper
net.sf.jhylafax.fax.FaxJob
net.sf.jhylafax.fax.FaxJob$JobType
net.sf.jhylafax.fax.FaxJob$PageChopping
net.sf.jhylafax.fax.FaxJob$State
net.sf.jhylafax.fax.HylaFAXClientHelper
net.sf.jhylafax.fax.Modem
net.sf.jhylafax.fax.Modem$Volume
net.sf.jhylafax.fax.Paper
net.sf.jhylafax.fax.Paper$1
net.sf.jhylafax.fax.Paper$2
net.sf.jhylafax.fax.Paper$3
net.sf.jhylafax.fax.Paper$4
net.sf.jhylafax.fax.ReceivedFax
net.sf.jhylafax
gnu.hylafax
gnu.inet.ftp
java.io
java.lang
java.text
java.util
net.sf.jhylafax
org.apache.commons.logging
org.xnap.commons.i18n
org.xnap.commons.io
org.xnap.commons.settings

Cycles

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

Package Package Dependencies
net.sf.jhylafax net.sf.jhylafax.fax
net.sf.jhylafax
net.sf.jhylafax.addressbook net.sf.jhylafax
net.sf.jhylafax.fax
net.sf.jhylafax
net.sf.jhylafax.fax net.sf.jhylafax
net.sf.jhylafax.fax

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.