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
org.apache.torque 3 0 3 7 11 0% 61% 39%
org.apache.torque.adapter 21 2 19 5 2 10% 29% 62%
org.apache.torque.dsfactory 5 2 3 1 7 40% 88% 27%
org.apache.torque.engine 1 0 1 1 1 0% 50% 50%
org.apache.torque.engine.database.model 14 1 13 2 6 7% 75% 18%
org.apache.torque.engine.database.transform 4 0 4 1 5 0% 83% 17%
org.apache.torque.engine.sql 3 0 3 1 0 0% 0% 100%
org.apache.torque.manager 5 2 3 1 11 40% 92% 32%
org.apache.torque.map 4 1 3 3 2 25% 40% 35%
org.apache.torque.oid 5 1 4 3 7 20% 70% 10%
org.apache.torque.om 8 4 4 2 3 50% 60% 10%
org.apache.torque.pool 3 0 3 1 1 0% 50% 50%
org.apache.torque.task 9 0 9 0 13 0% 100% 0%
org.apache.torque.util 7 1 6 2 8 14% 80% 6%
com.workingdogs.village No stats available: package referenced, but not analyzed.
org.apache.commons.beanutils No stats available: package referenced, but not analyzed.
org.apache.commons.collections No stats available: package referenced, but not analyzed.
org.apache.commons.configuration No stats available: package referenced, but not analyzed.
org.apache.commons.dbcp.cpdsadapter No stats available: package referenced, but not analyzed.
org.apache.commons.dbcp.jdbc2pool 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.
org.apache.commons.pool No stats available: package referenced, but not analyzed.
org.apache.commons.pool.impl No stats available: package referenced, but not analyzed.
org.apache.jcs No stats available: package referenced, but not analyzed.
org.apache.jcs.access No stats available: package referenced, but not analyzed.
org.apache.jcs.access.exception No stats available: package referenced, but not analyzed.
org.apache.log4j No stats available: package referenced, but not analyzed.
org.apache.log4j.helpers No stats available: package referenced, but not analyzed.
org.apache.stratum.lifecycle No stats available: package referenced, but not analyzed.
org.apache.tools.ant No stats available: package referenced, but not analyzed.
org.apache.tools.ant.types No stats available: package referenced, but not analyzed.
org.apache.velocity No stats available: package referenced, but not analyzed.
org.apache.velocity.context No stats available: package referenced, but not analyzed.
org.apache.velocity.texen.ant No stats available: package referenced, but not analyzed.
org.apache.velocity.util No stats available: package referenced, but not analyzed.
org.apache.xerces.dom No stats available: package referenced, but not analyzed.
org.apache.xml.serialize No stats available: package referenced, but not analyzed.
org.w3c.dom No stats available: package referenced, but not analyzed.
org.xml.sax No stats available: package referenced, but not analyzed.
org.xml.sax.helpers No stats available: package referenced, but not analyzed.

Packages

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

org.apache.torque.engine

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 1 0% 50% 50%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None EngineException
org.apache.torque.engine.database.model
org.apache.commons.lang.exception

org.apache.torque.engine.database.transform

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 0% 83% 17%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None DTDResolver
SQLToAppData
XmlToAppData
XmlToData
org.apache.torque.task
org.apache.torque
org.apache.torque.engine.database.model
org.apache.torque.engine.sql
org.xml.sax
org.xml.sax.helpers

org.apache.torque.engine.sql

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 0 0% 0% 100%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None ParseException
SQLScanner
Token
org.apache.torque.engine.database.transform
None

org.apache.torque.map

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 2 25% 40% 35%
Abstract Classes Concrete Classes Used by Packages Uses Packages
MapBuilder
ColumnMap
DatabaseMap
TableMap
org.apache.torque
org.apache.torque.oid
org.apache.torque.util
org.apache.torque.adapter
org.apache.torque.oid

org.apache.torque.om

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 3 50% 60% 10%
Abstract Classes Concrete Classes Used by Packages Uses Packages
BaseObject
ObjectKey
Persistent
SimpleKey
ComboKey
DateKey
NumberKey
StringKey
org.apache.torque.manager
org.apache.torque.util
org.apache.commons.lang
org.apache.log4j
org.apache.torque

org.apache.torque.pool

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 1 0% 50% 50%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None ConnectionPool
ConnectionWaitTimeoutException
TorqueClassicDataSource
org.apache.torque.dsfactory
org.apache.commons.lang

Cycles

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

Package Cyclic Dependencies
org.apache.torque org.apache.torque.manager
org.apache.torque
org.apache.torque.dsfactory org.apache.torque
org.apache.torque.manager
org.apache.torque
org.apache.torque.engine.database.model org.apache.torque
org.apache.torque.manager
org.apache.torque
org.apache.torque.engine.database.transform org.apache.torque.engine.database.model
org.apache.torque
org.apache.torque.manager
org.apache.torque
org.apache.torque.manager org.apache.torque
org.apache.torque.manager
org.apache.torque.map org.apache.torque.oid
org.apache.torque
org.apache.torque.manager
org.apache.torque
org.apache.torque.oid org.apache.torque
org.apache.torque.manager
org.apache.torque
org.apache.torque.om org.apache.torque
org.apache.torque.manager
org.apache.torque
org.apache.torque.task org.apache.torque.engine.database.transform
org.apache.torque.engine.database.model
org.apache.torque
org.apache.torque.manager
org.apache.torque
org.apache.torque.util org.apache.torque
org.apache.torque.manager
org.apache.torque

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.