dsol-gui

##### Project Documentation

- About dsol-gui
- Project Info
- Project Reports
  - Metrics
  - Checkstyle
  - Changes
  - Change Log
  - Developer Activity
  - File Activity
  - Project License
  - Source Xref
  - Test Xref
  - Unit Tests
  - Link Check Report
  - Task List
- Development Process

## Metric Results

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

The following document contains the results of a JDependmetric analysis. The various metrics are defined at the bottom of this document.

## Summary

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

Package | TC | AC | CC | AC | EC | A | I | D
--- | --- | --- | --- | --- | --- | --- | --- | ---
nl.tudelft.simulation.dsol.gui | 6 | 1 | 5 | 12 | 14 | 0.17 | 54% | 29%
nl.tudelft.simulation.dsol.gui.actions | 9 | 1 | 8 | 1 | 13 | 0.11 | 93% | 4%
nl.tudelft.simulation.dsol.gui.animation2D | 5 | 0 | 5 | 6 | 23 | 0 | 79% | 21%
nl.tudelft.simulation.dsol.gui.animation2D.actions | 9 | 0 | 9 | 2 | 6 | 0 | 75% | 25%
nl.tudelft.simulation.dsol.gui.animation2D.mouse | 1 | 0 | 1 | 3 | 16 | 0 | 84% | 16%
nl.tudelft.simulation.dsol.gui.animation3D | 5 | 0 | 5 | 1 | 22 | 0 | 96% | 4%
nl.tudelft.simulation.dsol.gui.animation3D.mouse | 4 | 0 | 4 | 1 | 11 | 0 | 92% | 8%
nl.tudelft.simulation.dsol.gui.applets | 2 | 0 | 2 | 1 | 7 | 0 | 88% | 12%
nl.tudelft.simulation.dsol.gui.editor2D | 8 | 1 | 7 | 3 | 25 | 0.12 | 89% | 2%
nl.tudelft.simulation.dsol.gui.editor2D.actions | 5 | 0 | 5 | 2 | 19 | 0 | 90% | 10%
nl.tudelft.simulation.dsol.gui.editor2D.mouse | 1 | 0 | 1 | 1 | 15 | 0 | 94% | 6%
nl.tudelft.simulation.dsol.gui.menu | 1 | 0 | 1 | 1 | 3 | 0 | 75% | 25%
nl.tudelft.simulation.dsol.gui.menu.actions | 14 | 0 | 14 | 1 | 22 | 0 | 96% | 4%
nl.tudelft.simulation.dsol.gui.panels | 10 | 0 | 10 | 4 | 20 | 0 | 83% | 17%
nl.tudelft.simulation.dsol.gui.statistics | 3 | 0 | 3 | 2 | 14 | 0 | 88% | 12%
nl.tudelft.simulation.dsol.gui.statistics.actions | 8 | 0 | 8 | 1 | 5 | 0 | 83% | 17%
nl.tudelft.simulation.dsol.gui.windows | 10 | 0 | 10 | 2 | 28 | 0 | 93% | 7%

## Packages

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

### nl.tudelft.simulation.dsol.gui

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
12 | 14 | 17% | 54% | 29%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
DSOLApplicationInterface | DSOLApplication DSOLApplication$1 DSOLApplication$Recent DSOLApplication$RecentComparator UIInitializer | nl.tudelft.simulation.dsol.gui.actions nl.tudelft.simulation.dsol.gui.animation2D nl.tudelft.simulation.dsol.gui.animation2D.mouse nl.tudelft.simulation.dsol.gui.animation3D nl.tudelft.simulation.dsol.gui.applets nl.tudelft.simulation.dsol.gui.editor2D nl.tudelft.simulation.dsol.gui.editor2D.actions nl.tudelft.simulation.dsol.gui.editor2D.mouse nl.tudelft.simulation.dsol.gui.menu nl.tudelft.simulation.dsol.gui.menu.actions nl.tudelft.simulation.dsol.gui.panels nl.tudelft.simulation.dsol.gui.windows | java.awt java.io java.lang java.net java.util javax.swing javax.swing.plaf nl.tudelft.simulation.dsol.experiment nl.tudelft.simulation.dsol.gui.applets nl.tudelft.simulation.dsol.gui.windows nl.tudelft.simulation.dsol.simulators nl.tudelft.simulation.event nl.tudelft.simulation.language.io nl.tudelft.simulation.logger

