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
org.helyx.logging4me 5 5 0 9 6 0.0% 40.0% 60.000004% 1
org.helyx.logging4me.appender 4 2 2 5 8 50.0% 62.0% 12.0% 1
org.helyx.logging4me.category 1 1 0 5 4 0.0% 44.0% 56.0% 1
org.helyx.logging4me.config 3 2 1 3 16 33.0% 84.0% 18.0% 1
org.helyx.logging4me.format.date 20 19 1 2 3 5.0% 60.000004% 35.0% 1
org.helyx.logging4me.format.number 1 1 0 1 2 0.0% 67.0% 33.0% 1
org.helyx.logging4me.format.text 1 1 0 1 2 0.0% 67.0% 33.0% 1
org.helyx.logging4me.layout 4 2 2 4 4 50.0% 50.0% 0.0% 1
org.helyx.logging4me.layout.pattern 5 5 0 1 6 0.0% 86.0% 14.0% 1
org.helyx.logging4me.level 2 2 0 0 5 0.0% 100.0% 0.0% 1
org.helyx.logging4me.stream 1 1 0 1 3 0.0% 75.0% 25.0% 1
org.helyx.logging4me.system 1 1 0 4 3 0.0% 43.0% 57.0% 1
org.helyx.logging4me.text 1 1 0 1 1 0.0% 50.0% 50.0% 1
org.helyx.logging4me.util 2 2 0 2 5 0.0% 71.0% 29.0% 1
org.helyx.logging4me.xml 1 1 0 2 1 0.0% 33.0% 67.0% 1
org.helyx.logging4me.xml.dom 3 3 0 2 7 0.0% 78.0% 22.0% 1
org.helyx.logging4me.xml.processor 2 1 1 3 5 50.0% 62.0% 12.0% 1
org.helyx.logging4me.xml.processor.appender 2 2 0 1 8 0.0% 89.0% 11.0% 1
org.helyx.logging4me.xml.processor.layout 3 3 0 1 7 0.0% 88.0% 12.0% 1

Packages

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

org.helyx.logging4me

Afferent Couplings Efferent Couplings Abstractness Instability Distance
9 6 0.0% 40.0% 60.000004%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.helyx.logging4me.LogEvent
org.helyx.logging4me.Logger
org.helyx.logging4me.LoggerException
org.helyx.logging4me.LoggerManager
org.helyx.logging4me.UnknownLoggerLevelException
org.helyx.logging4me.appender
org.helyx.logging4me.category
org.helyx.logging4me.config
org.helyx.logging4me.layout
org.helyx.logging4me.layout.pattern
org.helyx.logging4me.level
org.helyx.logging4me.stream
org.helyx.logging4me.system
org.helyx.logging4me.xml.processor.appender
java.lang
java.util
org.helyx.logging4me.appender
org.helyx.logging4me.category
org.helyx.logging4me.format.text
org.helyx.logging4me.system

org.helyx.logging4me.appender

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 8 50.0% 62.0% 12.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.helyx.logging4me.appender.AbstractAppender
org.helyx.logging4me.appender.Appender
org.helyx.logging4me.appender.ConsoleAppender
org.helyx.logging4me.appender.FileAppender
org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.config
org.helyx.logging4me.level
org.helyx.logging4me.xml.processor.appender
java.io
java.lang
javax.microedition.io
javax.microedition.io.file
org.helyx.logging4me
org.helyx.logging4me.layout
org.helyx.logging4me.system
org.helyx.logging4me.util

org.helyx.logging4me.category

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 4 0.0% 44.0% 56.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.helyx.logging4me.category.Category
org.helyx.logging4me
org.helyx.logging4me.config
org.helyx.logging4me.layout
org.helyx.logging4me.layout.pattern
org.helyx.logging4me.level
java.lang
java.util
org.helyx.logging4me
org.helyx.logging4me.appender

