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.opentrafficsim.core 2 0 2 11 3 100.0% 21.0% 21.0% 1
org.opentrafficsim.core.dsol 10 5 5 5 12 50.0% 71.0% 21.0% 1
org.opentrafficsim.core.geometry 6 6 0 3 15 0.0% 83.0% 17.0% 1
org.opentrafficsim.core.gtu 8 5 3 1 11 38.0% 92.0% 29.0% 1
org.opentrafficsim.core.gtu.animation 8 7 1 2 7 12.0% 78.0% 10.0% 1
org.opentrafficsim.core.gtu2 5 4 1 0 7 20.0% 100.0% 20.0% 1
org.opentrafficsim.core.network 12 8 4 5 14 33.0% 74.0% 7.0% 1
org.opentrafficsim.core.network.animation 3 3 0 0 12 0.0% 100.0% 0.0% 1
org.opentrafficsim.core.network.factory.xml.units 8 8 0 0 11 0.0% 100.0% 0.0% 1
org.opentrafficsim.core.network.route 8 6 2 2 7 25.0% 78.0% 3.0% 1
org.opentrafficsim.core.units.distributions 20 8 12 3 7 60.000004% 70.0% 30.000002% 1
org.opentrafficsim.gui 15 15 0 1 33 0.0% 97.0% 3.0% 1
org.opentrafficsim.simulationengine 8 2 6 1 20 75.0% 95.0% 70.0% 1
org.opentrafficsim.simulationengine.properties 12 11 1 1 5 8.0% 83.0% 8.0% 1

Packages

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

org.opentrafficsim.core

Afferent Couplings Efferent Couplings Abstractness Instability Distance
11 3 100.0% 21.0% 21.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opentrafficsim.core.OTS_DIST
org.opentrafficsim.core.OTS_SCALAR
None org.opentrafficsim.core.dsol
org.opentrafficsim.core.geometry
org.opentrafficsim.core.gtu
org.opentrafficsim.core.gtu.animation
org.opentrafficsim.core.gtu2
org.opentrafficsim.core.network
org.opentrafficsim.core.network.factory.xml.units
org.opentrafficsim.core.network.route
org.opentrafficsim.gui
org.opentrafficsim.simulationengine
org.opentrafficsim.simulationengine.properties
java.lang
org.djunits.value.vdouble.scalar
org.opentrafficsim.core.units.distributions

org.opentrafficsim.core.dsol

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 12 50.0% 71.0% 21.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opentrafficsim.core.dsol.OTSAnimatorInterface
org.opentrafficsim.core.dsol.OTSDEVSSimulatorInterface
org.opentrafficsim.core.dsol.OTSModelInterface
org.opentrafficsim.core.dsol.OTSSimulator
org.opentrafficsim.core.dsol.OTSSimulatorInterface
org.opentrafficsim.core.dsol.OTSDEVSAnimator
org.opentrafficsim.core.dsol.OTSDEVSRealTimeClock
org.opentrafficsim.core.dsol.OTSDEVSSimulator
org.opentrafficsim.core.dsol.OTSReplication
org.opentrafficsim.core.dsol.OTSSimTimeDouble
org.opentrafficsim.core.gtu
org.opentrafficsim.core.gtu2
org.opentrafficsim.core.network.animation
org.opentrafficsim.gui
org.opentrafficsim.simulationengine
java.io
java.lang
java.rmi
javax.naming
nl.tudelft.simulation.dsol
nl.tudelft.simulation.dsol.eventlists
nl.tudelft.simulation.dsol.experiment
nl.tudelft.simulation.dsol.formalisms.eventscheduling
nl.tudelft.simulation.dsol.simtime
nl.tudelft.simulation.dsol.simulators
org.djunits.value.vdouble.scalar
org.opentrafficsim.core

