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 ]

PackageTCCCACCaCeAIDV
info.magnolia.ui.contentapp75232529.0%89.0%18.0%1
info.magnolia.ui.contentapp.availability110040.0%100.0%0.0%1
info.magnolia.ui.contentapp.browser1916333416.0%92.0%8.0%1
info.magnolia.ui.contentapp.browser.action6600270.0%100.0%0.0%1
info.magnolia.ui.contentapp.choosedialog110160.0%86.0%14.0%1
info.magnolia.ui.contentapp.definition4222950.0%82.0%32.0%1
info.magnolia.ui.contentapp.detail1914534026.0%93.0%19.0%1
info.magnolia.ui.contentapp.detail.action76101814.0%100.0%14.0%1
info.magnolia.ui.contentapp.field101002180.0%90.0%10.0%1
info.magnolia.ui.contentapp.movedialog74313343.0%97.0%40.0%1
info.magnolia.ui.contentapp.movedialog.action7702180.0%90.0%10.0%1
info.magnolia.ui.contentapp.movedialog.predicate440180.0%89.0%11.0%1
info.magnolia.ui.contentapp.movedialog.view2111450.0%80.0%30.000002%1
info.magnolia.ui.contentapp.setup65101217.0%100.0%17.0%1

Packages

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

info.magnolia.ui.contentapp

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
32529.0%89.0%18.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.contentapp.ContentAppDescriptor
info.magnolia.ui.contentapp.ContentSubAppView
info.magnolia.ui.contentapp.ConfiguredContentAppDescriptor
info.magnolia.ui.contentapp.ContentApp
info.magnolia.ui.contentapp.ContentApp$1
info.magnolia.ui.contentapp.ContentAppModule
info.magnolia.ui.contentapp.ContentSubAppViewImpl
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp.detail
info.magnolia.ui.contentapp.setup
com.google.inject.binder
com.google.inject.name
com.google.inject.util
com.rits.cloning
com.vaadin.ui
info.magnolia.event
info.magnolia.module
info.magnolia.objectfactory
info.magnolia.objectfactory.configuration
info.magnolia.objectfactory.guice
info.magnolia.ui.api.app
info.magnolia.ui.api.app.registry
info.magnolia.ui.api.context
info.magnolia.ui.api.view
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp.choosedialog
info.magnolia.ui.contentapp.field
info.magnolia.ui.dialog.choosedialog
info.magnolia.ui.dialog.definition
info.magnolia.ui.framework.app
info.magnolia.ui.imageprovider.definition
info.magnolia.ui.workbench.definition
java.lang
org.apache.commons.lang
org.slf4j

info.magnolia.ui.contentapp.availability

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
040.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.ui.contentapp.availability.IsNotVersionedDetailLocationRule
Noneinfo.magnolia.ui.api.app
info.magnolia.ui.api.availability
info.magnolia.ui.contentapp.detail
javax.jcr

info.magnolia.ui.contentapp.browser

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
33416.0%92.0%8.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.contentapp.browser.BrowserSubAppDescriptor
info.magnolia.ui.contentapp.browser.BrowserView
info.magnolia.ui.contentapp.browser.BrowserView$Listener
info.magnolia.ui.contentapp.browser.BrowserLocation
info.magnolia.ui.contentapp.browser.BrowserPresenter
info.magnolia.ui.contentapp.browser.BrowserPresenter$1
info.magnolia.ui.contentapp.browser.BrowserPresenter$2
info.magnolia.ui.contentapp.browser.BrowserPresenter$3
info.magnolia.ui.contentapp.browser.BrowserPresenter$4
info.magnolia.ui.contentapp.browser.BrowserPresenter$5
info.magnolia.ui.contentapp.browser.BrowserPresenter$6
info.magnolia.ui.contentapp.browser.BrowserSubApp
info.magnolia.ui.contentapp.browser.BrowserSubApp$1
info.magnolia.ui.contentapp.browser.BrowserSubApp$2
info.magnolia.ui.contentapp.browser.BrowserSubApp$3
info.magnolia.ui.contentapp.browser.BrowserSubApp$4
info.magnolia.ui.contentapp.browser.BrowserViewImpl
info.magnolia.ui.contentapp.browser.BrowserViewImpl$1
info.magnolia.ui.contentapp.browser.ConfiguredBrowserSubAppDescriptor
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.movedialog
info.magnolia.ui.contentapp.movedialog.action
com.vaadin.data
com.vaadin.server
com.vaadin.ui
info.magnolia.cms.security
info.magnolia.cms.security.operations
info.magnolia.context
info.magnolia.event
info.magnolia.jcr.util
info.magnolia.objectfactory
info.magnolia.ui.actionbar
info.magnolia.ui.actionbar.definition
info.magnolia.ui.api.action
info.magnolia.ui.api.app
info.magnolia.ui.api.availability
info.magnolia.ui.api.event
info.magnolia.ui.api.location
info.magnolia.ui.api.message
info.magnolia.ui.api.view
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.definition
info.magnolia.ui.framework.app
info.magnolia.ui.imageprovider
info.magnolia.ui.imageprovider.definition
info.magnolia.ui.vaadin.actionbar
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.workbench
info.magnolia.ui.workbench.definition
info.magnolia.ui.workbench.event
java.lang
java.util
javax.jcr
org.apache.commons.lang
org.slf4j
org.vaadin.peter.contextmenu

