JDepend Analysis

Designed for use with JDepend and Ant.


Summary

[summary] [packages] [cycles] [explanations]
PackageTotal ClassesAbstract ClassesConcrete ClassesAfferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
org.pz.platypus150156700.540.46
org.pz.platypus.commandline130132700.780.22
org.pz.platypus.exceptions7072100.330.67
org.pz.platypus.interfaces2202110.330.33
org.pz.platypus.logging3033300.50.5
org.pz.platypus.mocks1014100.20.8
org.pz.platypus.plugin.fontlist909010010
org.pz.platypus.utilities110113300.50.5
com.google.common.baseNo stats available: package referenced, but not analyzed.
com.google.common.ioNo stats available: package referenced, but not analyzed.
com.lowagie.textNo stats available: package referenced, but not analyzed.
com.lowagie.text.pdfNo stats available: package referenced, but not analyzed.
org.apache.commons.cliNo stats available: package referenced, but not analyzed.
org.junitNo stats available: package referenced, but not analyzed.

Packages

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

org.pz.platypus

Afferent Couplings: 6Efferent Couplings: 7Abstractness: 0Instability: 0.54Distance: 0.46
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None org.pz.platypus.ConfigFile
org.pz.platypus.ConfigLocator
org.pz.platypus.CopyrightNotice
org.pz.platypus.CopyrightTest
org.pz.platypus.GDD
org.pz.platypus.Literals
org.pz.platypus.LiteralsTest
org.pz.platypus.Main
org.pz.platypus.Platypus
org.pz.platypus.PluginLoader
org.pz.platypus.PluginLocator
org.pz.platypus.PropertyFile
org.pz.platypus.Status
org.pz.platypus.SystemStrings
org.pz.platypus.SystemStringsTest
org.pz.platypus.commandline
org.pz.platypus.interfaces
org.pz.platypus.logging
org.pz.platypus.mocks
org.pz.platypus.plugin.fontlist
org.pz.platypus.utilities
com.google.common.base
org.junit
org.pz.platypus.commandline
org.pz.platypus.exceptions
org.pz.platypus.logging
org.pz.platypus.mocks
org.pz.platypus.utilities

org.pz.platypus.commandline

Afferent Couplings: 2Efferent Couplings: 7Abstractness: 0Instability: 0.78Distance: 0.22
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None org.pz.platypus.commandline.ArgumentOption
org.pz.platypus.commandline.ArgumentOptions
org.pz.platypus.commandline.ArgumentOptionsTest
org.pz.platypus.commandline.BooleanOption
org.pz.platypus.commandline.BooleanOptions
org.pz.platypus.commandline.BooleanOptionsTest
org.pz.platypus.commandline.ClOptions
org.pz.platypus.commandline.ClParser
org.pz.platypus.commandline.ClParserTest
org.pz.platypus.commandline.ClProcessor
org.pz.platypus.commandline.ClProcessorTest
org.pz.platypus.commandline.FormatSelection
org.pz.platypus.commandline.FormatSelectionTest
org.pz.platypus
org.pz.platypus.utilities
org.apache.commons.cli
org.junit
org.pz.platypus
org.pz.platypus.exceptions
org.pz.platypus.logging
org.pz.platypus.mocks
org.pz.platypus.utilities

org.pz.platypus.exceptions

Afferent Couplings: 2Efferent Couplings: 1Abstractness: 0Instability: 0.33Distance: 0.67
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None org.pz.platypus.exceptions.FileCloseException
org.pz.platypus.exceptions.HelpMessagePrinted
org.pz.platypus.exceptions.InvalidConfigFileException
org.pz.platypus.exceptions.PlatyException
org.pz.platypus.exceptions.PluginException
org.pz.platypus.exceptions.PropertyFileException
org.pz.platypus.exceptions.StopExecutionException
org.pz.platypus
org.pz.platypus.commandline
org.pz.platypus.interfaces

org.pz.platypus.interfaces