org.opentrafficsim.core.geometry

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 15 0.0% 83.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.opentrafficsim.core.geometry.OTSBuffering
org.opentrafficsim.core.geometry.OTSGeometry
org.opentrafficsim.core.geometry.OTSGeometryException
org.opentrafficsim.core.geometry.OTSLine3D
org.opentrafficsim.core.geometry.OTSPoint3D
org.opentrafficsim.core.geometry.OTSPolygon3D
org.opentrafficsim.core.network
org.opentrafficsim.core.network.animation
org.opentrafficsim.core.network.factory.xml.units
com.vividsolutions.jts.geom
com.vividsolutions.jts.linearref
com.vividsolutions.jts.operation.buffer
java.awt.geom
java.io
java.lang
java.util
javax.media.j3d
javax.vecmath
nl.tudelft.simulation.dsol.animation
nl.tudelft.simulation.language.d3
org.djunits.unit
org.djunits.value.vdouble.scalar
org.opentrafficsim.core
org.opentrafficsim.core.network

org.opentrafficsim.core.gtu

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 11 38.0% 92.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opentrafficsim.core.gtu.AbstractGTU
org.opentrafficsim.core.gtu.GTU
org.opentrafficsim.core.gtu.SpaceBasedGTU
org.opentrafficsim.core.gtu.GTUException
org.opentrafficsim.core.gtu.GTUType
org.opentrafficsim.core.gtu.RelativePosition
org.opentrafficsim.core.gtu.RelativePosition$TYPE
org.opentrafficsim.core.gtu.TemplateGTUType
org.opentrafficsim.core.gtu.animation
java.io
java.lang
java.util
javax.media.j3d
nl.tudelft.simulation.dsol.animation
nl.tudelft.simulation.language.d3
org.djunits.value.vdouble.scalar
org.opentrafficsim.core
org.opentrafficsim.core.dsol
org.opentrafficsim.core.network.route
org.opentrafficsim.core.units.distributions

org.opentrafficsim.core.gtu.animation

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 7 12.0% 78.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opentrafficsim.core.gtu.animation.GTUColorer
org.opentrafficsim.core.gtu.animation.AccelerationGTUColorer
org.opentrafficsim.core.gtu.animation.ColorInterpolator
org.opentrafficsim.core.gtu.animation.DefaultSwitchableGTUColorer
org.opentrafficsim.core.gtu.animation.GTUColorer$LegendEntry
org.opentrafficsim.core.gtu.animation.IDGTUColorer
org.opentrafficsim.core.gtu.animation.SwitchableGTUColorer
org.opentrafficsim.core.gtu.animation.VelocityGTUColorer
org.opentrafficsim.gui
org.opentrafficsim.simulationengine
java.awt
java.lang
java.util
org.djunits.unit
org.djunits.value.vdouble.scalar
org.opentrafficsim.core
org.opentrafficsim.core.gtu

org.opentrafficsim.core.gtu2

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 20.0% 100.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opentrafficsim.core.gtu2.GTU
org.opentrafficsim.core.gtu2.GTUException
org.opentrafficsim.core.gtu2.GTUType
org.opentrafficsim.core.gtu2.RelativePosition
org.opentrafficsim.core.gtu2.RelativePosition$TYPE
None java.io
java.lang
java.util
nl.tudelft.simulation.dsol.animation
org.djunits.value.vdouble.scalar
org.opentrafficsim.core
org.opentrafficsim.core.dsol