info.magnolia.ui.contentapp.browser.action

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0270.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.ui.contentapp.browser.action.RestoreVersionAction
info.magnolia.ui.contentapp.browser.action.RestoreVersionAction$1
info.magnolia.ui.contentapp.browser.action.RestoreVersionActionDefinition
info.magnolia.ui.contentapp.browser.action.ShowVersionsAction
info.magnolia.ui.contentapp.browser.action.ShowVersionsAction$VersionName
info.magnolia.ui.contentapp.browser.action.ShowVersionsActionDefinition
Nonecom.vaadin.data
com.vaadin.data.util
info.magnolia.cms.core.version
info.magnolia.event
info.magnolia.i18nsystem
info.magnolia.jcr.util
info.magnolia.ui.admincentral.dialog.action
info.magnolia.ui.api.action
info.magnolia.ui.api.app
info.magnolia.ui.api.context
info.magnolia.ui.api.event
info.magnolia.ui.api.location
info.magnolia.ui.contentapp.detail
info.magnolia.ui.dialog.action
info.magnolia.ui.dialog.definition
info.magnolia.ui.dialog.formdialog
info.magnolia.ui.form
info.magnolia.ui.form.definition
info.magnolia.ui.form.field.definition
info.magnolia.ui.framework.action
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.vaadin.overlay
java.lang
java.util
javax.jcr
javax.jcr.version
org.slf4j

info.magnolia.ui.contentapp.choosedialog

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
160.0%86.0%14.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.ui.contentapp.choosedialog.ContentAppChooseDialogPresenter
info.magnolia.ui.contentapp
info.magnolia.cms.i18n
info.magnolia.i18nsystem
info.magnolia.objectfactory
info.magnolia.ui.dialog.actionarea
info.magnolia.ui.dialog.choosedialog
info.magnolia.ui.form.field.factory

info.magnolia.ui.contentapp.definition

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2950.0%82.0%32.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.contentapp.definition.ContentSubAppDescriptor
info.magnolia.ui.contentapp.definition.EditorDefinition
info.magnolia.ui.contentapp.definition.ConfiguredContentSubAppDescriptor
info.magnolia.ui.contentapp.definition.ConfiguredEditorDefinition
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp.detail
info.magnolia.ui.actionbar.definition
info.magnolia.ui.api.app
info.magnolia.ui.api.app.registry
info.magnolia.ui.dialog.actionarea.definition
info.magnolia.ui.form.definition
info.magnolia.ui.imageprovider.definition
info.magnolia.ui.workbench.definition
java.lang
java.util

info.magnolia.ui.contentapp.detail

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
34026.0%93.0%19.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.contentapp.detail.DetailEditorView
info.magnolia.ui.contentapp.detail.DetailEditorView$Listener
info.magnolia.ui.contentapp.detail.DetailSubAppDescriptor
info.magnolia.ui.contentapp.detail.DetailView
info.magnolia.ui.contentapp.detail.DetailView$Listener
info.magnolia.ui.contentapp.detail.ConfiguredDetailSubAppDescriptor
info.magnolia.ui.contentapp.detail.DetailEditorPresenter
info.magnolia.ui.contentapp.detail.DetailEditorPresenter$CloseEditorAfterConfirmationShortcutListener
info.magnolia.ui.contentapp.detail.DetailEditorPresenter$CloseEditorAfterConfirmationShortcutListener$1
info.magnolia.ui.contentapp.detail.DetailEditorPresenter$CommitDialogShortcutListener
info.magnolia.ui.contentapp.detail.DetailEditorViewImpl
info.magnolia.ui.contentapp.detail.DetailLocation
info.magnolia.ui.contentapp.detail.DetailPresenter
info.magnolia.ui.contentapp.detail.DetailPresenter$1
info.magnolia.ui.contentapp.detail.DetailPresenter$2
info.magnolia.ui.contentapp.detail.DetailSubApp
info.magnolia.ui.contentapp.detail.DetailSubApp$1
info.magnolia.ui.contentapp.detail.DetailView$ViewType
info.magnolia.ui.contentapp.detail.DetailViewImpl
info.magnolia.ui.contentapp.availability
info.magnolia.ui.contentapp.browser.action
info.magnolia.ui.contentapp.detail.action
com.rits.cloning
com.vaadin.event
com.vaadin.server
com.vaadin.ui
info.magnolia.cms.core.version
info.magnolia.context
info.magnolia.event
info.magnolia.i18nsystem
info.magnolia.jcr.util
info.magnolia.objectfactory
info.magnolia.ui.actionbar
info.magnolia.ui.api.action
info.magnolia.ui.api.app
info.magnolia.ui.api.event
info.magnolia.ui.api.location
info.magnolia.ui.api.message
info.magnolia.ui.api.overlay
info.magnolia.ui.api.view
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.definition
info.magnolia.ui.dialog
info.magnolia.ui.dialog.actionarea
info.magnolia.ui.dialog.actionarea.definition
info.magnolia.ui.dialog.actionarea.view
info.magnolia.ui.dialog.formdialog
info.magnolia.ui.form
info.magnolia.ui.form.definition
info.magnolia.ui.form.field.definition
info.magnolia.ui.framework.app
info.magnolia.ui.vaadin.actionbar
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.vaadin.overlay
info.magnolia.ui.workbench.definition
java.lang
java.util
javax.jcr
javax.jcr.nodetype
javax.jcr.version
org.apache.commons.lang
org.slf4j

