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
com.gridsystems.nextgrid.api.builder 5 3 2 0 11 40.0% 100.0% 40.0% 1
com.gridsystems.nextgrid.api.env 2 1 1 1 3 50.0% 75.0% 25.0% 1
com.gridsystems.nextgrid.api.pom 34 28 6 2 15 18.0% 88.0% 6.0% 1
com.gridsystems.nextgrid.api.pom.components 3 3 0 0 11 0.0% 100.0% 0.0% 1
com.gridsystems.nextgrid.api.pom.expr 6 5 1 0 6 17.0% 100.0% 17.0% 1
com.gridsystems.nextgrid.api.pom.ref 11 10 1 2 20 9.0% 91.0% 0.0% 1
com.gridsystems.nextgrid.api.ram 2 2 0 0 6 0.0% 100.0% 0.0% 1
com.gridsystems.nextgrid.components 2 2 0 0 8 0.0% 100.0% 0.0% 1
uk.ac.soton.itinnovation.nextgrid.api.pom 2 2 0 0 10 0.0% 100.0% 0.0% 1
uk.ac.soton.itinnovation.nextgrid.api.pom.exceptions 1 1 0 1 1 0.0% 50.0% 50.0% 1

Packages

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

com.gridsystems.nextgrid.api.builder

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 11 40.0% 100.0% 40.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
com.gridsystems.nextgrid.api.builder.AbstractBuilder
com.gridsystems.nextgrid.api.builder.ReferenceFactory
com.gridsystems.nextgrid.api.builder.Cache
com.gridsystems.nextgrid.api.builder.Cache$CacheEntry
com.gridsystems.nextgrid.api.builder.TypeManager
None com.gridsystems.nextgrid.api.pom.ref
java.io
java.lang
java.net
java.util
javax.xml.namespace
nextgrid.api.builder
nextgrid.api.pom
org.apache.commons.discovery
org.apache.commons.discovery.resource.names
org.apache.commons.logging

com.gridsystems.nextgrid.api.env

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 3 50.0% 75.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
com.gridsystems.nextgrid.api.env.AbstractTransientAttribute
com.gridsystems.nextgrid.api.env.SimpleTransientAttribute
com.gridsystems.nextgrid.api.pom.expr
java.io
java.lang
nextgrid.api.env

com.gridsystems.nextgrid.api.pom

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 15 18.0% 88.0% 6.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
com.gridsystems.nextgrid.api.pom.AbstractGroundingImpl
com.gridsystems.nextgrid.api.pom.ControlProcessImpl
com.gridsystems.nextgrid.api.pom.Enactable
com.gridsystems.nextgrid.api.pom.PemHelper
com.gridsystems.nextgrid.api.pom.ProcessImpl
com.gridsystems.nextgrid.api.pom.WithExpression
com.gridsystems.nextgrid.api.pom.AbstractProcessImpl
com.gridsystems.nextgrid.api.pom.AbstractProcessImplXBean
com.gridsystems.nextgrid.api.pom.AsyncProcessImpl
com.gridsystems.nextgrid.api.pom.AsyncProcessImplXBean
com.gridsystems.nextgrid.api.pom.DoWhileProcessImpl
com.gridsystems.nextgrid.api.pom.DoWhileProcessImplXBean
com.gridsystems.nextgrid.api.pom.EnactionWorker
com.gridsystems.nextgrid.api.pom.IfThenElseProcessImpl
com.gridsystems.nextgrid.api.pom.IfThenElseProcessImplXBean
com.gridsystems.nextgrid.api.pom.ProcessContext
com.gridsystems.nextgrid.api.pom.ProcessFactoryImpl
com.gridsystems.nextgrid.api.pom.ProcessImpl$ValidationType
com.gridsystems.nextgrid.api.pom.ProcessImplXBeanInfo
com.gridsystems.nextgrid.api.pom.ProcessPriorityComparator
com.gridsystems.nextgrid.api.pom.RepeatUntilProcessImpl
com.gridsystems.nextgrid.api.pom.RepeatUntilProcessImplXBean
com.gridsystems.nextgrid.api.pom.SequenceProcessImpl
com.gridsystems.nextgrid.api.pom.SequenceProcessImplXBean
com.gridsystems.nextgrid.api.pom.ServiceImpl
com.gridsystems.nextgrid.api.pom.ServiceImplXBeanInfo
com.gridsystems.nextgrid.api.pom.SplitJoinProcessImpl
com.gridsystems.nextgrid.api.pom.SplitJoinProcessImplXBean
com.gridsystems.nextgrid.api.pom.ThreadController
com.gridsystems.nextgrid.api.pom.UnorderedListProcessImpl
com.gridsystems.nextgrid.api.pom.UnorderedListProcessImpl$ProcessFinishedNotifier
com.gridsystems.nextgrid.api.pom.UnorderedListProcessImplXBean
com.gridsystems.nextgrid.api.pom.WhileDoProcessImpl
com.gridsystems.nextgrid.api.pom.WhileDoProcessImplXBean
com.gridsystems.nextgrid.api.pom.components
uk.ac.soton.itinnovation.nextgrid.api.pom
com.gridsystems.nextgrid.api.pom.ref
java.beans
java.io
java.lang
java.lang.reflect
java.net
java.util
java.util.concurrent
java.util.concurrent.locks
javax.xml.namespace
nextgrid.api.env
nextgrid.api.pem
nextgrid.api.pom
org.apache.commons.jxpath
org.apache.commons.logging

