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.smartics.maven.bugzilla 27 22 5 0 25 19.0% 100.0% 19.0% 1
de.smartics.maven.bugzilla.command 11 11 0 1 5 0.0% 83.0% 17.0% 1
de.smartics.maven.issue.command 30 16 14 4 8 47.0% 67.0% 13.0% 1
de.smartics.maven.issue.config 5 5 0 1 7 0.0% 88.0% 12.0% 1
de.smartics.maven.issue.util 7 7 0 3 21 0.0% 88.0% 12.0% 1
de.smartics.maven.nexus 3 3 0 1 13 0.0% 93.0% 7.0% 1

Packages

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

de.smartics.maven.bugzilla

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 25 19.0% 100.0% 19.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.maven.bugzilla.AbstractIssueManagementMojo
de.smartics.maven.bugzilla.AbstractIssueMojo
de.smartics.maven.bugzilla.AbstractMojoHelper
de.smartics.maven.bugzilla.AbstractMojoHelperProduct
de.smartics.maven.bugzilla.AbstractProductMojo
de.smartics.maven.bugzilla.AbstractIssueMojo$1
de.smartics.maven.bugzilla.AbstractIssueMojo$IssueServer
de.smartics.maven.bugzilla.AbstractMojoHelperProduct$ComponentsInfo
de.smartics.maven.bugzilla.AbstractMojoHelperProduct$ProductInfo
de.smartics.maven.bugzilla.AddMilestoneMojo
de.smartics.maven.bugzilla.AddProductMojo
de.smartics.maven.bugzilla.AddVersionMojo
de.smartics.maven.bugzilla.ComponentDescriptionLoader
de.smartics.maven.bugzilla.Console
de.smartics.maven.bugzilla.HelpMojo
de.smartics.maven.bugzilla.HelpMojo$1
de.smartics.maven.bugzilla.HelpMojo$LogCatcher
de.smartics.maven.bugzilla.InitMilestonesMojo
de.smartics.maven.bugzilla.InitProductMojo
de.smartics.maven.bugzilla.MavenCommandFactory
de.smartics.maven.bugzilla.MojoHelperMilestone
de.smartics.maven.bugzilla.MojoHelperProductAdd
de.smartics.maven.bugzilla.MojoHelperProductUpdate
de.smartics.maven.bugzilla.MojoHelperSync
de.smartics.maven.bugzilla.MojoHelperVersion
de.smartics.maven.bugzilla.SyncProductMojo
de.smartics.maven.bugzilla.UpdateProductMojo
None de.smartics.maven.bugzilla.command
de.smartics.maven.issue.command
de.smartics.maven.issue.config
de.smartics.maven.issue.util
de.smartics.maven.nexus
java.io
java.lang
java.lang.reflect
java.util
org.apache.commons.httpclient
org.apache.commons.io
org.apache.commons.lang
org.apache.commons.lang.reflect
org.apache.maven.artifact.factory
org.apache.maven.artifact.repository
org.apache.maven.artifact.versioning
org.apache.maven.execution
org.apache.maven.model
org.apache.maven.plugin
org.apache.maven.plugin.logging
org.apache.maven.plugins.help
org.apache.maven.project
org.apache.maven.settings
org.codehaus.plexus.util
org.sonatype.plexus.components.sec.dispatcher

de.smartics.maven.bugzilla.command

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 0.0% 83.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.maven.bugzilla.command.BugzillaAddComponentCommand
de.smartics.maven.bugzilla.command.BugzillaAddMilestoneCommand
de.smartics.maven.bugzilla.command.BugzillaAddProductCommand
de.smartics.maven.bugzilla.command.BugzillaAddVersionCommand
de.smartics.maven.bugzilla.command.BugzillaClassificationNavigationCommand
de.smartics.maven.bugzilla.command.BugzillaCommandFactory
de.smartics.maven.bugzilla.command.BugzillaCommandUtils
de.smartics.maven.bugzilla.command.BugzillaLoginCommand
de.smartics.maven.bugzilla.command.BugzillaLogoutCommand
de.smartics.maven.bugzilla.command.BugzillaProductNavigationCommand
de.smartics.maven.bugzilla.command.BugzillaUpdateProductCommand
de.smartics.maven.bugzilla
de.smartics.maven.issue.command
java.lang
java.util
org.apache.maven.artifact.versioning
org.codehaus.plexus.util