org.opentrafficsim.core.network

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 14 33.0% 74.0% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opentrafficsim.core.network.ExpansionNetwork
org.opentrafficsim.core.network.Link
org.opentrafficsim.core.network.Network
org.opentrafficsim.core.network.Node
org.opentrafficsim.core.network.LateralDirectionality
org.opentrafficsim.core.network.LinkEdge
org.opentrafficsim.core.network.LinkLocation
org.opentrafficsim.core.network.LongitudinalDirectionality
org.opentrafficsim.core.network.NetworkException
org.opentrafficsim.core.network.OTSLink
org.opentrafficsim.core.network.OTSNetwork
org.opentrafficsim.core.network.OTSNode
org.opentrafficsim.core.geometry
org.opentrafficsim.core.network.animation
org.opentrafficsim.core.network.factory.xml.units
org.opentrafficsim.core.network.route
org.opentrafficsim.simulationengine
com.vividsolutions.jts.geom
java.io
java.lang
java.util
javax.media.j3d
javax.vecmath
nl.tudelft.simulation.dsol.animation
nl.tudelft.simulation.language.d3
org.djunits.unit
org.djunits.value.vdouble.scalar
org.jgrapht.graph
org.opentrafficsim.core
org.opentrafficsim.core.geometry
org.opentrafficsim.core.network.route

org.opentrafficsim.core.network.animation

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 12 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.opentrafficsim.core.network.animation.LinkAnimation
org.opentrafficsim.core.network.animation.NodeAnimation
org.opentrafficsim.core.network.animation.PaintPolygons
None java.awt
java.awt.geom
java.awt.image
java.lang
java.rmi
javax.naming
nl.tudelft.simulation.dsol.animation
nl.tudelft.simulation.dsol.animation.D2
nl.tudelft.simulation.language.d3
org.opentrafficsim.core.dsol
org.opentrafficsim.core.geometry
org.opentrafficsim.core.network

org.opentrafficsim.core.network.factory.xml.units

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 org.opentrafficsim.core.network.factory.xml.units.AngleUnits
org.opentrafficsim.core.network.factory.xml.units.Colors
org.opentrafficsim.core.network.factory.xml.units.Coordinates
org.opentrafficsim.core.network.factory.xml.units.Directions
org.opentrafficsim.core.network.factory.xml.units.Distributions
org.opentrafficsim.core.network.factory.xml.units.LengthUnits
org.opentrafficsim.core.network.factory.xml.units.SpeedUnits
org.opentrafficsim.core.network.factory.xml.units.TimeUnits
None java.awt
java.lang
java.util
nl.tudelft.simulation.jstats.distributions
nl.tudelft.simulation.jstats.streams
org.djunits.unit
org.djunits.value.vdouble.scalar
org.opentrafficsim.core
org.opentrafficsim.core.geometry
org.opentrafficsim.core.network
org.opentrafficsim.core.units.distributions

org.opentrafficsim.core.network.route

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 7 25.0% 78.0% 3.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opentrafficsim.core.network.route.RouteGenerator
org.opentrafficsim.core.network.route.RouteNavigator
org.opentrafficsim.core.network.route.CompleteRoute
org.opentrafficsim.core.network.route.CompleteRouteNavigator
org.opentrafficsim.core.network.route.FixedRouteGenerator
org.opentrafficsim.core.network.route.ProbabilisticRouteGenerator
org.opentrafficsim.core.network.route.ProbabilisticRouteGenerator$RouteProbability
org.opentrafficsim.core.network.route.Route
org.opentrafficsim.core.gtu
org.opentrafficsim.core.network
java.io
java.lang
java.util
nl.tudelft.simulation.jstats.distributions
nl.tudelft.simulation.jstats.streams
org.opentrafficsim.core
org.opentrafficsim.core.network