### nl.tudelft.simulation.dsol.gui.actions

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 13 | 11% | 93% | 4%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
SimulatorAction | AnimationDelaySlider FastForwardAction PauseAction ResetAction StartAction StepAction StopAction TimeStepSlider | nl.tudelft.simulation.dsol.gui.panels | java.awt java.awt.event java.lang java.rmi java.util javax.swing javax.swing.event nl.tudelft.simulation.dsol.experiment nl.tudelft.simulation.dsol.formalisms.devs nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.simulators nl.tudelft.simulation.event nl.tudelft.simulation.logger

### nl.tudelft.simulation.dsol.gui.animation2D

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
6 | 23 | 0% | 79% | 21%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | AnimationFrame AnimationFrame$ButtonPanel AnimationPanel GridPanel Renderable2DComparator | nl.tudelft.simulation.dsol.gui.animation2D.actions nl.tudelft.simulation.dsol.gui.animation2D.mouse nl.tudelft.simulation.dsol.gui.editor2D nl.tudelft.simulation.dsol.gui.editor2D.actions nl.tudelft.simulation.dsol.gui.editor2D.mouse nl.tudelft.simulation.dsol.gui.menu.actions | java.awt java.awt.event java.awt.geom java.lang java.lang.reflect java.rmi java.text java.util javax.naming javax.naming.event javax.swing javax.vecmath nl.tudelft.simulation.dsol.animation nl.tudelft.simulation.dsol.animation.D2 nl.tudelft.simulation.dsol.experiment nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.animation2D.actions nl.tudelft.simulation.dsol.gui.animation2D.mouse nl.tudelft.simulation.dsol.simulators nl.tudelft.simulation.event nl.tudelft.simulation.language.reflection nl.tudelft.simulation.logger nl.tudelft.simulation.naming

### nl.tudelft.simulation.dsol.gui.animation2D.actions

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
2 | 6 | 0% | 75% | 25%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | HomeAction IntrospectionAction PanDownAction PanLeftAction PanRightAction PanUpAction ShowGridAction ZoomInAction ZoomOutAction | nl.tudelft.simulation.dsol.gui.animation2D nl.tudelft.simulation.dsol.gui.animation2D.mouse | java.awt.event java.lang javax.swing nl.tudelft.simulation.dsol.gui.animation2D nl.tudelft.simulation.introspection.gui nl.tudelft.simulation.language.io

### nl.tudelft.simulation.dsol.gui.animation2D.mouse

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
3 | 16 | 0% | 84% | 16%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | InputListener | nl.tudelft.simulation.dsol.gui.animation2D nl.tudelft.simulation.dsol.gui.editor2D nl.tudelft.simulation.dsol.gui.editor2D.mouse | java.awt java.awt.event java.awt.geom java.lang java.rmi java.text java.util javax.swing javax.vecmath nl.tudelft.simulation.dsol.animation nl.tudelft.simulation.dsol.animation.D2 nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.animation2D nl.tudelft.simulation.dsol.gui.animation2D.actions nl.tudelft.simulation.introspection.gui nl.tudelft.simulation.logger

