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
javax.swing.undo 1 1 0 1 1 0.0% 50.0% 50.0% 1
org.jcurl.core.api 39 16 23 3 11 58.999996% 79.0% 38.0% 1
org.jcurl.core.helpers 12 10 2 3 15 17.0% 83.0% 0.0% 1
org.jcurl.core.impl 27 22 5 0 10 19.0% 100.0% 19.0% 1
org.jcurl.core.io 7 5 2 0 7 29.0% 100.0% 29.0% 1
org.jcurl.core.jnlp 10 7 3 0 9 30.000002% 100.0% 30.000002% 1
org.jcurl.core.log 1 1 0 6 3 0.0% 33.0% 67.0% 1
org.jcurl.core.ui 41 31 10 0 18 24.0% 100.0% 24.0% 1
org.jcurl.math 22 15 7 3 7 32.0% 70.0% 2.0% 1

Packages

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

javax.swing.undo

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 javax.swing.undo.MyUndoManager
org.jcurl.core.ui
java.util

org.jcurl.core.api

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 11 58.999996% 79.0% 38.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.jcurl.core.api.Collider
org.jcurl.core.api.CollissionDetector
org.jcurl.core.api.ComputedTrajectorySet
org.jcurl.core.api.Curler
org.jcurl.core.api.CurveRock
org.jcurl.core.api.CurveStore
org.jcurl.core.api.EnumBase
org.jcurl.core.api.Factory
org.jcurl.core.api.IChangeSupport
org.jcurl.core.api.IPropertyChangeSupport
org.jcurl.core.api.MutableObject
org.jcurl.core.api.Physics
org.jcurl.core.api.PropModel
org.jcurl.core.api.Rock
org.jcurl.core.api.RockSetUtils
org.jcurl.core.api.RockType
org.jcurl.core.api.RockType$Acc
org.jcurl.core.api.RockType$Pos
org.jcurl.core.api.RockType$Vel
org.jcurl.core.api.StopDetector
org.jcurl.core.api.Strategy
org.jcurl.core.api.TrajectorySet
org.jcurl.core.api.TransferObject
org.jcurl.core.api.ChangeSupport
org.jcurl.core.api.EnumBase$1
org.jcurl.core.api.EnumBase$HashCodeComp
org.jcurl.core.api.IceSize
org.jcurl.core.api.Measure
org.jcurl.core.api.PropertyChangeSupport
org.jcurl.core.api.Rock$1
org.jcurl.core.api.Rock$ImmutableRock
org.jcurl.core.api.Rock$RockPoint
org.jcurl.core.api.RockDouble
org.jcurl.core.api.RockProps
org.jcurl.core.api.RockSet
org.jcurl.core.api.RockSet$1
org.jcurl.core.api.RockSetProps
org.jcurl.core.api.Unit
org.jcurl.core.api.WeakHashSet
org.jcurl.core.helpers
org.jcurl.core.impl
org.jcurl.core.ui
java.awt.geom
java.beans
java.io
java.lang
java.lang.reflect
java.util
java.util.regex
javax.swing.event
org.apache.commons.logging
org.jcurl.core.log
org.jcurl.math

org.jcurl.core.helpers

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 15 17.0% 83.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.jcurl.core.helpers.AnnoHelper
org.jcurl.core.helpers.FilterIterator
org.jcurl.core.helpers.BatikButler
org.jcurl.core.helpers.MergedIterator
org.jcurl.core.helpers.MergedIterator$1
org.jcurl.core.helpers.MergedIterator$2
org.jcurl.core.helpers.NotImplementedYetException
org.jcurl.core.helpers.PeekIterator
org.jcurl.core.helpers.PropModelHelper
org.jcurl.core.helpers.Service
org.jcurl.core.helpers.Version
org.jcurl.core.helpers.XmlSimpleWriter
org.jcurl.core.impl
org.jcurl.core.jnlp
org.jcurl.core.ui
java.awt
java.io
java.lang
java.lang.reflect
java.net
java.text
java.util
java.util.jar
java.util.regex
java.util.zip
org.apache.commons.logging
org.jcurl.core.api
org.jcurl.core.log
org.xml.sax
org.xml.sax.helpers