de.smartics.maven.issue.command

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 8 47.0% 67.0% 13.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.maven.issue.command.AbstractCommand
de.smartics.maven.issue.command.AddComponentCommand
de.smartics.maven.issue.command.AddMilestoneCommand
de.smartics.maven.issue.command.AddProductCommand
de.smartics.maven.issue.command.AddVersionCommand
de.smartics.maven.issue.command.ClassificationNavigationCommand
de.smartics.maven.issue.command.Command
de.smartics.maven.issue.command.CommandFactory
de.smartics.maven.issue.command.CommandParameter
de.smartics.maven.issue.command.LoginCommand
de.smartics.maven.issue.command.LogoutCommand
de.smartics.maven.issue.command.NavigationCommand
de.smartics.maven.issue.command.ProductNavigationCommand
de.smartics.maven.issue.command.UpdateProductCommand
de.smartics.maven.issue.command.AbstractCommand$Expectation
de.smartics.maven.issue.command.AddComponentCommand$Parameter
de.smartics.maven.issue.command.AddMilestoneCommand$Parameter
de.smartics.maven.issue.command.AddProductCommand$Parameter
de.smartics.maven.issue.command.AddVersionCommand$Parameter
de.smartics.maven.issue.command.ClassificationNavigationCommand$Parameter
de.smartics.maven.issue.command.CommandArgument
de.smartics.maven.issue.command.CommandException
de.smartics.maven.issue.command.CommandResult
de.smartics.maven.issue.command.CommandResult$HttpStatus
de.smartics.maven.issue.command.CommandResult$Page
de.smartics.maven.issue.command.CommandTarget
de.smartics.maven.issue.command.LoginCommand$Parameter
de.smartics.maven.issue.command.LogoutCommand$Parameter
de.smartics.maven.issue.command.ProductNavigationCommand$Parameter
de.smartics.maven.issue.command.UpdateProductCommand$Parameter
de.smartics.maven.bugzilla
de.smartics.maven.bugzilla.command
de.smartics.maven.issue.util
de.smartics.maven.nexus
de.smartics.maven.issue.util
java.io
java.lang
java.util
org.apache.commons.httpclient
org.apache.commons.httpclient.methods
org.apache.commons.httpclient.params
org.apache.commons.lang

de.smartics.maven.issue.config

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 0.0% 88.0% 12.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.maven.issue.config.Component
de.smartics.maven.issue.config.Configuration
de.smartics.maven.issue.config.ConfigurationLoader
de.smartics.maven.issue.config.NormalizeWhitespaceStringConverter
de.smartics.maven.issue.config.TrimStringConverter
de.smartics.maven.bugzilla
com.thoughtworks.xstream
com.thoughtworks.xstream.converters.basic
de.smartics.util.lang
java.io
java.lang
java.util
org.apache.commons.lang

de.smartics.maven.issue.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 21 0.0% 88.0% 12.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.maven.issue.util.Grabber
de.smartics.maven.issue.util.HttpClientUtils
de.smartics.maven.issue.util.LogLevel
de.smartics.maven.issue.util.MavenProjectWrapper
de.smartics.maven.issue.util.PackagingUtils
de.smartics.maven.issue.util.SettingsDecrypter
de.smartics.maven.issue.util.VersionHelper
de.smartics.maven.bugzilla
de.smartics.maven.issue.command
de.smartics.maven.nexus
de.smartics.maven.issue.command
de.smartics.util.lang
java.io
java.lang
java.util
java.util.regex
org.apache.commons.httpclient
org.apache.commons.io
org.apache.commons.lang
org.apache.maven.artifact
org.apache.maven.artifact.factory
org.apache.maven.artifact.repository
org.apache.maven.artifact.resolver.filter
org.apache.maven.artifact.versioning
org.apache.maven.model
org.apache.maven.project
org.apache.maven.project.artifact
org.codehaus.plexus.logging
org.codehaus.plexus.util.xml
org.sonatype.plexus.components.sec.dispatcher
org.xml.sax

de.smartics.maven.nexus

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 13 0.0% 93.0% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.maven.nexus.NexusClient
de.smartics.maven.nexus.NexusRequest
de.smartics.maven.nexus.NexusUtils
de.smartics.maven.bugzilla
de.smartics.maven.issue.command
de.smartics.maven.issue.util
de.smartics.util.lang
java.io
java.lang
org.apache.commons.httpclient
org.apache.commons.httpclient.methods
org.apache.commons.httpclient.params
org.apache.maven.plugin.logging
org.jdom
org.jdom.input
org.jdom.xpath
org.xml.sax

Cycles

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

Package Package Dependencies
de.smartics.maven.bugzilla de.smartics.maven.issue.util
de.smartics.maven.issue.command
de.smartics.maven.issue.util
de.smartics.maven.bugzilla.command de.smartics.maven.issue.command
de.smartics.maven.issue.util
de.smartics.maven.issue.command
de.smartics.maven.issue.command de.smartics.maven.issue.util
de.smartics.maven.issue.command
de.smartics.maven.issue.util de.smartics.maven.issue.command
de.smartics.maven.issue.util
de.smartics.maven.nexus de.smartics.maven.issue.util
de.smartics.maven.issue.command
de.smartics.maven.issue.util

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.