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 Total

Classes
Abstract

Classes
Concrete

Classes
Afferent

Couplings
Efferent

Couplings
Abstractness Instability Distance
com.bga.wbrogden.metaphone 1 0 1 1 0 0% 0% 100%
com.generationjava.beans 6 2 4 3 4 33% 57% 10%
com.generationjava.collections 26 3 23 6 4 12% 40% 48%
com.generationjava.collections.typed 6 1 5 0 0 17% 0% 83%
com.generationjava.compare 6 0 6 1 4 0% 80% 20%
com.generationjava.io 22 2 20 2 2 9% 50% 41%
com.generationjava.io.find 7 2 5 1 2 29% 67% 5%
com.generationjava.io.xml 3 0 3 1 0 0% 0% 100%
com.generationjava.jdbc 3 0 3 0 1 0% 100% 0%
com.generationjava.lang 10 1 9 7 5 10% 42% 48%
com.generationjava.mail 2 0 2 0 5 0% 100% 0%
com.generationjava.math 2 0 2 0 0 0% 0% 100%
com.generationjava.namespace 5 2 3 1 1 40% 50% 10%
com.generationjava.net 2 0 2 1 2 0% 67% 33%
com.generationjava.patterns 2 2 0 1 0 100% 0% 0%
com.generationjava.patterns.command 4 3 1 0 0 75% 0% 25%
com.generationjava.patterns.registry 14 4 10 1 2 29% 67% 5%
com.generationjava.random 7 1 6 0 3 14% 100% 14%
com.generationjava.scrape 1 0 1 0 3 0% 100% 0%
com.generationjava.security 1 0 1 0 1 0% 100% 0%
com.generationjava.servlet 1 0 1 0 1 0% 100% 0%
com.generationjava.test 5 2 3 0 3 40% 100% 40%
com.generationjava.time 5 0 5 2 1 0% 33% 67%
com.generationjava.tools 5 2 3 1 5 40% 83% 23%
com.generationjava.util 11 1 10 3 9 9% 75% 16%
com.generationjava.web 3 0 3 1 1 0% 50% 50%
org.apache.commons.cli No stats available: package referenced, but not analyzed.
org.apache.commons.collections No stats available: package referenced, but not analyzed.
org.apache.commons.collections.comparators No stats available: package referenced, but not analyzed.
org.apache.commons.lang No stats available: package referenced, but not analyzed.
org.apache.commons.lang.exception No stats available: package referenced, but not analyzed.

Packages

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

com.bga.wbrogden.metaphone

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 0 0% 0% 100%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None Metaphone

com.generationjava.lang

None

com.generationjava.collections.typed

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 0 17% 0% 83%
Abstract Classes Concrete Classes Used by Packages Uses Packages
TypedStructure

AbstractTypedStructure

IllegalTypeException

TypedList

TypedMap

TypedSet

None None

com.generationjava.io.find

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 29% 67% 5%
Abstract Classes Concrete Classes Used by Packages Uses Packages
FindListener

Finder

ExtensionFileFilter

FileFinder

FindEvent

FinderException

ZipFinder

com.generationjava.util

org.apache.commons.collections

org.apache.commons.lang.exception

com.generationjava.io.xml

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 0 0% 0% 100%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None NullEnumeration

XMLNode

XMLParser

com.generationjava.util

None

com.generationjava.jdbc

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 1 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None JdbcW

ResultSetIterator

SimpleResultSetIterator

None org.apache.commons.lang

com.generationjava.mail

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None MBoxMimeMessage

Mailer

None com.generationjava.collections

com.generationjava.io

com.generationjava.lang

com.generationjava.time

org.apache.commons.lang

com.generationjava.math

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 0 0% 0% 100%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None Fraction

Interval

None None

com.generationjava.namespace

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 1 40% 50% 10%
Abstract Classes Concrete Classes Used by Packages Uses Packages
AbstractNamespace

Namespace

BeanNamespace

ServletNamespace

SimpleNamespace

com.generationjava.util

com.generationjava.beans

com.generationjava.net

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 0% 67% 33%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None UrlW

WGet

com.generationjava.scrape

com.generationjava.io

org.apache.commons.lang

com.generationjava.patterns

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 0 100% 0% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
FactoryMethod

Null

None com.generationjava.patterns.registry

None

com.generationjava.patterns.command

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 0 75% 0% 25%
Abstract Classes Concrete Classes Used by Packages Uses Packages
Argument

Command

Result

CommandException

None None

com.generationjava.random

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 3 14% 100% 14%
Abstract Classes Concrete Classes Used by Packages Uses Packages
RandomMaker

RandomBean

RandomBeanProxy

RandomDate

RandomNumber

RandomObject

ToString

None com.generationjava.collections

com.generationjava.lang

org.apache.commons.lang

com.generationjava.scrape

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 3 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None HtmlScraper

None com.generationjava.net

com.generationjava.web

org.apache.commons.lang

com.generationjava.security

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 1 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None Securer

None com.generationjava.lang

com.generationjava.servlet

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 1 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None RequestMap

None org.apache.commons.collections

com.generationjava.test

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 3 40% 100% 40%
Abstract Classes Concrete Classes Used by Packages Uses Packages
Example

Scaffold

StopWatch

Test

TestException

None com.generationjava.collections

com.generationjava.util

org.apache.commons.lang.exception

com.generationjava.time

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 1 0% 33% 67%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None DateRange

DateW

Time

TimeW

TimestampW

com.generationjava.beans

com.generationjava.mail

org.apache.commons.lang

com.generationjava.tools

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 40% 83% 23%
Abstract Classes Concrete Classes Used by Packages Uses Packages
AbstractTool

Tool

CommandLineToolRunner

Run

ToolException

com.generationjava.util

com.generationjava.collections

com.generationjava.lang

org.apache.commons.cli

org.apache.commons.lang

org.apache.commons.lang.exception

com.generationjava.web

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 1 0% 50% 50%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None HtmlW

ServletW

XmlW

com.generationjava.scrape

org.apache.commons.lang

Cycles

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

Package Cyclic Dependencies
com.generationjava.beans com.generationjava.lang

com.generationjava.collections

com.generationjava.beans

com.generationjava.collections com.generationjava.beans

com.generationjava.lang

com.generationjava.collections

com.generationjava.compare com.generationjava.beans

com.generationjava.lang

com.generationjava.collections

com.generationjava.beans

com.generationjava.lang com.generationjava.collections

com.generationjava.beans

com.generationjava.lang

com.generationjava.mail com.generationjava.lang

com.generationjava.collections

com.generationjava.beans

com.generationjava.lang

com.generationjava.namespace com.generationjava.beans

com.generationjava.lang

com.generationjava.collections

com.generationjava.beans

com.generationjava.random com.generationjava.lang

com.generationjava.collections

com.generationjava.beans

com.generationjava.lang

com.generationjava.security com.generationjava.lang

com.generationjava.collections

com.generationjava.beans

com.generationjava.lang

com.generationjava.test com.generationjava.collections

com.generationjava.beans

com.generationjava.lang

com.generationjava.collections

com.generationjava.tools com.generationjava.lang

com.generationjava.collections

com.generationjava.beans

com.generationjava.lang

com.generationjava.util com.generationjava.tools

com.generationjava.lang

com.generationjava.collections

com.generationjava.beans

com.generationjava.lang

Explanations

[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.