org.jcurl.core.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 10 19.0% 100.0% 19.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.jcurl.core.impl.ColliderBase
org.jcurl.core.impl.CollissionDetectorBase
org.jcurl.core.impl.CoulombCurler
org.jcurl.core.impl.CurlerBase
org.jcurl.core.impl.PropModelImpl
org.jcurl.core.impl.BisectionCollissionDetector
org.jcurl.core.impl.BisectionCollissionDetector$Distance2DSqFlipped
org.jcurl.core.impl.CollissionSimple
org.jcurl.core.impl.CollissionSpin
org.jcurl.core.impl.CollissionSpinLoss
org.jcurl.core.impl.CollissionStore
org.jcurl.core.impl.CollissionStore$Tupel
org.jcurl.core.impl.CollissionStore$TupelComp
org.jcurl.core.impl.CurlerBase$1
org.jcurl.core.impl.CurlerBase$2
org.jcurl.core.impl.CurlerDenny
org.jcurl.core.impl.CurlerDenny$1
org.jcurl.core.impl.CurlerNoCurl
org.jcurl.core.impl.CurveManager
org.jcurl.core.impl.CurveRockAnalytic
org.jcurl.core.impl.CurveStill
org.jcurl.core.impl.CurveStoreImpl
org.jcurl.core.impl.CurveStoreImpl$1
org.jcurl.core.impl.CurveTransformed
org.jcurl.core.impl.NewtonCollissionDetector
org.jcurl.core.impl.NewtonStopDetector
org.jcurl.core.impl.StoredTrajectorySet
None java.awt.geom
java.io
java.lang
java.util
javax.swing.event
org.apache.commons.logging
org.jcurl.core.api
org.jcurl.core.helpers
org.jcurl.core.log
org.jcurl.math

org.jcurl.core.io

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 29.0% 100.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.jcurl.core.io.IONode
org.jcurl.core.io.JCurlSerializer$Engine
org.jcurl.core.io.IOGroup
org.jcurl.core.io.IOTrajectories
org.jcurl.core.io.JCurlSerializer
org.jcurl.core.io.JDKSerializer
org.jcurl.core.io.XmlBeansSerializer
None java.beans
java.io
java.lang
java.net
java.util
java.util.regex
java.util.zip

org.jcurl.core.jnlp

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 9 30.000002% 100.0% 30.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.jcurl.core.jnlp.FileDialogService$Contents
org.jcurl.core.jnlp.FileDialogService$OpenService
org.jcurl.core.jnlp.FileDialogService$SaveService
org.jcurl.core.jnlp.FileDialogService
org.jcurl.core.jnlp.FileDialogService$ContentsBuffer
org.jcurl.core.jnlp.FileDialogService$ContentsFile
org.jcurl.core.jnlp.FileDialogSwing
org.jcurl.core.jnlp.FileDialogSwing$1
org.jcurl.core.jnlp.FileDialogWebstart
org.jcurl.core.jnlp.FileDialogWebstart$1
None java.awt
java.io
java.lang
java.lang.reflect
javax.swing
javax.swing.filechooser
org.apache.commons.logging
org.jcurl.core.helpers
org.jcurl.core.log

org.jcurl.core.log

Afferent Couplings Efferent Couplings Abstractness Instability Distance
6 3 0.0% 33.0% 67.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.jcurl.core.log.JCLoggerFactory
org.jcurl.core.api
org.jcurl.core.helpers
org.jcurl.core.impl
org.jcurl.core.jnlp
org.jcurl.core.ui
org.jcurl.math
java.lang
org.apache.commons.logging
org.apache.commons.logging.impl