info.magnolia.ui.contentapp.detail.action

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01814.0%100.0%14.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.contentapp.detail.action.AbstractItemActionDefinition
info.magnolia.ui.contentapp.detail.action.CreateItemAction
info.magnolia.ui.contentapp.detail.action.CreateItemActionDefinition
info.magnolia.ui.contentapp.detail.action.EditItemAction
info.magnolia.ui.contentapp.detail.action.EditItemActionDefinition
info.magnolia.ui.contentapp.detail.action.RestorePreviousVersionAction
info.magnolia.ui.contentapp.detail.action.RestorePreviousVersionActionDefinition
Noneinfo.magnolia.cms.core
info.magnolia.cms.core.version
info.magnolia.event
info.magnolia.i18nsystem
info.magnolia.jcr.util
info.magnolia.ui.api.action
info.magnolia.ui.api.app
info.magnolia.ui.api.event
info.magnolia.ui.api.location
info.magnolia.ui.contentapp.detail
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.vaadin.overlay
java.lang
javax.jcr
javax.jcr.nodetype
javax.jcr.version
org.apache.commons.lang
org.slf4j

info.magnolia.ui.contentapp.field

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2180.0%90.0%10.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.ui.contentapp.field.LinkFieldSelectionDefinition
info.magnolia.ui.contentapp.field.LinkFieldSelectionFactory
info.magnolia.ui.contentapp.field.LinkFieldSelectionFactory$1
info.magnolia.ui.contentapp.field.TextAndContentViewField
info.magnolia.ui.contentapp.field.WorkbenchField
info.magnolia.ui.contentapp.field.WorkbenchField$1
info.magnolia.ui.contentapp.field.WorkbenchField$2
info.magnolia.ui.contentapp.field.WorkbenchField$ItemStringConverter
info.magnolia.ui.contentapp.field.WorkbenchFieldDefinition
info.magnolia.ui.contentapp.field.WorkbenchFieldFactory
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.movedialog
com.vaadin.data
com.vaadin.data.util.converter
com.vaadin.ui
info.magnolia.event
info.magnolia.jcr.util
info.magnolia.ui.form.field.definition
info.magnolia.ui.form.field.factory
info.magnolia.ui.imageprovider.definition
info.magnolia.ui.vaadin.integration
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.workbench
info.magnolia.ui.workbench.definition
info.magnolia.ui.workbench.event
java.lang
java.util
javax.jcr
org.apache.commons.lang
org.slf4j

info.magnolia.ui.contentapp.movedialog

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
13343.0%97.0%40.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.contentapp.movedialog.MoveActionCallback
info.magnolia.ui.contentapp.movedialog.MoveDialogActionAreaPresenter
info.magnolia.ui.contentapp.movedialog.MoveDialogPresenter
info.magnolia.ui.contentapp.movedialog.MoveDialogActionAreaPresenterImpl
info.magnolia.ui.contentapp.movedialog.MoveDialogPresenterImpl
info.magnolia.ui.contentapp.movedialog.MoveDialogPresenterImpl$1
info.magnolia.ui.contentapp.movedialog.MoveDialogPresenterImpl$2
info.magnolia.ui.contentapp.movedialog.action
com.rits.cloning
com.vaadin.data
com.vaadin.ui
info.magnolia.context
info.magnolia.event
info.magnolia.i18nsystem
info.magnolia.objectfactory
info.magnolia.ui.api.action
info.magnolia.ui.api.app
info.magnolia.ui.api.context
info.magnolia.ui.api.view
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp.field
info.magnolia.ui.contentapp.movedialog.action
info.magnolia.ui.contentapp.movedialog.predicate
info.magnolia.ui.contentapp.movedialog.view
info.magnolia.ui.dialog
info.magnolia.ui.dialog.actionarea
info.magnolia.ui.dialog.actionarea.definition
info.magnolia.ui.dialog.actionarea.view
info.magnolia.ui.dialog.definition
info.magnolia.ui.framework.action
info.magnolia.ui.framework.overlay
info.magnolia.ui.imageprovider.definition
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.workbench
info.magnolia.ui.workbench.column.definition
info.magnolia.ui.workbench.definition
info.magnolia.ui.workbench.tree
info.magnolia.ui.workbench.tree.drop
java.lang
java.util
javax.jcr

