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
camera3d 68 12 56 7 33 0,18 82% 0%
camera3d.action 56 10 46 2 10 0,18 83% 1%
camera3d.applets 2 0 2 0 3 0 100% 0%
camera3d.event 20 2 18 2 4 0,1 67% 23%
camera3d.gizmo 9 1 8 2 9 0,11 82% 7%
camera3d.gui 107 4 103 3 18 0,04 86% 11%
camera3d.manipulation 23 4 19 3 13 0,17 81% 1%
camera3d.test 15 0 15 4 23 0 85% 15%
camera3d.xmlrpc 3 0 3 0 7 0 100% 0%

Packages

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

camera3d

Afferent Couplings Efferent Couplings Abstractness Instability Distance
7 33 18% 82% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
PickListener

SceneObjectsChangeListener

SelectionChangeListener

VcHelper

VcLaser

VcLaserTracer

VcLight

VcLightXMLHandler

VcObject

VcObjectChangeListener

VcObjectXMLHandler

ViewportChangeListener

AvatarManager

Axis

BasicScene

CoreScene

Cursor3D

DebugUtilTest

DebugUtilTest$1

DebugUtilTest$InternalListener

DimensionsManager

DistanceMeasurer

DistanceMeasurerXMLHandler

DummyApp

GUIControl

GUILessVC

GeometryBag

GeometryUtility

HelpingGrid

J3DBase

MathUtility

OffScreenCanvas3D

PlanesTest

SaverCanvas3D

SelectionList

TerrainGrid

TransformMode

TransformScope

TransformType

VcAmbientLight

VcAmbientLightXMLHandler

VcApplication

VcContent

VcDirectLight

VcDirectLightXMLHandler

VcHelperPoint

VcHelperPointXMLHandler

VcKeyNavigator

VcKeyNavigatorBehavior

VcLaserArray

VcLaserArrayXMLHandler

VcLaserBeam

VcLaserTraceBehavior

VcLoader

VcPickMouseBehavior

VcPointLight

VcPointLightXMLHandler

VcSpotLight

VcSpotLightXMLHandler

VcTesterFrame

VcTesterFrame$1

VcTesterFrame$2

VcView

VcViewXMLHandler

Viewport

VirtualCamera

VirtualCameraTester

XMLConverter

camera3d.action

camera3d.event

camera3d.gizmo

camera3d.gui

camera3d.manipulation

camera3d.test

camera3d.xmlrpc

camera3d.action

camera3d.event

camera3d.gizmo

camera3d.gui

camera3d.manipulation

camera3d.test

com.sun.image.codec.jpeg

com.sun.j3d.internal

com.sun.j3d.loaders

com.sun.j3d.loaders.vrml97

com.sun.j3d.utils.behaviors.keyboard

com.sun.j3d.utils.behaviors.mouse

com.sun.j3d.utils.picking

com.sun.j3d.utils.picking.behaviors

com.sun.j3d.utils.universe

java.awt

java.awt.event

java.awt.geom

java.awt.image

java.io

java.lang

java.net

java.text

java.util

javax.imageio

javax.media.j3d

javax.swing

javax.swing.text

javax.vecmath

org.j3d.geom

org.jdom

org.jdom.input

org.jdom.output

camera3d.applets

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

SimpleRotApplet

camera3d.manipulation

java.applet

java.awt

camera3d.gui

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 18 4% 86% 11%
Abstract Classes Concrete Classes Used by Packages Uses Packages
DoubleControl

DoubleValueChangeListener

IntControl

IntValueChangeListener

CursorManager

CustomFileFilter

DistanceMeasurerPane

DistanceMeasurerPane$1

DistanceMeasurerPane$2

DistanceMeasurerPane$3

DistanceMeasurerPane$4

DistanceMeasurerPane$5

DoubleChangeEvent

DoubleDigitalControl

DoubleDigitalControl$1

DoubleDigitalControl$2

DoubleDigitalControl$3

DoubleDigitalControl$4

DoubleDigitalControl$5

DoubleDigitalControl$6

EditionPane

EmptyPanel

FrameSwitcherPane

IntChangeEvent

IntDigitalControl

IntDigitalControl$1

IntDigitalControl$2

IntDigitalControl$3

IntDigitalControl$4

IntDigitalControl$5

IntDigitalControl$6

LightChooserDialog

LightChooserDialog$1

LightChooserDialog$2

PanelCommandBar

SavedImageSizeDialog

SavedImageSizeDialog$1

SavedImageSizeDialog$2

SelectionListEntry

SelectionListPane

SelectionListPane$1

SelectionListPane$2

SelectionListPane$3

SelectionListTesterFrame

SelectionListTesterFrame$1

SelectionListTesterFrame$2

SelectionListTesterFrame$3

SelectionListTesterFrame$4

SelectionListTesterFrame_AboutBox

TestEditionPane

TestEditionPane$1

TestEditionPane$2

VcContentEditionPane

VcFrame

VcFrame$1

VcFrame$10

VcFrame$11

VcFrame$12

VcFrame$13

VcFrame$14

VcFrame$15

VcFrame$16

VcFrame$17

VcFrame$18

VcFrame$2

VcFrame$3

VcFrame$4

VcFrame$5

VcFrame$6

VcFrame$7

VcFrame$8

VcFrame$9

VcFrame_AboutBox

VcLaserArrayEditionPane

VcLaserArrayEditionPane$1

VcLaserArrayEditionPane$2

VcLightEditionPane

VcLightEditionPane$1

VcLightEditionPane$2

VcObjectEditionPane

VcObjectEditionPane$1

VcObjectEditionPane$2

VcPointLightEditionPane

VcSpotLightEditionPane

VcViewEditionPane

VcViewEditionPane$1

VcViewEditionPane$2

VcViewEditionPane$3

VcViewEditionPane$4

VcViewEditionPane$5

VcVie wEditionPane$6

ViewportCombo

ViewportCommandPane

ViewportCommandPane$1

ViewportCommandPane$2

ViewportCommandPane$3

ViewportContextMenu

ViewportContextMenu$KeybListener

ViewportContextMenu$PopupListener

ViewportFrame

ViewportFrame$InternalListener

ViewportPane

ViewportWindow

ViewportWindowManager

ViewportsEventHandler

ViewportsEventHandler$InternalListener

ViewportsEventHandler$KeybListener

camera3d

camera3d.action

camera3d.test

camera3d

camera3d.event

camera3d.manipulation

java.awt

java.awt.event

java.awt.image

java.io

java.lang

java.text

java.util

javax.media.j3d

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.text

javax.vecmath

camera3d.xmlrpc

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

VirtualCameraClient

VirtualCameraServer

camera3d

java.awt

java.io

java.lang

java.util

javax.swing

org.apache.xmlrpc

Cycles

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

Package Cyclic Dependencies
camera3d camera3d.test

camera3d

camera3d.action camera3d

camera3d.test

camera3d

camera3d.applets camera3d.manipulation

camera3d

camera3d.test

camera3d

camera3d.event camera3d

camera3d.test

camera3d

camera3d.gizmo camera3d.test

camera3d

camera3d.test

camera3d.gui camera3d.event

camera3d

camera3d.test

camera3d

camera3d.manipulation camera3d

camera3d.test

camera3d

camera3d.test camera3d

camera3d.test

camera3d.xmlrpc camera3d

camera3d.test

camera3d

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 cycl es 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.