org.jcurl.core.ui

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 18 24.0% 100.0% 24.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.jcurl.core.ui.BroomPromptModel
org.jcurl.core.ui.GenTrajectoryFactory
org.jcurl.core.ui.Memento
org.jcurl.core.ui.P2DMemento
org.jcurl.core.ui.RockMemento
org.jcurl.core.ui.TaskExecutor$ForkableFixed
org.jcurl.core.ui.TaskExecutor$ForkableFlex
org.jcurl.core.ui.TaskExecutor$Task
org.jcurl.core.ui.UndoManagerBase
org.jcurl.core.ui.Zoomer
org.jcurl.core.ui.BroomPromptModel$HandleMemento
org.jcurl.core.ui.BroomPromptModel$IndexMemento
org.jcurl.core.ui.BroomPromptModel$SplitMemento
org.jcurl.core.ui.BroomPromptModel$XYMemento
org.jcurl.core.ui.ChangeManager
org.jcurl.core.ui.ChangeManager$1
org.jcurl.core.ui.DefaultBroomPromptModel
org.jcurl.core.ui.FileNameExtensionFilter
org.jcurl.core.ui.FixpointZoomer
org.jcurl.core.ui.IceShapes
org.jcurl.core.ui.IceShapes$IceColors
org.jcurl.core.ui.IceShapes$RockColors
org.jcurl.core.ui.JCUndoManager
org.jcurl.core.ui.JCurlShaper
org.jcurl.core.ui.JSpinnerBoundedRange
org.jcurl.core.ui.JSpinnerBoundedRange$SpinnerModelWrapper
org.jcurl.core.ui.Orientation
org.jcurl.core.ui.P2DMemento$1
org.jcurl.core.ui.PosMemento
org.jcurl.core.ui.SuspendMemento
org.jcurl.core.ui.TaskExecutor
org.jcurl.core.ui.TaskExecutor$Current
org.jcurl.core.ui.TaskExecutor$ExecutorDelegate
org.jcurl.core.ui.TaskExecutor$Parallel
org.jcurl.core.ui.TaskExecutor$Single
org.jcurl.core.ui.TaskExecutor$SmartQueue
org.jcurl.core.ui.TaskExecutor$SwingEDT
org.jcurl.core.ui.TrajectoryBroomPromptWrapper
org.jcurl.core.ui.TrajectoryBroomPromptWrapper$1
org.jcurl.core.ui.TrajectoryBroomPromptWrapper$MediatorWorker
org.jcurl.core.ui.UndoableMemento
None java.awt
java.awt.event
java.awt.geom
java.io
java.lang
java.lang.reflect
java.util
java.util.concurrent
java.util.regex
javax.swing
javax.swing.event
javax.swing.filechooser
javax.swing.undo
org.apache.commons.logging
org.jcurl.core.api
org.jcurl.core.helpers
org.jcurl.core.log
org.jcurl.math

org.jcurl.math

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 7 32.0% 70.0% 2.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.jcurl.math.Interpolator
org.jcurl.math.R1R1Function
org.jcurl.math.R1RNFunction
org.jcurl.math.R1RNFunctionImpl
org.jcurl.math.Shapeable
org.jcurl.math.Shaper
org.jcurl.math.ShaperUtils
org.jcurl.math.BisectionSolver
org.jcurl.math.CSplineInterpolator
org.jcurl.math.CurveCombined
org.jcurl.math.CurveCombined$Part
org.jcurl.math.CurveFkt
org.jcurl.math.Distance2DSq
org.jcurl.math.Interpolators
org.jcurl.math.Interpolators$1
org.jcurl.math.Interpolators$2
org.jcurl.math.Interpolators$LinearInterpolator
org.jcurl.math.MathVec
org.jcurl.math.NaturalShaper
org.jcurl.math.NewtonSimpleSolver
org.jcurl.math.Polynome
org.jcurl.math.PolynomeCurve
org.jcurl.core.api
org.jcurl.core.impl
org.jcurl.core.ui
java.awt
java.awt.geom
java.io
java.lang
java.util
org.apache.commons.logging
org.jcurl.core.log

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.