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.apache.commons.lang 38 36 2 8 8 5.0% 50.0% 45.0% 1
org.apache.commons.lang.builder 14 13 1 1 7 7.0% 88.0% 5.0% 1
org.apache.commons.lang.enum 4 2 2 0 5 50.0% 100.0% 50.0% 1
org.apache.commons.lang.enums 4 2 2 0 5 50.0% 100.0% 50.0% 1
org.apache.commons.lang.exception 6 5 1 1 6 17.0% 86.0% 2.0% 1
org.apache.commons.lang.math 11 10 1 3 5 9.0% 62.0% 28.0% 1
org.apache.commons.lang.mutable 9 8 1 0 4 11.0% 100.0% 11.0% 1
org.apache.commons.lang.text 17 14 3 0 5 18.0% 100.0% 18.0% 1
org.apache.commons.lang.time 24 22 2 0 5 8.0% 100.0% 8.0% 1

Packages

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

org.apache.commons.lang

Afferent Couplings Efferent Couplings Abstractness Instability Distance
8 8 5.0% 50.0% 45.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.Entities$EntityMap
org.apache.commons.lang.Entities$MapIntMap
org.apache.commons.lang.ArrayUtils
org.apache.commons.lang.BitField
org.apache.commons.lang.BooleanUtils
org.apache.commons.lang.CharEncoding
org.apache.commons.lang.CharRange
org.apache.commons.lang.CharSet
org.apache.commons.lang.CharSetUtils
org.apache.commons.lang.CharUtils
org.apache.commons.lang.ClassUtils
org.apache.commons.lang.Entities
org.apache.commons.lang.Entities$ArrayEntityMap
org.apache.commons.lang.Entities$BinaryEntityMap
org.apache.commons.lang.Entities$HashEntityMap
org.apache.commons.lang.Entities$LookupEntityMap
org.apache.commons.lang.Entities$PrimitiveEntityMap
org.apache.commons.lang.Entities$TreeEntityMap
org.apache.commons.lang.IllegalClassException
org.apache.commons.lang.IncompleteArgumentException
org.apache.commons.lang.IntHashMap
org.apache.commons.lang.IntHashMap$Entry
org.apache.commons.lang.LocaleUtils
org.apache.commons.lang.NotImplementedException
org.apache.commons.lang.NullArgumentException
org.apache.commons.lang.NumberRange
org.apache.commons.lang.NumberUtils
org.apache.commons.lang.ObjectUtils
org.apache.commons.lang.ObjectUtils$Null
org.apache.commons.lang.RandomStringUtils
org.apache.commons.lang.SerializationException
org.apache.commons.lang.SerializationUtils
org.apache.commons.lang.StringEscapeUtils
org.apache.commons.lang.StringUtils
org.apache.commons.lang.SystemUtils
org.apache.commons.lang.UnhandledException
org.apache.commons.lang.Validate
org.apache.commons.lang.WordUtils
org.apache.commons.lang.builder
org.apache.commons.lang.enum
org.apache.commons.lang.enums
org.apache.commons.lang.exception
org.apache.commons.lang.math
org.apache.commons.lang.mutable
org.apache.commons.lang.text
org.apache.commons.lang.time
java.io
java.lang
java.lang.reflect
java.math
java.util
org.apache.commons.lang.builder
org.apache.commons.lang.exception
org.apache.commons.lang.math

org.apache.commons.lang.builder

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 7.0% 88.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.builder.ToStringStyle
org.apache.commons.lang.builder.CompareToBuilder
org.apache.commons.lang.builder.EqualsBuilder
org.apache.commons.lang.builder.HashCodeBuilder
org.apache.commons.lang.builder.HashCodeBuilder$1
org.apache.commons.lang.builder.ReflectionToStringBuilder
org.apache.commons.lang.builder.StandardToStringStyle
org.apache.commons.lang.builder.ToStringBuilder
org.apache.commons.lang.builder.ToStringStyle$1
org.apache.commons.lang.builder.ToStringStyle$DefaultToStringStyle
org.apache.commons.lang.builder.ToStringStyle$MultiLineToStringStyle
org.apache.commons.lang.builder.ToStringStyle$NoFieldNameToStringStyle
org.apache.commons.lang.builder.ToStringStyle$ShortPrefixToStringStyle
org.apache.commons.lang.builder.ToStringStyle$SimpleToStringStyle
org.apache.commons.lang
java.io
java.lang
java.lang.reflect
java.math
java.util
org.apache.commons.lang
org.apache.commons.lang.math

org.apache.commons.lang.enum

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 50.0% 100.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.enum.Enum
org.apache.commons.lang.enum.ValuedEnum
org.apache.commons.lang.enum.Enum$Entry
org.apache.commons.lang.enum.EnumUtils
None java.io
java.lang
java.lang.reflect
java.util
org.apache.commons.lang

org.apache.commons.lang.enums

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 50.0% 100.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.enums.Enum
org.apache.commons.lang.enums.ValuedEnum
org.apache.commons.lang.enums.Enum$Entry
org.apache.commons.lang.enums.EnumUtils
None java.io
java.lang
java.lang.reflect
java.util
org.apache.commons.lang