org.opentrafficsim.core.units.distributions

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 7 60.000004% 70.0% 30.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opentrafficsim.core.units.distributions.AbstractContinuousDistScalar
org.opentrafficsim.core.units.distributions.AbstractDiscreteDistScalar
org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar
org.opentrafficsim.core.units.distributions.ContinuousDistFloatScalar
org.opentrafficsim.core.units.distributions.DiscreteDistDoubleScalar
org.opentrafficsim.core.units.distributions.DiscreteDistFloatScalar
org.opentrafficsim.core.units.distributions.OTS_DOUBLE_DIST
org.opentrafficsim.core.units.distributions.OTS_DOUBLE_DIST$ContinuousDistScalar
org.opentrafficsim.core.units.distributions.OTS_DOUBLE_DIST$DiscreteDistScalar
org.opentrafficsim.core.units.distributions.OTS_FLOAT_DIST
org.opentrafficsim.core.units.distributions.OTS_FLOAT_DIST$ContinuousDistScalar
org.opentrafficsim.core.units.distributions.OTS_FLOAT_DIST$DiscreteDistScalar
org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar$Abs
org.opentrafficsim.core.units.distributions.ContinuousDistDoubleScalar$Rel
org.opentrafficsim.core.units.distributions.ContinuousDistFloatScalar$Abs
org.opentrafficsim.core.units.distributions.ContinuousDistFloatScalar$Rel
org.opentrafficsim.core.units.distributions.DiscreteDistDoubleScalar$Abs
org.opentrafficsim.core.units.distributions.DiscreteDistDoubleScalar$Rel
org.opentrafficsim.core.units.distributions.DiscreteDistFloatScalar$Abs
org.opentrafficsim.core.units.distributions.DiscreteDistFloatScalar$Rel
org.opentrafficsim.core
org.opentrafficsim.core.gtu
org.opentrafficsim.core.network.factory.xml.units
java.lang
nl.tudelft.simulation.jstats.distributions
nl.tudelft.simulation.jstats.streams
org.djunits.unit
org.djunits.value
org.djunits.value.vdouble.scalar
org.djunits.value.vfloat.scalar

org.opentrafficsim.gui

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 33 0.0% 97.0% 3.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.opentrafficsim.gui.ColorControlPanel
org.opentrafficsim.gui.LabeledPanel
org.opentrafficsim.gui.OTSAnimationPanel
org.opentrafficsim.gui.OTSControlPanel
org.opentrafficsim.gui.OTSControlPanel$1
org.opentrafficsim.gui.OTSControlPanel$ClockPanel
org.opentrafficsim.gui.OTSControlPanel$ClockPanel$TimeUpdateTask
org.opentrafficsim.gui.OTSControlPanel$DisposeOnCloseThread
org.opentrafficsim.gui.OTSControlPanel$RegexFormatter
org.opentrafficsim.gui.OTSControlPanel$TimeEdit
org.opentrafficsim.gui.OTSControlPanel$TimeWarpPanel
org.opentrafficsim.gui.OTSControlPanel$TimeWarpPanel$1
org.opentrafficsim.gui.OTSSimulationPanel
org.opentrafficsim.gui.ProbabilityDistributionEditor
org.opentrafficsim.gui.SimulatorFrame
org.opentrafficsim.simulationengine
com.bric.multislider
java.awt
java.awt.event
java.awt.geom
java.beans
java.io
java.lang
java.rmi
java.text
java.util
java.util.logging
java.util.regex
javax.swing
javax.swing.border
javax.swing.event
javax.swing.text
nl.tudelft.simulation.dsol
nl.tudelft.simulation.dsol.animation.D2
nl.tudelft.simulation.dsol.eventlists
nl.tudelft.simulation.dsol.experiment
nl.tudelft.simulation.dsol.formalisms.eventscheduling
nl.tudelft.simulation.dsol.gui.swing
nl.tudelft.simulation.dsol.simulators
nl.tudelft.simulation.event
nl.tudelft.simulation.language.io
org.djunits.locale
org.djunits.unit
org.djunits.value.vdouble.scalar
org.opentrafficsim.core
org.opentrafficsim.core.dsol
org.opentrafficsim.core.gtu.animation
org.opentrafficsim.simulationengine
org.opentrafficsim.simulationengine.properties