org.helyx.logging4me.config

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 16 33.0% 84.0% 18.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.helyx.logging4me.config.LoggerConfigurer
org.helyx.logging4me.config.BasicConfigurer
org.helyx.logging4me.config.XmlConfigurer
org.helyx.logging4me.xml.processor
org.helyx.logging4me.xml.processor.appender
org.helyx.logging4me.xml.processor.layout
java.io
java.lang
java.util
org.helyx.basics4me.io
org.helyx.logging4me
org.helyx.logging4me.appender
org.helyx.logging4me.category
org.helyx.logging4me.layout
org.helyx.logging4me.stream
org.helyx.logging4me.system
org.helyx.logging4me.xml
org.helyx.logging4me.xml.dom
org.helyx.logging4me.xml.processor
org.helyx.logging4me.xml.processor.appender
org.helyx.logging4me.xml.processor.layout
org.kxml2.kdom

org.helyx.logging4me.format.date

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 3 5.0% 60.000004% 35.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.helyx.logging4me.format.date.DatePartFormatter
org.helyx.logging4me.format.date.DateFormatUtil
org.helyx.logging4me.format.date.DateFormatter
org.helyx.logging4me.format.date.DateFormatter$1
org.helyx.logging4me.format.date.DateFormatter$10
org.helyx.logging4me.format.date.DateFormatter$11
org.helyx.logging4me.format.date.DateFormatter$12
org.helyx.logging4me.format.date.DateFormatter$13
org.helyx.logging4me.format.date.DateFormatter$14
org.helyx.logging4me.format.date.DateFormatter$15
org.helyx.logging4me.format.date.DateFormatter$16
org.helyx.logging4me.format.date.DateFormatter$2
org.helyx.logging4me.format.date.DateFormatter$3
org.helyx.logging4me.format.date.DateFormatter$4
org.helyx.logging4me.format.date.DateFormatter$5
org.helyx.logging4me.format.date.DateFormatter$6
org.helyx.logging4me.format.date.DateFormatter$7
org.helyx.logging4me.format.date.DateFormatter$8
org.helyx.logging4me.format.date.DateFormatter$9
org.helyx.logging4me.format.date.DateFormatterException
org.helyx.logging4me.layout
org.helyx.logging4me.layout.pattern
java.lang
java.util
org.helyx.logging4me.format.number

org.helyx.logging4me.format.number

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 0.0% 67.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.helyx.logging4me.format.number.NumberFormatUtil
org.helyx.logging4me.format.date
java.lang
org.helyx.logging4me.util

org.helyx.logging4me.format.text

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 0.0% 67.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.helyx.logging4me.format.text.StringFormat
org.helyx.logging4me
java.lang
org.helyx.logging4me.text

org.helyx.logging4me.layout

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 4 50.0% 50.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.helyx.logging4me.layout.Layout
org.helyx.logging4me.layout.PatternPartFormatter
org.helyx.logging4me.layout.LevelLayout
org.helyx.logging4me.layout.SimpleLayout
org.helyx.logging4me.appender
org.helyx.logging4me.config
org.helyx.logging4me.layout.pattern
org.helyx.logging4me.xml.processor.layout
java.lang
org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.format.date

org.helyx.logging4me.layout.pattern

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 org.helyx.logging4me.layout.pattern.DatePatternPartFormatter
org.helyx.logging4me.layout.pattern.PatternLayout
org.helyx.logging4me.layout.pattern.PatternLayout$1
org.helyx.logging4me.layout.pattern.PatternLayout$2
org.helyx.logging4me.layout.pattern.PatternLayout$3
org.helyx.logging4me.xml.processor.layout
java.lang
java.util
org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.format.date
org.helyx.logging4me.layout

org.helyx.logging4me.level

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 org.helyx.logging4me.level.LevelInformationHolder
org.helyx.logging4me.level.LevelSwitcher
None java.lang
java.util
org.helyx.logging4me
org.helyx.logging4me.appender
org.helyx.logging4me.category

org.helyx.logging4me.stream

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 3 0.0% 75.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.helyx.logging4me.stream.StreamUtil
org.helyx.logging4me.config
java.io
java.lang
org.helyx.logging4me

org.helyx.logging4me.system

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 3 0.0% 43.0% 57.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.helyx.logging4me.system.SystemLogger
org.helyx.logging4me
org.helyx.logging4me.appender
org.helyx.logging4me.config
org.helyx.logging4me.xml.dom
java.io
java.lang
org.helyx.logging4me