org.apache.commons.lang.exception

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 17.0% 86.0% 2.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.exception.Nestable
org.apache.commons.lang.exception.ExceptionUtils
org.apache.commons.lang.exception.NestableDelegate
org.apache.commons.lang.exception.NestableError
org.apache.commons.lang.exception.NestableException
org.apache.commons.lang.exception.NestableRuntimeException
org.apache.commons.lang
java.io
java.lang
java.lang.reflect
java.sql
java.util
org.apache.commons.lang

org.apache.commons.lang.math

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 5 9.0% 62.0% 28.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.math.Range
org.apache.commons.lang.math.DoubleRange
org.apache.commons.lang.math.FloatRange
org.apache.commons.lang.math.Fraction
org.apache.commons.lang.math.IEEE754rUtils
org.apache.commons.lang.math.IntRange
org.apache.commons.lang.math.JVMRandom
org.apache.commons.lang.math.LongRange
org.apache.commons.lang.math.NumberRange
org.apache.commons.lang.math.NumberUtils
org.apache.commons.lang.math.RandomUtils
org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.mutable
java.io
java.lang
java.math
java.util
org.apache.commons.lang

org.apache.commons.lang.mutable

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 11.0% 100.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.mutable.Mutable
org.apache.commons.lang.mutable.MutableBoolean
org.apache.commons.lang.mutable.MutableByte
org.apache.commons.lang.mutable.MutableDouble
org.apache.commons.lang.mutable.MutableFloat
org.apache.commons.lang.mutable.MutableInt
org.apache.commons.lang.mutable.MutableLong
org.apache.commons.lang.mutable.MutableObject
org.apache.commons.lang.mutable.MutableShort
None java.io
java.lang
org.apache.commons.lang
org.apache.commons.lang.math

org.apache.commons.lang.text

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 18.0% 100.0% 18.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.text.FormatFactory
org.apache.commons.lang.text.StrLookup
org.apache.commons.lang.text.StrMatcher
org.apache.commons.lang.text.CompositeFormat
org.apache.commons.lang.text.ExtendedMessageFormat
org.apache.commons.lang.text.StrBuilder
org.apache.commons.lang.text.StrBuilder$StrBuilderReader
org.apache.commons.lang.text.StrBuilder$StrBuilderTokenizer
org.apache.commons.lang.text.StrBuilder$StrBuilderWriter
org.apache.commons.lang.text.StrLookup$MapStrLookup
org.apache.commons.lang.text.StrMatcher$CharMatcher
org.apache.commons.lang.text.StrMatcher$CharSetMatcher
org.apache.commons.lang.text.StrMatcher$NoMatcher
org.apache.commons.lang.text.StrMatcher$StringMatcher
org.apache.commons.lang.text.StrMatcher$TrimMatcher
org.apache.commons.lang.text.StrSubstitutor
org.apache.commons.lang.text.StrTokenizer
None java.io
java.lang
java.text
java.util
org.apache.commons.lang

org.apache.commons.lang.time

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 8.0% 100.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.time.FastDateFormat$NumberRule
org.apache.commons.lang.time.FastDateFormat$Rule
org.apache.commons.lang.time.DateFormatUtils
org.apache.commons.lang.time.DateUtils
org.apache.commons.lang.time.DateUtils$DateIterator
org.apache.commons.lang.time.DurationFormatUtils
org.apache.commons.lang.time.DurationFormatUtils$Token
org.apache.commons.lang.time.FastDateFormat
org.apache.commons.lang.time.FastDateFormat$CharacterLiteral
org.apache.commons.lang.time.FastDateFormat$PaddedNumberField
org.apache.commons.lang.time.FastDateFormat$Pair
org.apache.commons.lang.time.FastDateFormat$StringLiteral
org.apache.commons.lang.time.FastDateFormat$TextField
org.apache.commons.lang.time.FastDateFormat$TimeZoneDisplayKey
org.apache.commons.lang.time.FastDateFormat$TimeZoneNameRule
org.apache.commons.lang.time.FastDateFormat$TimeZoneNumberRule
org.apache.commons.lang.time.FastDateFormat$TwelveHourField
org.apache.commons.lang.time.FastDateFormat$TwentyFourHourField
org.apache.commons.lang.time.FastDateFormat$TwoDigitMonthField
org.apache.commons.lang.time.FastDateFormat$TwoDigitNumberField
org.apache.commons.lang.time.FastDateFormat$TwoDigitYearField
org.apache.commons.lang.time.FastDateFormat$UnpaddedMonthField
org.apache.commons.lang.time.FastDateFormat$UnpaddedNumberField
org.apache.commons.lang.time.StopWatch
None java.io
java.lang
java.text
java.util
org.apache.commons.lang

Cycles

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

Package Package Dependencies
org.apache.commons.lang org.apache.commons.lang.builder
org.apache.commons.lang.math
org.apache.commons.lang
org.apache.commons.lang.builder org.apache.commons.lang.math
org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.enum org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.math
org.apache.commons.lang
org.apache.commons.lang.enums org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.math
org.apache.commons.lang
org.apache.commons.lang.exception org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.math
org.apache.commons.lang
org.apache.commons.lang.math org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.math
org.apache.commons.lang.mutable org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.math
org.apache.commons.lang
org.apache.commons.lang.text org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.math
org.apache.commons.lang
org.apache.commons.lang.time org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.math
org.apache.commons.lang

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.