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.exceptions.report 6 5 1 0 15 17.0% 100.0% 17.0% 1
de.smartics.exceptions.report.app 1 1 0 2 1 0.0% 33.0% 67.0% 1
de.smartics.exceptions.report.data 10 6 4 3 14 40.0% 82.0% 22.0% 1
de.smartics.exceptions.report.generator 7 2 5 1 11 71.0% 92.0% 63.0% 1
de.smartics.exceptions.report.message 4 4 0 2 6 0.0% 75.0% 25.0% 1
de.smartics.exceptions.report.qdox 1 1 0 1 5 0.0% 83.0% 17.0% 1
de.smartics.exceptions.report.renderer 13 2 11 2 4 85.0% 67.0% 51.0% 1
de.smartics.exceptions.report.renderer.html 12 11 1 1 7 8.0% 88.0% 4.0% 1
de.smartics.exceptions.report.scan 5 3 2 1 5 40.0% 83.0% 23.0% 1
de.smartics.exceptions.report.sort 3 3 0 0 5 0.0% 100.0% 0.0% 1
de.smartics.exceptions.report.utils 5 5 0 4 11 0.0% 73.0% 27.000002% 1

Packages

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

de.smartics.exceptions.report

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 15 17.0% 100.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.exceptions.report.AbstractBuilder
de.smartics.exceptions.report.AbstractBuilder$1
de.smartics.exceptions.report.AddReportItemHelper
de.smartics.exceptions.report.GenericScannerFactory
de.smartics.exceptions.report.ReportBuilder
de.smartics.exceptions.report.ReportConfiguration
None com.thoughtworks.qdox
com.thoughtworks.qdox.library
com.thoughtworks.qdox.model
com.thoughtworks.qdox.parser
de.smartics.exceptions.core
de.smartics.exceptions.report.data
de.smartics.exceptions.report.message
de.smartics.exceptions.report.qdox
de.smartics.exceptions.report.scan
de.smartics.exceptions.report.utils
de.smartics.util.lang
java.io
java.lang
java.util
org.apache.tools.ant

de.smartics.exceptions.report.app

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 1 0.0% 33.0% 67.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.exceptions.report.app.ReportException
de.smartics.exceptions.report.data
de.smartics.exceptions.report.generator
java.lang

de.smartics.exceptions.report.data

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 14 40.0% 82.0% 22.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.exceptions.report.data.AbstractExceptionCodesReport
de.smartics.exceptions.report.data.ExceptionCodesReport
de.smartics.exceptions.report.data.ProjectConfiguration
de.smartics.exceptions.report.data.StoredExceptionCodesReport
de.smartics.exceptions.report.data.ExceptionCodeMapping
de.smartics.exceptions.report.data.ExceptionCodeReportItem
de.smartics.exceptions.report.data.InMemoryExceptionCodesReport
de.smartics.exceptions.report.data.PlaceholderInfoHandler
de.smartics.exceptions.report.data.ReportProblem
de.smartics.exceptions.report.data.SourceInfo
de.smartics.exceptions.report
de.smartics.exceptions.report.generator
de.smartics.exceptions.report.sort
com.google.common.collect
com.thoughtworks.qdox.library
com.thoughtworks.qdox.model
com.thoughtworks.qdox.model.expression
de.smartics.exceptions.core
de.smartics.exceptions.i18n.message
de.smartics.exceptions.report.app
de.smartics.exceptions.report.generator
de.smartics.exceptions.report.message
de.smartics.messages.core
de.smartics.util.lang
java.io
java.lang
java.util

de.smartics.exceptions.report.generator

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 11 71.0% 92.0% 63.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.exceptions.report.generator.AbstractHtmlReportGenerator
de.smartics.exceptions.report.generator.AbstractOutputReportGenerator
de.smartics.exceptions.report.generator.AbstractReportGenerator
de.smartics.exceptions.report.generator.AbstractXmlReportGenerator
de.smartics.exceptions.report.generator.ReportGenerator
de.smartics.exceptions.report.generator.HtmlReportGenerator
de.smartics.exceptions.report.generator.StringFunction
de.smartics.exceptions.report.data
de.smartics.exceptions.core
de.smartics.exceptions.report.app
de.smartics.exceptions.report.data
de.smartics.exceptions.report.renderer
de.smartics.exceptions.report.renderer.html
de.smartics.exceptions.report.utils
java.io
java.lang
java.util
javax.xml.stream
org.apache.commons.lang

de.smartics.exceptions.report.message

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 6 0.0% 75.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.exceptions.report.message.PlaceHolderDesc
de.smartics.exceptions.report.message.PlaceHolderDescId
de.smartics.exceptions.report.message.PlaceHolderInfo
de.smartics.exceptions.report.message.PlaceHolderInfo$1
de.smartics.exceptions.report
de.smartics.exceptions.report.data
de.smartics.exceptions.i18n.message
de.smartics.util.lang
java.io
java.lang
java.util
org.apache.commons.lang

