| Package | TC | CC | AC | Ca | Ce | A | I | D | V |
|---|---|---|---|---|---|---|---|---|---|
| org.fest.swing.annotation | 2 | 1 | 1 | 0 | 3 | 50.0% | 100.0% | 50.0% | 1 |
| org.fest.swing.applet | 5 | 4 | 1 | 1 | 8 | 20.0% | 89.0% | 9.0% | 1 |
| org.fest.swing.awt | 3 | 3 | 0 | 5 | 8 | 0.0% | 62.0% | 38.0% | 1 |
| org.fest.swing.cell | 5 | 0 | 5 | 2 | 3 | 100.0% | 60.000004% | 60.000004% | 1 |
| org.fest.swing.core | 44 | 38 | 6 | 4 | 23 | 14.0% | 85.0% | 1.0% | 1 |
| org.fest.swing.core.matcher | 5 | 5 | 0 | 1 | 7 | 0.0% | 88.0% | 12.0% | 1 |
| org.fest.swing.data | 4 | 4 | 0 | 2 | 2 | 0.0% | 50.0% | 50.0% | 1 |
| org.fest.swing.driver | 312 | 304 | 8 | 1 | 30 | 3.0% | 97.0% | 1.0% | 1 |
| org.fest.swing.edt | 5 | 2 | 3 | 7 | 5 | 60.000004% | 42.0% | 2.0% | 1 |
| org.fest.swing.exception | 6 | 6 | 0 | 9 | 2 | 0.0% | 18.0% | 82.0% | 1 |
| org.fest.swing.finder | 8 | 6 | 2 | 0 | 9 | 25.0% | 100.0% | 25.0% | 1 |
| org.fest.swing.fixture | 52 | 33 | 19 | 1 | 17 | 37.0% | 94.0% | 31.0% | 1 |
| org.fest.swing.format | 14 | 12 | 2 | 4 | 14 | 14.0% | 78.0% | 8.0% | 1 |
| org.fest.swing.hierarchy | 20 | 18 | 2 | 1 | 12 | 10.0% | 92.0% | 2.0% | 1 |
| org.fest.swing.image | 2 | 2 | 0 | 0 | 8 | 0.0% | 100.0% | 0.0% | 1 |
| org.fest.swing.input | 9 | 9 | 0 | 1 | 17 | 0.0% | 94.0% | 6.0% | 1 |
| org.fest.swing.keystroke | 5 | 4 | 1 | 1 | 3 | 20.0% | 75.0% | 5.0% | 1 |
| org.fest.swing.launcher | 7 | 7 | 0 | 0 | 11 | 0.0% | 100.0% | 0.0% | 1 |
| org.fest.swing.listener | 3 | 2 | 1 | 3 | 6 | 33.0% | 67.0% | 0.0% | 1 |
| org.fest.swing.monitor | 13 | 13 | 0 | 2 | 14 | 0.0% | 88.0% | 12.0% | 1 |
| org.fest.swing.query | 48 | 48 | 0 | 11 | 7 | 0.0% | 39.0% | 61.0% | 1 |
| org.fest.swing.task | 5 | 5 | 0 | 2 | 7 | 0.0% | 78.0% | 22.0% | 1 |
| org.fest.swing.timing | 3 | 2 | 1 | 7 | 5 | 33.0% | 42.0% | 25.0% | 1 |
| org.fest.swing.util | 13 | 13 | 0 | 7 | 6 | 0.0% | 46.0% | 54.000004% | 1 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 3 | 50.0% | 100.0% | 50.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.annotation.GUITest | org.fest.swing.annotation.GUITestFinder | None | java.lang java.lang.annotation java.lang.reflect |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 8 | 20.0% | 89.0% | 9.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.applet.StatusDisplay | org.fest.swing.applet.AppletViewer org.fest.swing.applet.BasicAppletContext org.fest.swing.applet.BasicAppletContext$EmptyAppletEnumeration org.fest.swing.applet.BasicAppletStub | org.fest.swing.launcher | java.applet java.awt java.io java.lang java.net java.util javax.swing org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 5 | 8 | 0.0% | 62.0% | 38.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.fest.swing.awt.AWT org.fest.swing.awt.AWT$1 org.fest.swing.awt.AWT$ThreadStateChecker | org.fest.swing.core org.fest.swing.driver org.fest.swing.hierarchy org.fest.swing.input org.fest.swing.monitor | java.awt java.lang javax.swing org.fest.reflect.core org.fest.reflect.method org.fest.swing.query org.fest.swing.util org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 3 | 100.0% | 60.000004% | 60.000004% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.cell.JComboBoxCellReader org.fest.swing.cell.JListCellReader org.fest.swing.cell.JTableCellReader org.fest.swing.cell.JTableCellWriter org.fest.swing.cell.JTreeCellReader | None | org.fest.swing.driver org.fest.swing.fixture | java.awt java.lang javax.swing |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 4 | 23 | 14.0% | 85.0% | 1.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.core.ComponentFinder org.fest.swing.core.ComponentMatcher org.fest.swing.core.ComponentPrinter org.fest.swing.core.GenericTypeMatcher org.fest.swing.core.InputEventGenerator org.fest.swing.core.Robot | org.fest.swing.core.AWTEventGenerator org.fest.swing.core.AWTEventPoster org.fest.swing.core.ActivateWindowTask org.fest.swing.core.ActivateWindowTask$1 org.fest.swing.core.BasicComponentFinder org.fest.swing.core.BasicComponentPrinter org.fest.swing.core.ComponentAddFocusListenerTask org.fest.swing.core.ComponentAddFocusListenerTask$1 org.fest.swing.core.ComponentLookupScope org.fest.swing.core.ComponentRemoveFocusListenerTask org.fest.swing.core.ComponentRemoveFocusListenerTask$1 org.fest.swing.core.EmergencyAbortListener org.fest.swing.core.EventMode org.fest.swing.core.FinderDelegate org.fest.swing.core.FocusMonitor org.fest.swing.core.FocusOwnerFinder org.fest.swing.core.InputEventGenerators org.fest.swing.core.InputModifiers org.fest.swing.core.KeyPressInfo org.fest.swing.core.MouseButton org.fest.swing.core.MouseClickInfo org.fest.swing.core.NameAndTypeMatcher org.fest.swing.core.NameMatcher org.fest.swing.core.RobotEventGenerator org.fest.swing.core.RobotFixture org.fest.swing.core.RobotFixture$1 org.fest.swing.core.RobotFixture$2 org.fest.swing.core.RobotFixture$RobotIdleLock org.fest.swing.core.ScreenLock org.fest.swing.core.ScreenLock$ScreenLockHolder org.fest.swing.core.Settings org.fest.swing.core.SimpleFallbackExceptionHandler org.fest.swing.core.SingleComponentHierarchy org.fest.swing.core.TestTerminator org.fest.swing.core.TypeMatcher org.fest.swing.core.WindowAncestorFinder org.fest.swing.core.WindowHideAndDisposeTask org.fest.swing.core.WindowHideAndDisposeTask$1 | org.fest.swing.core.matcher org.fest.swing.driver org.fest.swing.finder org.fest.swing.fixture | java.applet java.awt java.awt.event java.io java.lang java.util javax.swing org.fest.assertions org.fest.reflect.core org.fest.reflect.field org.fest.swing.awt org.fest.swing.edt org.fest.swing.exception org.fest.swing.format org.fest.swing.hierarchy org.fest.swing.input org.fest.swing.keystroke org.fest.swing.monitor org.fest.swing.query org.fest.swing.task org.fest.swing.timing org.fest.swing.util org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 7 | 0.0% | 88.0% | 12.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.fest.swing.core.matcher.DialogByTitleMatcher org.fest.swing.core.matcher.FrameByTitleMatcher org.fest.swing.core.matcher.JButtonByTextMatcher org.fest.swing.core.matcher.JLabelByTextMatcher org.fest.swing.core.matcher.JTextComponentByTextMatcher | org.fest.swing.driver | java.awt java.lang javax.swing javax.swing.text org.fest.swing.core org.fest.swing.query org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 2 | 0.0% | 50.0% | 50.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.fest.swing.data.TableCell org.fest.swing.data.TableCell$TableCellBuilder org.fest.swing.data.TableCellByColumnName org.fest.swing.data.TableCellByColumnName$TableCellBuilder | org.fest.swing.driver org.fest.swing.fixture | java.lang org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 30 | 3.0% | 97.0% | 1.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.driver.AbstractJTableCellWriter org.fest.swing.driver.BaseValueReader org.fest.swing.driver.ContainerDriver org.fest.swing.driver.JScrollBarLocationStrategy org.fest.swing.driver.JSliderLocation$JSliderLocationQueryStrategy org.fest.swing.driver.JSpinnerSetValueTaskTemplate org.fest.swing.driver.MultipleSelectionTemplate org.fest.swing.driver.WindowLikeContainerDriver | org.fest.swing.driver.AbstractButtonClickTask org.fest.swing.driver.AbstractButtonClickTask$1 org.fest.swing.driver.AbstractButtonDriver org.fest.swing.driver.Actions org.fest.swing.driver.BasicJComboBoxCellReader org.fest.swing.driver.BasicJListCellReader org.fest.swing.driver.BasicJTableCellReader org.fest.swing.driver.BasicJTableCellWriter org.fest.swing.driver.BasicJTreeCellReader org.fest.swing.driver.CommonValidations org.fest.swing.driver.ComponentAccessibleActionQuery org.fest.swing.driver.ComponentAccessibleActionQuery$1 org.fest.swing.driver.ComponentBoundsQuery org.fest.swing.driver.ComponentBoundsQuery$1 org.fest.swing.driver.ComponentDriver org.fest.swing.driver.ComponentEnabledCondition org.fest.swing.driver.ComponentLocationQuery org.fest.swing.driver.ComponentLocationQuery$1 org.fest.swing.driver.ComponentMoveTask org.fest.swing.driver.ComponentMoveTask$1 org.fest.swing.driver.ComponentPerformDefaultAccessibleActionTask org.fest.swing.driver.ComponentPerformDefaultAccessibleActionTask$1 org.fest.swing.driver.ContainerMoveLocationQuery org.fest.swing.driver.ContainerMoveLocationQuery$1 org.fest.swing.driver.ContainerResizeLocationQuery org.fest.swing.driver.ContainerResizeLocationQuery$1 org.fest.swing.driver.DialogDriver org.fest.swing.driver.DialogModalQuery org.fest.swing.driver.DialogModalQuery$1 org.fest.swing.driver.DragAndDrop org.fest.swing.driver.FrameDriver org.fest.swing.driver.HorizontalJScrollBarLocationStrategy org.fest.swing.driver.JComboBoxCellRendererQuery org.fest.swing.driver.JComboBoxCellRendererQuery$1 org.fest.swing.driver.JComboBoxDriver org.fest.swing.driver.JComboBoxDropDownVisibleQuery org.fest.swing.driver.JComboBoxDropDownVisibleQuery$1 org.fest.swing.driver.JComboBoxEditableQuery org.fest.swing.driver.JComboBoxEditableQuery$1 org.fest.swing.driver.JComboBoxEditorAccessibleQuery org.fest.swing.driver.JComboBoxEditorAccessibleQuery$1 org.fest.swing.driver.JComboBoxEditorQuery org.fest.swing.driver.JComboBoxEditorQuery$1 org.fest.swing.driver.JComboBoxItemAtIndexQuery org.fest.swing.driver.JComboBoxItemAtIndexQuery$1 org.fest.swing.driver.JComboBoxItemCountQuery org.fest.swing.driver.JComboBoxItemCountQuery$1 org.fest.swing.driver.JComboBoxSelectItemAtIndexTask org.fest.swing.driver.JComboBoxSelectItemAtIndexTask$1 org.fest.swing.driver.JComboBoxSetPopupVisibleTask org.fest.swing.driver.JComboBoxSetPopupVisibleTask$1 org.fest.swing.driver.JComponentDriver org.fest.swing.driver.JComponentKeyStrokesForActionQuery org.fest.swing.driver.JComponentKeyStrokesForActionQuery$1 org.fest.swing.driver.JComponentOriginQuery org.fest.swing.driver.JComponentOriginQuery$1 org.fest.swing.driver.JComponentScrollRectToVisibleTask org.fest.swing.driver.JComponentScrollRectToVisibleTask$1 org.fest.swing.driver.JFileChooserApproveButtonTextQuery org.fest.swing.driver.JFileChooserApproveButtonTextQuery$1 org.fest.swing.driver.JFileChooserCancelButtonTextQuery org.fest.swing.driver.JFileChooserCancelButtonTextQuery$JFileChooserCancelButtonTextGuiQuery org.fest.swing.driver.JFileChooserDriver org.fest.swing.driver.JFileChooserFileSelectionModeQuery org.fest.swing.driver.JFileChooserFileSelectionModeQuery$1 org.fest.swing.driver.JFileChooserSelectFileTask org.fest.swing.driver.JFileChooserSelectFileTask$1 org.fest.swing.driver.JFileChooserSetCurrentDirectoryTask org.fest.swing.driver.JFileChooserSetCurrentDirectoryTask$1 org.fest.swing.driver.JInternalFrameAction org.fest.swing.driver.JInternalFrameClosableQuery org.fest.swing.driver.JInternalFrameClosableQuery$1 org.fest.swing.driver.JInternalFrameCloseTask org.fest.swing.driver.JInternalFrameCloseTask$1 org.fest.swing.driver.JInternalFrameDesktopIconQuery org.fest.swing.driver.JInternalFrameDesktopIconQuery$1 org.fest.swing.driver.JInternalFrameDriver org.fest.swing.driver.JInternalFrameIconQuery org.fest.swing.driver.JInternalFrameIconQuery$1 org.fest.swing.driver.JInternalFrameIconifiableQuery org.fest.swing.driver.JInternalFrameIconifiableQuery$1 org.fest.swing.driver.JInternalFrameMaximizableQuery org.fest.swing.driver.JInternalFrameMaximizableQuery$1 org.fest.swing.driver.JInternalFrameMoveToBackTask org.fest.swing.driver.JInternalFrameMoveToBackTask$1 org.fest.swing.driver.JInternalFrameMoveToFrontTask org.fest.swing.driver.JInternalFrameMoveToFrontTask$1 org.fest.swing.driver.JInternalFrameSetIconTask org.fest.swing.driver.JInternalFrameSetIconTask$1 org.fest.swing.driver.JInternalFrameSetMaximumTask org.fest.swing.driver.JInternalFrameSetMaximumTask$1 org.fest.swing.driver.JLabelDriver org.fest.swing.driver.JListCellBoundsQuery org.fest.swing.driver.JListCellBoundsQuery$1 org.fest.swing.driver.JListCellRendererQuery org.fest.swing.driver.JListCellRendererQuery$1 org.fest.swing.driver.JListDriver org.fest.swing.driver.JListDriver$1 org.fest.swing.driver.JListDriver$2 org.fest.swing.driver.JListElementAtIndexQuery org.fest.swing.driver.JListElementAtIndexQuery$1 org.fest.swing.driver.JListElementCountQuery org.fest.swing.driver.JListElementCountQuery$1 org.fest.swing.driver.JListIsSelectedIndexQuery org.fest.swing.driver.JListIsSelectedIndexQuery$1 org.fest.swing.driver.JListLocation org.fest.swing.driver.JListSelectedIndexQuery org.fest.swing.driver.JListSelectedIndexQuery$1 org.fest.swing.driver.JListSelectedIndicesQuery org.fest.swing.driver.JListSelectedIndicesQuery$1 org.fest.swing.driver.JMenuItemDriver org.fest.swing.driver.JMenuItemLocation org.fest.swing.driver.JMenuItemMatcher org.fest.swing.driver.JOptionPaneDriver org.fest.swing.driver.JOptionPaneMessageQuery org.fest.swing.driver.JOptionPaneMessageQuery$1 org.fest.swing.driver.JOptionPaneMessageTypeQuery org.fest.swing.driver.JOptionPaneMessageTypeQuery$1 org.fest.swing.driver.JOptionPaneMessageTypes org.fest.swing.driver.JOptionPaneOptionsQuery org.fest.swing.driver.JOptionPaneOptionsQuery$1 org.fest.swing.driver.JOptionPaneTitleQuery org.fest.swing.driver.JOptionPaneTitleQuery$1 org.fest.swing.driver.JPopupMenuDriver org.fest.swing.driver.JPopupMenuElementsQuery org.fest.swing.driver.JPopupMenuElementsQuery$1 org.fest.swing.driver.JScrollBarBlockIncrementQuery org.fest.swing.driver.JScrollBarBlockIncrementQuery$1 org.fest.swing.driver.JScrollBarDriver org.fest.swing.driver.JScrollBarLocation org.fest.swing.driver.JScrollBarOrientationQuery org.fest.swing.driver.JScrollBarOrientationQuery$1 org.fest.swing.driver.JScrollBarSetValueTask org.fest.swing.driver.JScrollBarSetValueTask$1 org.fest.swing.driver.JScrollBarUnitIncrementQuery org.fest.swing.driver.JScrollBarUnitIncrementQuery$1 org.fest.swing.driver.JScrollBarValueQuery org.fest.swing.driver.JScrollBarValueQuery$1 org.fest.swing.driver.JScrollBarValueRangeQuery org.fest.swing.driver.JScrollBarValueRangeQuery$1 org.fest.swing.driver.JScrollPaneDriver org.fest.swing.driver.JScrollPaneDriver$1 org.fest.swing.driver.JScrollPaneDriver$2 org.fest.swing.driver.JSliderDriver org.fest.swing.driver.JSliderLocation org.fest.swing.driver.JSliderLocation$1 org.fest.swing.driver.JSliderLocation$2 org.fest.swing.driver.JSliderMaximumQuery org.fest.swing.driver.JSliderMaximumQuery$1 org.fest.swing.driver.JSliderMinimumQuery org.fest.swing.driver.JSliderMinimumQuery$1 org.fest.swing.driver.JSliderOrientationQuery org.fest.swing.driver.JSliderOrientationQuery$1 org.fest.swing.driver.JSliderSetValueTask org.fest.swing.driver.JSliderSetValueTask$1 org.fest.swing.driver.JSliderValueQuery org.fest.swing.driver.JSliderValueQuery$1 org.fest.swing.driver.JSliderValueRangeQuery org.fest.swing.driver.JSliderValueRangeQuery$1 org.fest.swing.driver.JSpinnerCommitEditTask org.fest.swing.driver.JSpinnerCommitEditTask$1 org.fest.swing.driver.JSpinnerDecrementValueTask org.fest.swing.driver.JSpinnerDecrementValueTask$1 org.fest.swing.driver.JSpinnerDriver org.fest.swing.driver.JSpinnerIncrementValueTask org.fest.swing.driver.JSpinnerIncrementValueTask$1 org.fest.swing.driver.JSpinnerSetValueTask org.fest.swing.driver.JSpinnerSetValueTask$1 org.fest.swing.driver.JSpinnerValueQuery org.fest.swing.driver.JSpinnerValueQuery$1 org.fest.swing.driver.JSplitPaneDriver org.fest.swing.driver.JSplitPaneSetDividerLocationTask org.fest.swing.driver.JSplitPaneSetDividerLocationTask$1 org.fest.swing.driver.JSplitPaneSizeAndDividerLocation org.fest.swing.driver.JSplitPaneSizeAndDividerLocationQuery org.fest.swing.driver.JSplitPaneSizeAndDividerLocationQuery$1 org.fest.swing.driver.JTabbedPaneDriver org.fest.swing.driver.JTabbedPaneLocation org.fest.swing.driver.JTabbedPaneSelectTabTask org.fest.swing.driver.JTabbedPaneSelectTabTask$1 org.fest.swing.driver.JTabbedPaneTabBoundsQuery org.fest.swing.driver.JTabbedPaneTabBoundsQuery$1 org.fest.swing.driver.JTabbedPaneTabCountQuery org.fest.swing.driver.JTabbedPaneTabCountQuery$1 org.fest.swing.driver.JTabbedPaneTabIndexQuery org.fest.swing.driver.JTabbedPaneTabIndexQuery$1 org.fest.swing.driver.JTabbedPaneTabTitlesQuery org.fest.swing.driver.JTabbedPaneTabTitlesQuery$1 org.fest.swing.driver.JTableCancelCellEditingTask org.fest.swing.driver.JTableCancelCellEditingTask$1 org.fest.swing.driver.JTableCellEditableQuery org.fest.swing.driver.JTableCellEditableQuery$1 org.fest.swing.driver.JTableCellEditorQuery org.fest.swing.driver.JTableCellEditorQuery$1 org.fest.swing.driver.JTableCellRectQuery org.fest.swing.driver.JTableCellRectQuery$1 org.fest.swing.driver.JTableCellRendererQuery org.fest.swing.driver.JTableCellRendererQuery$1 org.fest.swing.driver.JTableCellValidator org.fest.swing.driver.JTableCellValueQuery org.fest.swing.driver.JTableCellValueQuery$1 org.fest.swing.driver.JTableCheckBoxEditorCellWriter org.fest.swing.driver.JTableColumnByIdentifierQuery org.fest.swing.driver.JTableColumnByIdentifierQuery$1 org.fest.swing.driver.JTableColumnCountQuery org.fest.swing.driver.JTableColumnCountQuery$1 org.fest.swing.driver.JTableComboBoxEditorCellWriter org.fest.swing.driver.JTableDriver org.fest.swing.driver.JTableDriver$1 org.fest.swing.driver.JTableHasSelectionQuery org.fest.swing.driver.JTableHasSelectionQuery$1 org.fest.swing.driver.JTableHeaderDriver org.fest.swing.driver.JTableHeaderLocation org.fest.swing.driver.JTableHeaderQuery org.fest.swing.driver.JTableHeaderQuery$1 org.fest.swing.driver.JTableLocation org.fest.swing.driver.JTableRowCountQuery org.fest.swing.driver.JTableRowCountQuery$1 org.fest.swing.driver.JTableSelectedCellQuery org.fest.swing.driver.JTableSelectedCellQuery$1 org.fest.swing.driver.JTableSelectedColumnsQuery org.fest.swing.driver.JTableSelectedColumnsQuery$1 org.fest.swing.driver.JTableSelectedRowCountQuery org.fest.swing.driver.JTableSelectedRowCountQuery$1 org.fest.swing.driver.JTableSelectedRowsQuery org.fest.swing.driver.JTableSelectedRowsQuery$1 org.fest.swing.driver.JTableSingleRowCellSelectedQuery org.fest.swing.driver.JTableSingleRowCellSelectedQuery$1 org.fest.swing.driver.JTableTextComponentEditorCellWriter org.fest.swing.driver.JTextComponentDriver org.fest.swing.driver.JTextComponentEditableQuery org.fest.swing.driver.JTextComponentEditableQuery$1 org.fest.swing.driver.JTextComponentModelToViewQuery org.fest.swing.driver.JTextComponentModelToViewQuery$1 org.fest.swing.driver.JTextComponentSelectTextTask org.fest.swing.driver.JTextComponentSelectTextTask$1 org.fest.swing.driver.JTextComponentSelectionEndQuery org.fest.swing.driver.JTextComponentSelectionEndQuery$1 org.fest.swing.driver.JTextComponentSelectionStartQuery org.fest.swing.driver.JTextComponentSelectionStartQuery$1 org.fest.swing.driver.JTextComponentSetTextTask org.fest.swing.driver.JTextComponentSetTextTask$1 org.fest.swing.driver.JToolBarDockingSourceQuery org.fest.swing.driver.JToolBarDockingSourceQuery$1 org.fest.swing.driver.JToolBarDriver org.fest.swing.driver.JToolBarFloatableQuery org.fest.swing.driver.JToolBarFloatableQuery$1 org.fest.swing.driver.JToolBarIsFloatingQuery org.fest.swing.driver.JToolBarIsFloatingQuery$1 org.fest.swing.driver.JToolBarLocation org.fest.swing.driver.JToolBarOrientationQuery org.fest.swing.driver.JToolBarOrientationQuery$1 org.fest.swing.driver.JToolBarWindowAncestorLocationQuery org.fest.swing.driver.JToolBarWindowAncestorLocationQuery$1 org.fest.swing.driver.JTreeCellRendererQuery org.fest.swing.driver.JTreeCellRendererQuery$1 org.fest.swing.driver.JTreeChildOfPathCountQuery org.fest.swing.driver.JTreeChildOfPathCountQuery$1 org.fest.swing.driver.JTreeChildrenShowUpCondition org.fest.swing.driver.JTreeConvertValueToTextQuery org.fest.swing.driver.JTreeConvertValueToTextQuery$1 org.fest.swing.driver.JTreeDriver org.fest.swing.driver.JTreeDriver$1 org.fest.swing.driver.JTreeDriver$2 org.fest.swing.driver.JTreeEditableQuery org.fest.swing.driver.JTreeEditableQuery$1 org.fest.swing.driver.JTreeExpandPathTask org.fest.swing.driver.JTreeExpandPathTask$1 org.fest.swing.driver.JTreeExpandedPathQuery org.fest.swing.driver.JTreeExpandedPathQuery$1 org.fest.swing.driver.JTreeLocation org.fest.swing.driver.JTreeMatchingPathQuery org.fest.swing.driver.JTreeMatchingPathQuery$1 org.fest.swing.driver.JTreePathBoundsQuery org.fest.swing.driver.JTreePathBoundsQuery$1 org.fest.swing.driver.JTreePathFinder org.fest.swing.driver.JTreePathsForRowsQuery org.fest.swing.driver.JTreePathsForRowsQuery$1 org.fest.swing.driver.JTreeRowAtPointQuery org.fest.swing.driver.JTreeRowAtPointQuery$1 org.fest.swing.driver.JTreeRowBoundsQuery org.fest.swing.driver.JTreeRowBoundsQuery$1 org.fest.swing.driver.JTreeSelectionCountQuery org.fest.swing.driver.JTreeSelectionCountQuery$1 org.fest.swing.driver.JTreeSelectionPathsQuery org.fest.swing.driver.JTreeSelectionPathsQuery$1 org.fest.swing.driver.JTreeSingleRowSelectedQuery org.fest.swing.driver.JTreeSingleRowSelectedQuery$1 org.fest.swing.driver.JTreeToggleClickCountQuery org.fest.swing.driver.JTreeToggleClickCountQuery$1 org.fest.swing.driver.JTreeToggleExpandStateTask org.fest.swing.driver.JTreeToggleExpandStateTask$1 org.fest.swing.driver.JTreeUIQuery org.fest.swing.driver.JTreeUIQuery$1 org.fest.swing.driver.KeyStrokes org.fest.swing.driver.MenuElementComponentQuery org.fest.swing.driver.MenuElementComponentQuery$1 org.fest.swing.driver.ValueRange org.fest.swing.driver.VerticalJScrollBarLocationStrategy org.fest.swing.driver.WaitForComponentToShowCondition org.fest.swing.driver.WindowAndLocation org.fest.swing.driver.WindowDriver org.fest.swing.driver.WindowMoveToFrontTask org.fest.swing.driver.WindowMoveToFrontTask$1 | org.fest.swing.fixture | java.awt java.beans java.io java.lang java.text java.util javax.accessibility javax.swing javax.swing.plaf javax.swing.plaf.basic javax.swing.table javax.swing.text javax.swing.tree org.fest.assertions org.fest.reflect.core org.fest.reflect.field org.fest.reflect.method org.fest.swing.awt org.fest.swing.cell org.fest.swing.core org.fest.swing.core.matcher org.fest.swing.data org.fest.swing.edt org.fest.swing.exception org.fest.swing.format org.fest.swing.query org.fest.swing.task org.fest.swing.timing org.fest.swing.util org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 7 | 5 | 60.000004% | 42.0% | 2.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.edt.GuiAction org.fest.swing.edt.GuiQuery org.fest.swing.edt.GuiTask | org.fest.swing.edt.GuiActionRunner org.fest.swing.edt.GuiActionRunner$ActionExecutedCondition | org.fest.swing.core org.fest.swing.driver org.fest.swing.format org.fest.swing.hierarchy org.fest.swing.launcher org.fest.swing.query org.fest.swing.task | java.lang javax.swing org.fest.swing.exception org.fest.swing.timing org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 9 | 2 | 0.0% | 18.0% | 82.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.fest.swing.exception.ActionFailedException org.fest.swing.exception.ComponentLookupException org.fest.swing.exception.LocationUnavailableException org.fest.swing.exception.ScreenLockException org.fest.swing.exception.UnexpectedException org.fest.swing.exception.WaitTimedOutError | org.fest.swing.core org.fest.swing.driver org.fest.swing.edt org.fest.swing.finder org.fest.swing.fixture org.fest.swing.format org.fest.swing.input org.fest.swing.launcher org.fest.swing.timing | java.lang java.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 9 | 25.0% | 100.0% | 25.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.finder.ComponentFinderTemplate org.fest.swing.finder.WindowFinderTemplate | org.fest.swing.finder.ComponentFoundCondition org.fest.swing.finder.DialogFinder org.fest.swing.finder.FrameFinder org.fest.swing.finder.JFileChooserFinder org.fest.swing.finder.JOptionPaneFinder org.fest.swing.finder.WindowFinder | None | java.awt java.lang java.util.concurrent javax.swing org.fest.swing.core org.fest.swing.exception org.fest.swing.fixture org.fest.swing.timing org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 17 | 37.0% | 94.0% | 31.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.fixture.CommonComponentFixture org.fest.swing.fixture.ComponentFixture org.fest.swing.fixture.ComponentFixtureExtension org.fest.swing.fixture.ContainerFixture org.fest.swing.fixture.EditableComponentFixture org.fest.swing.fixture.FocusableComponentFixture org.fest.swing.fixture.FrameLikeFixture org.fest.swing.fixture.GenericComponentFixture org.fest.swing.fixture.ItemFixture org.fest.swing.fixture.ItemGroupFixture org.fest.swing.fixture.JPopupMenuInvokerFixture org.fest.swing.fixture.KeyboardInputSimulationFixture org.fest.swing.fixture.MouseInputSimulationFixture org.fest.swing.fixture.StateVerificationFixture org.fest.swing.fixture.TextDisplayFixture org.fest.swing.fixture.TextInputFixture org.fest.swing.fixture.TwoStateButtonFixture org.fest.swing.fixture.WindowFixture org.fest.swing.fixture.WindowLikeContainerFixture | org.fest.swing.fixture.ColorFixture org.fest.swing.fixture.ComponentFixtureValidator org.fest.swing.fixture.DialogFixture org.fest.swing.fixture.FontFixture org.fest.swing.fixture.FrameFixture org.fest.swing.fixture.JButtonFixture org.fest.swing.fixture.JCheckBoxFixture org.fest.swing.fixture.JComboBoxFixture org.fest.swing.fixture.JFileChooserFixture org.fest.swing.fixture.JInternalFrameFixture org.fest.swing.fixture.JLabelFixture org.fest.swing.fixture.JListFixture org.fest.swing.fixture.JListItemFixture org.fest.swing.fixture.JMenuItemFinder org.fest.swing.fixture.JMenuItemFixture org.fest.swing.fixture.JOptionPaneFixture org.fest.swing.fixture.JPanelFixture org.fest.swing.fixture.JPopupMenuFixture org.fest.swing.fixture.JRadioButtonFixture org.fest.swing.fixture.JScrollBarFixture org.fest.swing.fixture.JScrollPaneFixture org.fest.swing.fixture.JSliderFixture org.fest.swing.fixture.JSpinnerFixture org.fest.swing.fixture.JSplitPaneFixture org.fest.swing.fixture.JTabbedPaneFixture org.fest.swing.fixture.JTableCellFixture org.fest.swing.fixture.JTableFixture org.fest.swing.fixture.JTableHeaderFixture org.fest.swing.fixture.JTextComponentFixture org.fest.swing.fixture.JToggleButtonFixture org.fest.swing.fixture.JToolBarFixture org.fest.swing.fixture.JToolBarFixture$UnfloatConstraint org.fest.swing.fixture.JTreeFixture | org.fest.swing.finder | java.awt java.io java.lang javax.swing javax.swing.table javax.swing.text org.fest.assertions org.fest.swing.cell org.fest.swing.core org.fest.swing.data org.fest.swing.driver org.fest.swing.exception org.fest.swing.format org.fest.swing.query org.fest.swing.timing org.fest.swing.util org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 4 | 14 | 14.0% | 78.0% | 8.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.format.ComponentFormatter org.fest.swing.format.ComponentFormatterTemplate | org.fest.swing.format.Formatting org.fest.swing.format.Formatting$1 org.fest.swing.format.IntEnum org.fest.swing.format.IntrospectionComponentFormatter org.fest.swing.format.JComboBoxFormatter org.fest.swing.format.JFileChooserFormatter org.fest.swing.format.JListFormatter org.fest.swing.format.JOptionPaneFormatter org.fest.swing.format.JTabbedPaneFormatter org.fest.swing.format.JTableFormatter org.fest.swing.format.JTreeFormatter org.fest.swing.format.SwingIntEnums | org.fest.swing.core org.fest.swing.driver org.fest.swing.fixture org.fest.swing.task | java.awt java.beans java.lang java.lang.reflect java.util java.util.concurrent java.util.logging javax.swing javax.swing.text javax.swing.tree org.fest.swing.edt org.fest.swing.exception org.fest.swing.query org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 12 | 10.0% | 92.0% | 2.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.hierarchy.ChildrenFinderStrategy org.fest.swing.hierarchy.ComponentHierarchy | org.fest.swing.hierarchy.ChildrenFinder org.fest.swing.hierarchy.ContainerComponentsQuery org.fest.swing.hierarchy.ContainerComponentsQuery$1 org.fest.swing.hierarchy.ExistingHierarchy org.fest.swing.hierarchy.IgnoreWindowTask org.fest.swing.hierarchy.JDesktopIconInternalFrameQuery org.fest.swing.hierarchy.JDesktopIconInternalFrameQuery$1 org.fest.swing.hierarchy.JDesktopPaneChildrenFinder org.fest.swing.hierarchy.JInternalFrameDesktopPaneQuery org.fest.swing.hierarchy.JInternalFrameDesktopPaneQuery$1 org.fest.swing.hierarchy.JMenuChildrenFinder org.fest.swing.hierarchy.NewHierarchy org.fest.swing.hierarchy.ParentFinder org.fest.swing.hierarchy.TransientWindowListener org.fest.swing.hierarchy.WindowChildrenFinder org.fest.swing.hierarchy.WindowDisposeTask org.fest.swing.hierarchy.WindowDisposeTask$1 org.fest.swing.hierarchy.WindowFilter | org.fest.swing.core | java.awt java.awt.event java.lang java.util javax.swing org.fest.swing.awt org.fest.swing.edt org.fest.swing.listener org.fest.swing.monitor org.fest.swing.query org.fest.swing.util org.fest.util |
| 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 | org.fest.swing.image.ImageException org.fest.swing.image.ScreenshotTaker | None | java.awt java.awt.image java.io java.lang java.util javax.imageio org.fest.swing.query org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 17 | 0.0% | 94.0% | 6.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.fest.swing.input.DisposalMonitor org.fest.swing.input.DisposedWindowMonitor org.fest.swing.input.DragAwareEventNormalizer org.fest.swing.input.DragAwareEventQueue org.fest.swing.input.DragDropInfo org.fest.swing.input.EventNormalizer org.fest.swing.input.InputState org.fest.swing.input.InputState$1 org.fest.swing.input.MouseInfo | org.fest.swing.core | java.awt java.awt.dnd java.awt.event java.lang java.lang.ref java.lang.reflect java.util java.util.logging javax.swing org.fest.reflect.core org.fest.reflect.exception org.fest.reflect.method org.fest.swing.awt org.fest.swing.exception org.fest.swing.listener org.fest.swing.query org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 3 | 20.0% | 75.0% | 5.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.keystroke.KeyStrokeMappingProvider | org.fest.swing.keystroke.DefaultKeyStrokeMappingProvider org.fest.swing.keystroke.KeyStrokeMap org.fest.swing.keystroke.KeyStrokeMapping org.fest.swing.keystroke.KeyStrokeMappingProvider_en | org.fest.swing.core | java.lang java.util javax.swing |
| 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.fest.swing.launcher.AppletLauncher org.fest.swing.launcher.AppletParameter org.fest.swing.launcher.AppletParameter$AppletParameterBuilder org.fest.swing.launcher.ApplicationLauncher org.fest.swing.launcher.NewAppletViewerQuery org.fest.swing.launcher.NewAppletViewerQuery$1 org.fest.swing.launcher.NewAppletViewerQuery$2 | None | java.applet java.lang java.util org.fest.reflect.core org.fest.reflect.method org.fest.swing.applet org.fest.swing.edt org.fest.swing.exception org.fest.swing.timing org.fest.swing.util org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 6 | 33.0% | 67.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.listener.EventDispatchThreadedEventListener | org.fest.swing.listener.EventDispatchThreadedEventListener$1 org.fest.swing.listener.WeakEventListener | org.fest.swing.hierarchy org.fest.swing.input org.fest.swing.monitor | java.awt java.awt.event java.lang java.lang.ref java.util javax.swing |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 14 | 0.0% | 88.0% | 12.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.fest.swing.monitor.Context org.fest.swing.monitor.ContextMonitor org.fest.swing.monitor.EventQueueMapping org.fest.swing.monitor.ProtectingTimerTask org.fest.swing.monitor.WindowAvailabilityMonitor org.fest.swing.monitor.WindowEventQueueMapping org.fest.swing.monitor.WindowMetrics org.fest.swing.monitor.WindowMonitor org.fest.swing.monitor.WindowMonitor$SingletonLazyLoader org.fest.swing.monitor.WindowStatus org.fest.swing.monitor.WindowVisibilityMonitor org.fest.swing.monitor.Windows org.fest.swing.monitor.Windows$1 | org.fest.swing.core org.fest.swing.hierarchy | java.applet java.awt java.awt.event java.lang java.lang.ref java.util java.util.logging javax.swing org.fest.reflect.core org.fest.reflect.field org.fest.swing.awt org.fest.swing.listener org.fest.swing.query org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 11 | 7 | 0.0% | 39.0% | 61.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.fest.swing.query.AbstractButtonSelectedQuery org.fest.swing.query.AbstractButtonSelectedQuery$1 org.fest.swing.query.AbstractButtonTextQuery org.fest.swing.query.AbstractButtonTextQuery$1 org.fest.swing.query.ComponentBackgroundQuery org.fest.swing.query.ComponentBackgroundQuery$1 org.fest.swing.query.ComponentEnabledQuery org.fest.swing.query.ComponentEnabledQuery$1 org.fest.swing.query.ComponentFontQuery org.fest.swing.query.ComponentFontQuery$1 org.fest.swing.query.ComponentForegroundQuery org.fest.swing.query.ComponentForegroundQuery$1 org.fest.swing.query.ComponentHasFocusQuery org.fest.swing.query.ComponentHasFocusQuery$1 org.fest.swing.query.ComponentLocationOnScreenQuery org.fest.swing.query.ComponentLocationOnScreenQuery$1 org.fest.swing.query.ComponentNameQuery org.fest.swing.query.ComponentNameQuery$1 org.fest.swing.query.ComponentParentQuery org.fest.swing.query.ComponentParentQuery$1 org.fest.swing.query.ComponentShowingQuery org.fest.swing.query.ComponentShowingQuery$1 org.fest.swing.query.ComponentSizeQuery org.fest.swing.query.ComponentSizeQuery$1 org.fest.swing.query.ComponentVisibleQuery org.fest.swing.query.ComponentVisibleQuery$1 org.fest.swing.query.ContainerInsetsQuery org.fest.swing.query.ContainerInsetsQuery$1 org.fest.swing.query.DialogTitleQuery org.fest.swing.query.DialogTitleQuery$1 org.fest.swing.query.FrameTitleQuery org.fest.swing.query.FrameTitleQuery$1 org.fest.swing.query.JComboBoxSelectedIndexQuery org.fest.swing.query.JComboBoxSelectedIndexQuery$1 org.fest.swing.query.JComboBoxSelectedItemQuery org.fest.swing.query.JComboBoxSelectedItemQuery$1 org.fest.swing.query.JComponentVisibleRectQuery org.fest.swing.query.JComponentVisibleRectQuery$1 org.fest.swing.query.JLabelTextQuery org.fest.swing.query.JLabelTextQuery$1 org.fest.swing.query.JMenuPopupMenuQuery org.fest.swing.query.JMenuPopupMenuQuery$1 org.fest.swing.query.JPopupMenuInvokerQuery org.fest.swing.query.JPopupMenuInvokerQuery$1 org.fest.swing.query.JTextComponentTextQuery org.fest.swing.query.JTextComponentTextQuery$1 org.fest.swing.query.WindowOwnedWindowsQuery org.fest.swing.query.WindowOwnedWindowsQuery$1 | org.fest.swing.awt org.fest.swing.core org.fest.swing.core.matcher org.fest.swing.driver org.fest.swing.fixture org.fest.swing.format org.fest.swing.hierarchy org.fest.swing.image org.fest.swing.input org.fest.swing.monitor org.fest.swing.task | java.awt java.lang java.util javax.swing javax.swing.text org.fest.swing.edt org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 7 | 0.0% | 78.0% | 22.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.fest.swing.task.ComponentHasFocusCondition org.fest.swing.task.ComponentRequestFocusTask org.fest.swing.task.ComponentRequestFocusTask$1 org.fest.swing.task.ComponentSetSizeTask org.fest.swing.task.ComponentSetSizeTask$1 | org.fest.swing.core org.fest.swing.driver | java.awt java.lang org.fest.swing.edt org.fest.swing.format org.fest.swing.query org.fest.swing.timing org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 7 | 5 | 33.0% | 42.0% | 25.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.fest.swing.timing.Condition | org.fest.swing.timing.Pause org.fest.swing.timing.Timeout | org.fest.swing.core org.fest.swing.driver org.fest.swing.edt org.fest.swing.finder org.fest.swing.fixture org.fest.swing.launcher org.fest.swing.task | java.lang java.util.concurrent org.fest.swing.exception org.fest.swing.util org.fest.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 7 | 6 | 0.0% | 46.0% | 54.000004% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.fest.swing.util.AWTEvents org.fest.swing.util.Arrays org.fest.swing.util.Colors org.fest.swing.util.Modifiers org.fest.swing.util.MouseEventTarget org.fest.swing.util.Pair org.fest.swing.util.Platform org.fest.swing.util.Range org.fest.swing.util.Range$From org.fest.swing.util.Range$To org.fest.swing.util.Strings org.fest.swing.util.System org.fest.swing.util.TimeoutWatch | org.fest.swing.awt org.fest.swing.core org.fest.swing.driver org.fest.swing.fixture org.fest.swing.hierarchy org.fest.swing.launcher org.fest.swing.timing | java.awt java.lang java.lang.reflect java.util org.fest.assertions org.fest.util |
| 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. |