info.magnolia.ui.contentapp.movedialog.action

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2180.0%90.0%10.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.ui.contentapp.movedialog.action.MoveCancelledAction
info.magnolia.ui.contentapp.movedialog.action.MoveNodeAction
info.magnolia.ui.contentapp.movedialog.action.MoveNodeAction$1
info.magnolia.ui.contentapp.movedialog.action.MoveNodeActionDefinition
info.magnolia.ui.contentapp.movedialog.action.OpenMoveDialogAction
info.magnolia.ui.contentapp.movedialog.action.OpenMoveDialogAction$1
info.magnolia.ui.contentapp.movedialog.action.OpenMoveDialogActionDefinition
info.magnolia.ui.contentapp.movedialog
info.magnolia.ui.contentapp.setup
com.vaadin.data
info.magnolia.event
info.magnolia.jcr.util
info.magnolia.objectfactory
info.magnolia.ui.api.action
info.magnolia.ui.api.app
info.magnolia.ui.api.context
info.magnolia.ui.api.event
info.magnolia.ui.api.overlay
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp.movedialog
info.magnolia.ui.framework.action
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.vaadin.overlay
java.lang
java.util
javax.jcr
org.slf4j

info.magnolia.ui.contentapp.movedialog.predicate

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
180.0%89.0%11.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.ui.contentapp.movedialog.predicate.MoveAfterPossibilityPredicate
info.magnolia.ui.contentapp.movedialog.predicate.MoveBeforePossibilityPredicate
info.magnolia.ui.contentapp.movedialog.predicate.MoveInsidePossibilityPredicate
info.magnolia.ui.contentapp.movedialog.predicate.MovePossibilityPredicate
info.magnolia.ui.contentapp.movedialog
com.vaadin.data
info.magnolia.jcr.util
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.workbench.tree.drop
java.lang
java.util
javax.jcr
org.slf4j

info.magnolia.ui.contentapp.movedialog.view

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1450.0%80.0%30.000002%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.contentapp.movedialog.view.MoveDialogActionAreaView
info.magnolia.ui.contentapp.movedialog.view.MoveDialogActionAreaViewImpl
info.magnolia.ui.contentapp.movedialog
com.vaadin.ui
info.magnolia.ui.api.view
info.magnolia.ui.dialog.actionarea.view
java.lang

info.magnolia.ui.contentapp.setup

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01217.0%100.0%17.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.contentapp.setup.AbstractDataTypeMigrationTask
info.magnolia.ui.contentapp.setup.AbstractDataTypeMigrationTask$1
info.magnolia.ui.contentapp.setup.AppNodeVisitor
info.magnolia.ui.contentapp.setup.AppPropertyRemoverVisitor
info.magnolia.ui.contentapp.setup.ContentAppDescriptorMigrationTask
info.magnolia.ui.contentapp.setup.ContentAppModuleVersionHandler
Noneinfo.magnolia.importexport.postprocessors
info.magnolia.jcr.util
info.magnolia.module
info.magnolia.module.delta
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.movedialog.action
info.magnolia.ui.framework.setup
java.lang
java.util
javax.jcr
org.apache.commons.lang
org.slf4j

Cycles

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

PackagePackage Dependencies
info.magnolia.ui.contentappinfo.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.availabilityinfo.magnolia.ui.contentapp.detail
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.browserinfo.magnolia.ui.contentapp
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp.browser.actioninfo.magnolia.ui.contentapp.detail
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.detailinfo.magnolia.ui.contentapp
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.detail.actioninfo.magnolia.ui.contentapp.detail
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.movedialoginfo.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp.movedialog.actioninfo.magnolia.ui.contentapp.movedialog
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp.setupinfo.magnolia.ui.contentapp
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp

Explanation

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

The following explanations are for quick reference and are lifted directly from the original JDepend documentation.

TermDescription
Number of ClassesThe number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.
Afferent CouplingsThe number of other packages that depend upon classes within the package is an indicator of the package's responsibility.
Efferent CouplingsThe number of other packages that the classes in the package depend upon is an indicator of the package's independence.
AbstractnessThe 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.
InstabilityThe 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.
DistanceThe 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.
CyclesPackages 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.