org.opentrafficsim.simulationengine

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 20 75.0% 95.0% 70.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opentrafficsim.simulationengine.AbstractWrappableAnimation
org.opentrafficsim.simulationengine.AbstractWrappableSimulation
org.opentrafficsim.simulationengine.SimpleAnimatorInterface
org.opentrafficsim.simulationengine.SimpleSimulatorInterface
org.opentrafficsim.simulationengine.WrappableAnimation
org.opentrafficsim.simulationengine.WrappableSimulation
org.opentrafficsim.simulationengine.SimpleAnimator
org.opentrafficsim.simulationengine.SimpleSimulator
org.opentrafficsim.gui
java.awt
java.awt.geom
java.io
java.lang
java.rmi
java.util
javax.naming
javax.swing
nl.tudelft.simulation.dsol
nl.tudelft.simulation.dsol.eventlists
nl.tudelft.simulation.dsol.experiment
nl.tudelft.simulation.dsol.formalisms.eventscheduling
nl.tudelft.simulation.dsol.gui.swing
nl.tudelft.simulation.dsol.simulators
org.djunits.value.vdouble.scalar
org.opentrafficsim.core
org.opentrafficsim.core.dsol
org.opentrafficsim.core.gtu.animation
org.opentrafficsim.core.network
org.opentrafficsim.gui

org.opentrafficsim.simulationengine.properties

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 8.0% 83.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opentrafficsim.simulationengine.properties.AbstractProperty
org.opentrafficsim.simulationengine.properties.AbstractProperty$PropertyIterator
org.opentrafficsim.simulationengine.properties.BooleanProperty
org.opentrafficsim.simulationengine.properties.CompoundProperty
org.opentrafficsim.simulationengine.properties.CompoundProperty$1
org.opentrafficsim.simulationengine.properties.ContinuousProperty
org.opentrafficsim.simulationengine.properties.IDMPropertySet
org.opentrafficsim.simulationengine.properties.IntegerProperty
org.opentrafficsim.simulationengine.properties.ProbabilityDistributionProperty
org.opentrafficsim.simulationengine.properties.PropertyException
org.opentrafficsim.simulationengine.properties.SelectionProperty
org.opentrafficsim.simulationengine.properties.StringProperty
org.opentrafficsim.gui
java.io
java.lang
java.util
org.djunits.value.vdouble.scalar
org.opentrafficsim.core

Cycles

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

Package Package Dependencies
org.opentrafficsim.core.geometry org.opentrafficsim.core.network
org.opentrafficsim.core.geometry
org.opentrafficsim.core.gtu org.opentrafficsim.core.network.route
org.opentrafficsim.core.network
org.opentrafficsim.core.geometry
org.opentrafficsim.core.network
org.opentrafficsim.core.gtu.animation org.opentrafficsim.core.gtu
org.opentrafficsim.core.network.route
org.opentrafficsim.core.network
org.opentrafficsim.core.geometry
org.opentrafficsim.core.network
org.opentrafficsim.core.network org.opentrafficsim.core.geometry
org.opentrafficsim.core.network
org.opentrafficsim.core.network.animation org.opentrafficsim.core.network
org.opentrafficsim.core.geometry
org.opentrafficsim.core.network
org.opentrafficsim.core.network.factory.xml.units org.opentrafficsim.core.network
org.opentrafficsim.core.geometry
org.opentrafficsim.core.network
org.opentrafficsim.core.network.route org.opentrafficsim.core.network
org.opentrafficsim.core.geometry
org.opentrafficsim.core.network
org.opentrafficsim.gui org.opentrafficsim.core.gtu.animation
org.opentrafficsim.core.gtu
org.opentrafficsim.core.network.route
org.opentrafficsim.core.network
org.opentrafficsim.core.geometry
org.opentrafficsim.core.network
org.opentrafficsim.simulationengine org.opentrafficsim.gui
org.opentrafficsim.core.gtu.animation
org.opentrafficsim.core.gtu
org.opentrafficsim.core.network.route
org.opentrafficsim.core.network
org.opentrafficsim.core.geometry
org.opentrafficsim.core.network

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.