### nl.tudelft.simulation.dsol.gui.animation3D

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 22 | 0% | 96% | 4%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | Animation3DCanvas Animation3DFrame Animation3DFrame$1 ContentBranch ViewBranch | nl.tudelft.simulation.dsol.gui.menu.actions | com.sun.j3d.utils.behaviors.mouse com.sun.j3d.utils.universe java.awt java.awt.event java.io java.lang java.rmi java.util javax.media.j3d javax.naming javax.naming.event javax.swing javax.vecmath nl.tudelft.simulation.dsol.animation.D3 nl.tudelft.simulation.dsol.experiment nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.animation3D.mouse nl.tudelft.simulation.dsol.gui.panels nl.tudelft.simulation.dsol.simulators nl.tudelft.simulation.event nl.tudelft.simulation.logger nl.tudelft.simulation.naming

### nl.tudelft.simulation.dsol.gui.animation3D.mouse

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 11 | 0% | 92% | 8%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | PickObjectMouseBehavior RotateXYMouseBehavior TranslateMouseBehavior ZoomMouseBehavior | nl.tudelft.simulation.dsol.gui.animation3D | com.sun.j3d.utils.behaviors.mouse com.sun.j3d.utils.picking com.sun.j3d.utils.picking.behaviors java.awt java.awt.event java.lang java.util javax.media.j3d javax.vecmath nl.tudelft.simulation.dsol.animation.D3 nl.tudelft.simulation.introspection.gui

### nl.tudelft.simulation.dsol.gui.applets

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 7 | 0% | 88% | 12%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | DSOLApplet DSOLSecurityManager | nl.tudelft.simulation.dsol.gui | java.applet java.io java.lang java.security javax.swing nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.language.io

### nl.tudelft.simulation.dsol.gui.editor2D

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
3 | 25 | 12% | 89% | 2%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
EditableSaverInterface | EditMenu Editor2DFrame Editor2DFrame$1 Editor2DPanel EditorToolbar MenuBar NavigationToolbar | nl.tudelft.simulation.dsol.gui.editor2D.actions nl.tudelft.simulation.dsol.gui.editor2D.mouse nl.tudelft.simulation.dsol.gui.menu.actions | java.awt java.awt.event java.awt.geom java.lang java.lang.reflect java.rmi java.util javax.accessibility javax.naming javax.naming.event javax.swing javax.vecmath nl.tudelft.simulation.dsol.animation nl.tudelft.simulation.dsol.animation.D2 nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.animation2D nl.tudelft.simulation.dsol.gui.animation2D.mouse nl.tudelft.simulation.dsol.gui.editor2D.actions nl.tudelft.simulation.dsol.gui.editor2D.mouse nl.tudelft.simulation.event nl.tudelft.simulation.language.d3 nl.tudelft.simulation.language.io nl.tudelft.simulation.language.reflection nl.tudelft.simulation.language.swing nl.tudelft.simulation.logger

### nl.tudelft.simulation.dsol.gui.editor2D.actions

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
2 | 19 | 0% | 90% | 10%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | EditMenuActions EditorToolbarActions EditorUtilities MenuBarActions NavigationToolbarActions | nl.tudelft.simulation.dsol.gui.editor2D nl.tudelft.simulation.dsol.gui.editor2D.mouse | java.awt java.awt.event java.awt.geom java.lang java.lang.reflect java.rmi java.util javax.swing javax.vecmath nl.tudelft.simulation.dsol.animation nl.tudelft.simulation.dsol.animation.D2 nl.tudelft.simulation.dsol.experiment nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.animation2D nl.tudelft.simulation.dsol.gui.editor2D nl.tudelft.simulation.language.d3 nl.tudelft.simulation.language.reflection nl.tudelft.simulation.language.swing nl.tudelft.simulation.logger

### nl.tudelft.simulation.dsol.gui.editor2D.mouse

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 15 | 0% | 94% | 6%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | EditorInputListener | nl.tudelft.simulation.dsol.gui.editor2D | java.awt java.awt.event java.awt.geom java.lang javax.swing javax.vecmath nl.tudelft.simulation.dsol.animation nl.tudelft.simulation.dsol.animation.D2 nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.animation2D nl.tudelft.simulation.dsol.gui.animation2D.mouse nl.tudelft.simulation.dsol.gui.editor2D nl.tudelft.simulation.dsol.gui.editor2D.actions nl.tudelft.simulation.introspection.gui nl.tudelft.simulation.language.d3