org.helyx.logging4me.text

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 1 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.helyx.logging4me.text.TextUtil
org.helyx.logging4me.format.text
java.lang

org.helyx.logging4me.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 5 0.0% 71.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.helyx.logging4me.util.FileUtil
org.helyx.logging4me.util.MathUtil
org.helyx.logging4me.appender
org.helyx.logging4me.format.number
java.io
java.lang
java.util
javax.microedition.io
javax.microedition.io.file

org.helyx.logging4me.xml

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 org.helyx.logging4me.xml.XmlParsingException
org.helyx.logging4me.config
org.helyx.logging4me.xml.processor.appender
java.lang

org.helyx.logging4me.xml.dom

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 7 0.0% 78.0% 22.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.helyx.logging4me.xml.dom.DomAttributeProcessor
org.helyx.logging4me.xml.dom.DomUtil
org.helyx.logging4me.xml.dom.DomUtil$1
org.helyx.logging4me.config
org.helyx.logging4me.xml.processor
java.io
java.lang
java.util
org.helyx.logging4me.system
org.kxml2.io
org.kxml2.kdom
org.xmlpull.v1

org.helyx.logging4me.xml.processor

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 5 50.0% 62.0% 12.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.helyx.logging4me.xml.processor.IElementProcessor
org.helyx.logging4me.xml.processor.ElementProcessorUtil
org.helyx.logging4me.config
org.helyx.logging4me.xml.processor.appender
org.helyx.logging4me.xml.processor.layout
java.lang
java.util
org.helyx.logging4me.config
org.helyx.logging4me.xml.dom
org.kxml2.kdom

org.helyx.logging4me.xml.processor.appender

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 0.0% 89.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.helyx.logging4me.xml.processor.appender.ConsoleAppenderProcessor
org.helyx.logging4me.xml.processor.appender.FileAppenderProcessor
org.helyx.logging4me.config
java.lang
java.util
org.helyx.logging4me
org.helyx.logging4me.appender
org.helyx.logging4me.config
org.helyx.logging4me.xml
org.helyx.logging4me.xml.processor
org.kxml2.kdom

org.helyx.logging4me.xml.processor.layout

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 org.helyx.logging4me.xml.processor.layout.LevelLayoutProcessor
org.helyx.logging4me.xml.processor.layout.PatternLayoutProcessor
org.helyx.logging4me.xml.processor.layout.SimpleLayoutProcessor
org.helyx.logging4me.config
java.lang
java.util
org.helyx.logging4me.config
org.helyx.logging4me.layout
org.helyx.logging4me.layout.pattern
org.helyx.logging4me.xml.processor
org.kxml2.kdom

Cycles

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

Package Package Dependencies
org.helyx.logging4me org.helyx.logging4me.category
org.helyx.logging4me.appender
org.helyx.logging4me
org.helyx.logging4me.appender org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.appender
org.helyx.logging4me.category org.helyx.logging4me.appender
org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.config org.helyx.logging4me.category
org.helyx.logging4me.appender
org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.layout org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.appender
org.helyx.logging4me
org.helyx.logging4me.layout.pattern org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.appender
org.helyx.logging4me
org.helyx.logging4me.level org.helyx.logging4me.category
org.helyx.logging4me.appender
org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.stream org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.appender
org.helyx.logging4me
org.helyx.logging4me.system org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.appender
org.helyx.logging4me
org.helyx.logging4me.xml.dom org.helyx.logging4me.system
org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.appender
org.helyx.logging4me
org.helyx.logging4me.xml.processor org.helyx.logging4me.xml.dom
org.helyx.logging4me.system
org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.appender
org.helyx.logging4me
org.helyx.logging4me.xml.processor.appender org.helyx.logging4me.config
org.helyx.logging4me.category
org.helyx.logging4me.appender
org.helyx.logging4me
org.helyx.logging4me.category
org.helyx.logging4me.xml.processor.layout org.helyx.logging4me.config
org.helyx.logging4me.category
org.helyx.logging4me.appender
org.helyx.logging4me
org.helyx.logging4me.category

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.