de.smartics.exceptions.report.qdox

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.exceptions.report.qdox.ExceptionCodeSearcher
de.smartics.exceptions.report
com.thoughtworks.qdox
com.thoughtworks.qdox.model
de.smartics.exceptions.core
de.smartics.util.lang
java.lang

de.smartics.exceptions.report.renderer

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 4 85.0% 67.0% 51.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.exceptions.report.renderer.CodeTagRenderer
de.smartics.exceptions.report.renderer.LinkPlainTagRenderer
de.smartics.exceptions.report.renderer.LinkTagRenderer
de.smartics.exceptions.report.renderer.LiteralTagRenderer
de.smartics.exceptions.report.renderer.RendererFactory
de.smartics.exceptions.report.renderer.SeeTagRenderer
de.smartics.exceptions.report.renderer.SinceTagRenderer
de.smartics.exceptions.report.renderer.TagListRenderer
de.smartics.exceptions.report.renderer.TextRenderer
de.smartics.exceptions.report.renderer.ValueTagRenderer
de.smartics.exceptions.report.renderer.VersionTagRenderer
de.smartics.exceptions.report.renderer.DefaultTextRenderer
de.smartics.exceptions.report.renderer.JavadocRenderer
de.smartics.exceptions.report.generator
de.smartics.exceptions.report.renderer.html
com.thoughtworks.qdox.model
de.smartics.exceptions.report.utils
java.lang
java.util

de.smartics.exceptions.report.renderer.html

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 8.0% 88.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.exceptions.report.renderer.html.AbstractHtmlLinkTagRenderer
de.smartics.exceptions.report.renderer.html.HtmlCodeTagRenderer
de.smartics.exceptions.report.renderer.html.HtmlDlTagListRenderer
de.smartics.exceptions.report.renderer.html.HtmlLinkPlainTagRenderer
de.smartics.exceptions.report.renderer.html.HtmlLinkTagRenderer
de.smartics.exceptions.report.renderer.html.HtmlLiteralTagRenderer
de.smartics.exceptions.report.renderer.html.HtmlRendererFactory
de.smartics.exceptions.report.renderer.html.HtmlSeeTagRenderer
de.smartics.exceptions.report.renderer.html.HtmlSinceTagRenderer
de.smartics.exceptions.report.renderer.html.HtmlValueTagRenderer
de.smartics.exceptions.report.renderer.html.HtmlVersionTagRenderer
de.smartics.exceptions.report.renderer.html.Utils
de.smartics.exceptions.report.generator
com.thoughtworks.qdox.library
com.thoughtworks.qdox.model
de.smartics.exceptions.report.renderer
de.smartics.exceptions.report.utils
java.lang
java.util
org.apache.commons.lang

de.smartics.exceptions.report.scan

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 40.0% 83.0% 23.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.exceptions.report.scan.AbstractScannerFactory
de.smartics.exceptions.report.scan.ScannerFactory
de.smartics.exceptions.report.scan.AbstractScannerFactory$1
de.smartics.exceptions.report.scan.DirectoryScannerFactory
de.smartics.exceptions.report.scan.ZipScannerFactory
de.smartics.exceptions.report
java.io
java.lang
org.apache.tools.ant
org.apache.tools.ant.types
org.apache.tools.ant.types.selectors

de.smartics.exceptions.report.sort

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.exceptions.report.sort.CodeComparator
de.smartics.exceptions.report.sort.MixedCodeComparator
de.smartics.exceptions.report.sort.MixedComponentCodeComparator
None de.smartics.exceptions.code
de.smartics.exceptions.core
de.smartics.exceptions.report.data
java.lang
java.util

de.smartics.exceptions.report.utils

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 11 0.0% 73.0% 27.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.exceptions.report.utils.CopyReader
de.smartics.exceptions.report.utils.InlineJavadocTags
de.smartics.exceptions.report.utils.JavadocUtils
de.smartics.exceptions.report.utils.RuntimeUtils
de.smartics.exceptions.report.utils.StringFunction
de.smartics.exceptions.report
de.smartics.exceptions.report.generator
de.smartics.exceptions.report.renderer
de.smartics.exceptions.report.renderer.html
com.thoughtworks.qdox.model
com.thoughtworks.qdox.model.impl
de.smartics.util.lang
java.io
java.lang
java.lang.reflect
java.util
javax.xml.namespace
javax.xml.stream
javax.xml.stream.events
org.apache.commons.lang

Cycles

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

Package Package Dependencies
de.smartics.exceptions.report de.smartics.exceptions.report.data
de.smartics.exceptions.report.generator
de.smartics.exceptions.report.data
de.smartics.exceptions.report.data de.smartics.exceptions.report.generator
de.smartics.exceptions.report.data
de.smartics.exceptions.report.generator de.smartics.exceptions.report.data
de.smartics.exceptions.report.generator
de.smartics.exceptions.report.sort de.smartics.exceptions.report.data
de.smartics.exceptions.report.generator
de.smartics.exceptions.report.data

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.