### nl.tudelft.simulation.dsol.gui.menu

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 3 | 0% | 75% | 25%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | HelpMenu | nl.tudelft.simulation.dsol.gui.windows | javax.swing nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.menu.actions

### nl.tudelft.simulation.dsol.gui.menu.actions

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 22 | 0% | 96% | 4%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | CloseExperimentAction ExitAction OpenFileAction OpenRecentAction OpenURLAction RecentAction ViewAnimation3dAction ViewAnimationPanelAction ViewContextAction ViewEditor2DPanelAction ViewEventlistAction ViewLoggerAction ViewMemoryAction ViewStatisticsAction | nl.tudelft.simulation.dsol.gui.menu | java.awt.event java.lang java.net java.rmi java.util javax.naming javax.naming.event javax.swing nl.tudelft.simulation.dsol.experiment nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.animation2D nl.tudelft.simulation.dsol.gui.animation3D nl.tudelft.simulation.dsol.gui.editor2D nl.tudelft.simulation.dsol.gui.panels nl.tudelft.simulation.dsol.gui.statistics nl.tudelft.simulation.dsol.gui.windows nl.tudelft.simulation.dsol.simulators nl.tudelft.simulation.event nl.tudelft.simulation.logger nl.tudelft.simulation.logger.gui nl.tudelft.simulation.naming nl.tudelft.simulation.xml.dsol

### nl.tudelft.simulation.dsol.gui.panels

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
4 | 20 | 0% | 83% | 17%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | ControlPanel ControlPanel$1 ExperimentTree GUIExperimentParsingThread Statusbar Statusbar$TimeUpdater TabbedPane TablePanel WaitingFrame WaitingFrame$ContentPane | nl.tudelft.simulation.dsol.gui.animation3D nl.tudelft.simulation.dsol.gui.menu.actions nl.tudelft.simulation.dsol.gui.statistics nl.tudelft.simulation.dsol.gui.windows | info.clearthought.layout java.awt java.awt.event java.io java.lang java.net java.rmi java.text java.util javax.swing javax.swing.table javax.swing.text javax.swing.tree nl.tudelft.simulation.dsol.experiment nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.actions nl.tudelft.simulation.dsol.simulators nl.tudelft.simulation.event nl.tudelft.simulation.logger nl.tudelft.simulation.xml.dsol

### nl.tudelft.simulation.dsol.gui.statistics

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
2 | 14 | 0% | 88% | 12%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | ChartPanel StatisticsFrame StatisticsTree | nl.tudelft.simulation.dsol.gui.menu.actions nl.tudelft.simulation.dsol.gui.statistics.actions | java.awt java.awt.datatransfer java.awt.dnd java.lang javax.naming javax.swing javax.swing.tree nl.tudelft.simulation.dsol.gui.panels nl.tudelft.simulation.dsol.gui.statistics.actions nl.tudelft.simulation.event nl.tudelft.simulation.jstats nl.tudelft.simulation.logger nl.tudelft.simulation.naming nl.tudelft.simulation.naming.context

### nl.tudelft.simulation.dsol.gui.statistics.actions

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 5 | 0% | 83% | 17%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | AddColumnAction AddColumnAction$Worker AddRowAction AddRowAction$Worker DeleteColumnAction DeleteColumnAction$Worker DeleteRowAction DeleteRowAction$Worker | nl.tudelft.simulation.dsol.gui.statistics | java.awt.event java.lang javax.swing nl.tudelft.simulation.dsol.gui.statistics nl.tudelft.simulation.language.io