Afferent Couplings: 2Efferent Couplings: 1Abstractness: 1Instability: 0.33Distance: 0.33
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.pz.platypus.interfaces.IException
org.pz.platypus.interfaces.IPlugin
Noneorg.pz.platypus.exceptions
org.pz.platypus.plugin.fontlist
org.pz.platypus

org.pz.platypus.logging

Afferent Couplings: 3Efferent Couplings: 3Abstractness: 0Instability: 0.5Distance: 0.5
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None org.pz.platypus.logging.LogConsole
org.pz.platypus.logging.LogFormatter
org.pz.platypus.logging.LogFormatterTest
org.pz.platypus
org.pz.platypus.commandline
org.pz.platypus.plugin.fontlist
org.junit
org.pz.platypus
org.pz.platypus.mocks

org.pz.platypus.mocks

Afferent Couplings: 4Efferent Couplings: 1Abstractness: 0Instability: 0.2Distance: 0.8
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None org.pz.platypus.mocks.MockLiterals
org.pz.platypus
org.pz.platypus.commandline
org.pz.platypus.logging
org.pz.platypus.plugin.fontlist
org.pz.platypus

org.pz.platypus.plugin.fontlist

Afferent Couplings: 0Efferent Couplings: 10Abstractness: 0Instability: 1Distance: 0
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None org.pz.platypus.plugin.fontlist.DefaultFontDirectories
org.pz.platypus.plugin.fontlist.FontDirectoriesEntries
org.pz.platypus.plugin.fontlist.FontDirectoriesFile
org.pz.platypus.plugin.fontlist.FontDirectoriesFileTest
org.pz.platypus.plugin.fontlist.FontFamilyNameExtractor
org.pz.platypus.plugin.fontlist.FontFilenamesExtractor
org.pz.platypus.plugin.fontlist.Fontlist
org.pz.platypus.plugin.fontlist.ReportWriter
org.pz.platypus.plugin.fontlist.TypefaceMap
Nonecom.google.common.base
com.google.common.io
com.lowagie.text
com.lowagie.text.pdf
org.junit
org.pz.platypus
org.pz.platypus.interfaces
org.pz.platypus.logging
org.pz.platypus.mocks
org.pz.platypus.utilities

org.pz.platypus.utilities

Afferent Couplings: 3Efferent Couplings: 3Abstractness: 0Instability: 0.5Distance: 0.5
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None org.pz.platypus.utilities.DateTime
org.pz.platypus.utilities.DateTimeTest
org.pz.platypus.utilities.FileSeparator
org.pz.platypus.utilities.FileSeparatorTest
org.pz.platypus.utilities.Filename
org.pz.platypus.utilities.FilenameTest
org.pz.platypus.utilities.MessagesToUser
org.pz.platypus.utilities.PlatypusHomeDirectory
org.pz.platypus.utilities.PlatypusHomeDirectoryTest
org.pz.platypus.utilities.TextTransforms
org.pz.platypus.utilities.TextTransformsTest
org.pz.platypus
org.pz.platypus.commandline
org.pz.platypus.plugin.fontlist
org.junit
org.pz.platypus
org.pz.platypus.commandline

Cycles

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

org.pz.platypus

org.pz.platypus.logging
org.pz.platypus

org.pz.platypus.commandline

org.pz.platypus.exceptions
org.pz.platypus.interfaces
org.pz.platypus
org.pz.platypus.logging
org.pz.platypus

org.pz.platypus.exceptions

org.pz.platypus.interfaces
org.pz.platypus
org.pz.platypus.logging
org.pz.platypus

org.pz.platypus.interfaces

org.pz.platypus
org.pz.platypus.logging
org.pz.platypus

org.pz.platypus.logging

org.pz.platypus
org.pz.platypus.logging

org.pz.platypus.mocks

org.pz.platypus
org.pz.platypus.logging
org.pz.platypus

org.pz.platypus.plugin.fontlist

org.pz.platypus
org.pz.platypus.logging
org.pz.platypus

org.pz.platypus.utilities

org.pz.platypus.commandline
org.pz.platypus.exceptions
org.pz.platypus.interfaces
org.pz.platypus
org.pz.platypus.logging
org.pz.platypus

Explanations

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

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

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.