com.gridsystems.nextgrid.api.pom.components

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 11 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None com.gridsystems.nextgrid.api.pom.components.DefaultPrioritiser
com.gridsystems.nextgrid.api.pom.components.DefaultSelector
com.gridsystems.nextgrid.api.pom.components.FileSystemGrounding
None com.gridsystems.nextgrid.api.pom
java.io
java.lang
java.net
java.util
java.util.regex
nextgrid.api.env
nextgrid.api.pom
org.apache.commons.io
org.apache.commons.jxpath
org.apache.commons.logging

com.gridsystems.nextgrid.api.pom.expr

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 17.0% 100.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
com.gridsystems.nextgrid.api.pom.expr.AbstractOperatorExpression
com.gridsystems.nextgrid.api.pom.expr.AndExpression
com.gridsystems.nextgrid.api.pom.expr.NotExpression
com.gridsystems.nextgrid.api.pom.expr.OrExpression
com.gridsystems.nextgrid.api.pom.expr.XPathExpression
com.gridsystems.nextgrid.api.pom.expr.XPathExpression$ContextHolder
None com.gridsystems.nextgrid.api.env
java.lang
java.util
nextgrid.api.env
nextgrid.api.pom
org.apache.commons.jxpath

com.gridsystems.nextgrid.api.pom.ref

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 20 9.0% 91.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
com.gridsystems.nextgrid.api.pom.ref.ReferenceSupport
com.gridsystems.nextgrid.api.pom.ref.BooleanReference
com.gridsystems.nextgrid.api.pom.ref.DataHandlerReference
com.gridsystems.nextgrid.api.pom.ref.DomReference
com.gridsystems.nextgrid.api.pom.ref.IncompatibleReferenceException
com.gridsystems.nextgrid.api.pom.ref.LongReference
com.gridsystems.nextgrid.api.pom.ref.NumberReference
com.gridsystems.nextgrid.api.pom.ref.ObjectReference
com.gridsystems.nextgrid.api.pom.ref.ScalarReference
com.gridsystems.nextgrid.api.pom.ref.StringReference
com.gridsystems.nextgrid.api.pom.ref.UnresolvedReferenceException
com.gridsystems.nextgrid.api.builder
com.gridsystems.nextgrid.api.pom
java.awt
java.io
java.lang
java.math
java.net
java.nio.charset
java.util
java.util.concurrent.locks
javax.activation
javax.mail.internet
javax.mail.util
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.stream
nextgrid.api.pom
org.apache.axis.attachments
org.apache.commons.logging
org.w3c.dom
org.xml.sax

com.gridsystems.nextgrid.api.ram

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None com.gridsystems.nextgrid.api.ram.DefaultDiscoverer
com.gridsystems.nextgrid.api.ram.GrimoiresRegistry
None java.lang
java.net
java.util
nextgrid.api.env
nextgrid.api.pom
nextgrid.api.ram

com.gridsystems.nextgrid.components

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 8 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None com.gridsystems.nextgrid.components.SwingEventLogger
com.gridsystems.nextgrid.components.SwingEventLogger$Worker
None java.awt
java.io
java.lang
java.util
javax.swing.text
nextgrid.api.env
nextgrid.api.pem
nextgrid.api.pom

uk.ac.soton.itinnovation.nextgrid.api.pom

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 10 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None uk.ac.soton.itinnovation.nextgrid.api.pom.JavaGroundingFactory
uk.ac.soton.itinnovation.nextgrid.api.pom.JavaGroundingImpl
None com.gridsystems.nextgrid.api.pom
java.lang
java.lang.reflect
java.net
java.util
javax.xml.namespace
nextgrid.api.env
nextgrid.api.pom
org.apache.commons.logging
uk.ac.soton.itinnovation.nextgrid.api.pom.exceptions

uk.ac.soton.itinnovation.nextgrid.api.pom.exceptions

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 uk.ac.soton.itinnovation.nextgrid.api.pom.exceptions.ExecutionException
uk.ac.soton.itinnovation.nextgrid.api.pom
java.lang

Cycles

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

There are no cyclic dependencies.

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.