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 25 25 0 7 7 0.0% 50.0% 50.0% 1
org.apache.commons.lang.builder 15 14 1 1 5 7.0% 83.0% 10.0% 1
org.apache.commons.lang.concurrent 10 8 2 0 3 20.0% 100.0% 20.0% 1
org.apache.commons.lang.exception 5 4 1 0 6 20.0% 100.0% 20.0% 1
org.apache.commons.lang.math 3 3 0 1 3 0.0% 75.0% 25.0% 1
org.apache.commons.lang.mutable 9 8 1 0 2 11.0% 100.0% 11.0% 1
org.apache.commons.lang.reflect 5 4 1 0 4 20.0% 100.0% 20.0% 1
org.apache.commons.lang.text 17 14 3 0 5 18.0% 100.0% 18.0% 1
org.apache.commons.lang.text.translate 10 8 2 1 4 20.0% 80.0% 0.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
7 7 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None 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.EnumUtils
org.apache.commons.lang.LocaleUtils
org.apache.commons.lang.ObjectUtils
org.apache.commons.lang.ObjectUtils$Null
org.apache.commons.lang.RandomStringUtils
org.apache.commons.lang.Range
org.apache.commons.lang.Range$ComparableComparator
org.apache.commons.lang.SerializationException
org.apache.commons.lang.SerializationUtils
org.apache.commons.lang.StringEscapeUtils
org.apache.commons.lang.StringEscapeUtils$CsvEscaper
org.apache.commons.lang.StringEscapeUtils$CsvUnescaper
org.apache.commons.lang.StringUtils
org.apache.commons.lang.SystemUtils
org.apache.commons.lang.Validate
org.apache.commons.lang.WordUtils
org.apache.commons.lang.builder
org.apache.commons.lang.exception
org.apache.commons.lang.math
org.apache.commons.lang.reflect
org.apache.commons.lang.text
org.apache.commons.lang.text.translate
org.apache.commons.lang.time
java.io
java.lang
java.lang.reflect
java.util
org.apache.commons.lang.builder
org.apache.commons.lang.math
org.apache.commons.lang.text.translate

org.apache.commons.lang.builder

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 7.0% 83.0% 10.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.IDKey
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.util
org.apache.commons.lang

org.apache.commons.lang.concurrent

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 3 20.0% 100.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.concurrent.BackgroundInitializer
org.apache.commons.lang.concurrent.LazyInitializer
org.apache.commons.lang.concurrent.BackgroundInitializer$InitializationTask
org.apache.commons.lang.concurrent.CallableBackgroundInitializer
org.apache.commons.lang.concurrent.ConcurrentException
org.apache.commons.lang.concurrent.ConcurrentUtils
org.apache.commons.lang.concurrent.ConcurrentUtils$ConstantFuture
org.apache.commons.lang.concurrent.MultiBackgroundInitializer
org.apache.commons.lang.concurrent.MultiBackgroundInitializer$1
org.apache.commons.lang.concurrent.MultiBackgroundInitializer$MultiBackgroundInitializerResults
None java.lang
java.util
java.util.concurrent

org.apache.commons.lang.exception

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 20.0% 100.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.exception.ExceptionContext
org.apache.commons.lang.exception.ContextedException
org.apache.commons.lang.exception.ContextedRuntimeException
org.apache.commons.lang.exception.DefaultExceptionContext
org.apache.commons.lang.exception.ExceptionUtils
None 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
1 3 0.0% 75.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.lang.math.Fraction
org.apache.commons.lang.math.IEEE754rUtils
org.apache.commons.lang.math.NumberUtils
org.apache.commons.lang
java.lang
java.math
org.apache.commons.lang

org.apache.commons.lang.mutable

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 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.reflect

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 20.0% 100.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.reflect.MemberUtils
org.apache.commons.lang.reflect.ConstructorUtils
org.apache.commons.lang.reflect.FieldUtils
org.apache.commons.lang.reflect.MethodUtils
org.apache.commons.lang.reflect.TypeUtils
None java.lang
java.lang.reflect
java.util
org.apache.commons.lang

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.text.translate

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 20.0% 80.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang.text.translate.CharSequenceTranslator
org.apache.commons.lang.text.translate.CodePointTranslator
org.apache.commons.lang.text.translate.AggregateTranslator
org.apache.commons.lang.text.translate.EntityArrays
org.apache.commons.lang.text.translate.LookupTranslator
org.apache.commons.lang.text.translate.NumericEntityEscaper
org.apache.commons.lang.text.translate.NumericEntityUnescaper
org.apache.commons.lang.text.translate.UnicodeEscaper
org.apache.commons.lang.text.translate.UnicodeUnescaper
org.apache.commons.lang.text.translate.UnicodeUnescaper$OPTION
org.apache.commons.lang
java.io
java.lang
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
org.apache.commons.lang.builder org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.exception org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang
org.apache.commons.lang.math org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang
org.apache.commons.lang.reflect org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang
org.apache.commons.lang.text org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang
org.apache.commons.lang.text.translate org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang
org.apache.commons.lang.time org.apache.commons.lang
org.apache.commons.lang.builder
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.