### nl.tudelft.simulation.dsol.gui.windows

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
2 | 28 | 0% | 93% | 7%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | ContextFrame DSOLFrame EventlistFrame EventlistFrame$SynchronizedJTable FileChooserFrame FileChooserFrame$1 MemoryFrame MemoryFrame$Worker URLChooserFrame URLChooserFrame$AddressEntered | nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.menu.actions | java.awt java.awt.event java.io java.lang java.lang.reflect java.net java.text java.util javax.naming javax.naming.event javax.swing javax.swing.border javax.swing.filechooser javax.swing.table javax.swing.text nl.tudelft.simulation.dsol.eventlists nl.tudelft.simulation.dsol.experiment nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.menu nl.tudelft.simulation.dsol.gui.panels nl.tudelft.simulation.dsol.simulators nl.tudelft.simulation.event nl.tudelft.simulation.language.io nl.tudelft.simulation.language.reflection nl.tudelft.simulation.logger nl.tudelft.simulation.naming.context org.jdom org.jdom.input

## Cycles

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

Package | Cyclic Dependencies
--- | ---
nl.tudelft.simulation.dsol.gui | nl.tudelft.simulation.dsol.gui.applets nl.tudelft.simulation.dsol.gui
nl.tudelft.simulation.dsol.gui.actions | nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.applets nl.tudelft.simulation.dsol.gui
nl.tudelft.simulation.dsol.gui.animation2D | nl.tudelft.simulation.dsol.gui.animation2D.actions nl.tudelft.simulation.dsol.gui.animation2D
nl.tudelft.simulation.dsol.gui.animation2D.actions | nl.tudelft.simulation.dsol.gui.animation2D nl.tudelft.simulation.dsol.gui.animation2D.actions
nl.tudelft.simulation.dsol.gui.animation2D.mouse | nl.tudelft.simulation.dsol.gui.animation2D.actions nl.tudelft.simulation.dsol.gui.animation2D nl.tudelft.simulation.dsol.gui.animation2D.actions
nl.tudelft.simulation.dsol.gui.animation3D | nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.applets nl.tudelft.simulation.dsol.gui
nl.tudelft.simulation.dsol.gui.applets | nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.applets
nl.tudelft.simulation.dsol.gui.editor2D | nl.tudelft.simulation.dsol.gui.editor2D.actions nl.tudelft.simulation.dsol.gui.editor2D
nl.tudelft.simulation.dsol.gui.editor2D.actions | nl.tudelft.simulation.dsol.gui.editor2D nl.tudelft.simulation.dsol.gui.editor2D.actions
nl.tudelft.simulation.dsol.gui.editor2D.mouse | nl.tudelft.simulation.dsol.gui.editor2D nl.tudelft.simulation.dsol.gui.editor2D.actions nl.tudelft.simulation.dsol.gui.editor2D
nl.tudelft.simulation.dsol.gui.menu | nl.tudelft.simulation.dsol.gui.menu.actions nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.applets nl.tudelft.simulation.dsol.gui
nl.tudelft.simulation.dsol.gui.menu.actions | nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.applets nl.tudelft.simulation.dsol.gui
nl.tudelft.simulation.dsol.gui.panels | nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.applets nl.tudelft.simulation.dsol.gui
nl.tudelft.simulation.dsol.gui.statistics | nl.tudelft.simulation.dsol.gui.panels nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.applets nl.tudelft.simulation.dsol.gui
nl.tudelft.simulation.dsol.gui.statistics.actions | nl.tudelft.simulation.dsol.gui.statistics nl.tudelft.simulation.dsol.gui.panels nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.applets nl.tudelft.simulation.dsol.gui
nl.tudelft.simulation.dsol.gui.windows | nl.tudelft.simulation.dsol.gui.panels nl.tudelft.simulation.dsol.gui nl.tudelft.simulation.dsol.gui.applets nl.tudelft.simulation.dsol.gui

## 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.