Metric Results

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

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

Summary

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

Package TC CC AC Ca Ce A I D V
info.magnolia.security.app 1 1 0 0 7 0.0% 100.0% 0.0% 1
info.magnolia.security.app.action 21 19 2 1 29 10.0% 97.0% 6.0% 1
info.magnolia.security.app.action.availability 3 3 0 0 13 0.0% 100.0% 0.0% 1
info.magnolia.security.app.column 2 2 0 0 7 0.0% 100.0% 0.0% 1
info.magnolia.security.app.container 4 4 0 1 11 0.0% 92.0% 8.0% 1
info.magnolia.security.app.dialog.action 14 14 0 0 25 0.0% 100.0% 0.0% 1
info.magnolia.security.app.dialog.field 37 33 4 4 33 11.0% 89.0% 0.0% 1
info.magnolia.security.app.dialog.field.property 2 2 0 1 8 0.0% 89.0% 11.0% 1
info.magnolia.security.app.dialog.field.validator 11 11 0 1 20 0.0% 95.0% 5.0% 1
info.magnolia.security.app.tools 4 2 2 4 16 50.0% 80.0% 30.000002% 1
info.magnolia.security.app.tools.action 2 2 0 0 3 0.0% 100.0% 0.0% 1
info.magnolia.security.app.tools.group 3 3 0 0 12 0.0% 100.0% 0.0% 1
info.magnolia.security.app.tools.permission 5 5 0 0 14 0.0% 100.0% 0.0% 1
info.magnolia.security.app.tools.role 1 1 0 0 12 0.0% 100.0% 0.0% 1
info.magnolia.security.app.util 2 2 0 3 7 0.0% 70.0% 30.000002% 1
info.magnolia.security.setup 9 9 0 0 20 0.0% 100.0% 0.0% 1
info.magnolia.security.setup.migration 1 1 0 0 11 0.0% 100.0% 0.0% 1

Packages

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

info.magnolia.security.app

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.app.SecurityApp
None info.magnolia.objectfactory
info.magnolia.ui.api.app
info.magnolia.ui.api.location
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.browser
info.magnolia.ui.vaadin.integration.contentconnector
java.util

info.magnolia.security.app.action

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 29 10.0% 97.0% 6.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.security.app.action.AbstractDeleteGroupOrRoleAction
info.magnolia.security.app.action.AbstractRoleDialogAction
info.magnolia.security.app.action.AbstractDeleteGroupOrRoleAction$1
info.magnolia.security.app.action.DeleteEmptyFolderAction
info.magnolia.security.app.action.DeleteEmptyFolderAction$1
info.magnolia.security.app.action.DeleteEmptyFolderActionDefinition
info.magnolia.security.app.action.DeleteFolderAction
info.magnolia.security.app.action.DeleteFolderAction$1
info.magnolia.security.app.action.DeleteFolderAction$2
info.magnolia.security.app.action.DeleteFolderAction$3
info.magnolia.security.app.action.DeleteFolderActionDefinition
info.magnolia.security.app.action.DeleteGroupAction
info.magnolia.security.app.action.DeleteGroupActionDefinition
info.magnolia.security.app.action.DeleteRoleAction
info.magnolia.security.app.action.DeleteRoleActionDefinition
info.magnolia.security.app.action.OpenAddRoleDialogAction
info.magnolia.security.app.action.OpenAddRoleDialogAction$1
info.magnolia.security.app.action.OpenAddRoleDialogActionDefinition
info.magnolia.security.app.action.OpenEditRoleDialogAction
info.magnolia.security.app.action.OpenEditRoleDialogAction$1
info.magnolia.security.app.action.OpenEditRoleDialogActionDefinition
info.magnolia.security.setup
info.magnolia.cms.security
info.magnolia.commands
info.magnolia.context
info.magnolia.event
info.magnolia.i18nsystem
info.magnolia.jcr.node2bean
info.magnolia.jcr.util
info.magnolia.objectfactory
info.magnolia.repository
info.magnolia.security.app.dialog.field
info.magnolia.ui.api.action
info.magnolia.ui.api.context
info.magnolia.ui.api.event
info.magnolia.ui.api.overlay
info.magnolia.ui.dialog
info.magnolia.ui.dialog.callback
info.magnolia.ui.dialog.definition
info.magnolia.ui.dialog.formdialog
info.magnolia.ui.form.definition
info.magnolia.ui.form.field.definition
info.magnolia.ui.framework.action
info.magnolia.ui.vaadin.integration.contentconnector
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.vaadin.overlay
java.lang
java.util
javax.jcr
org.apache.commons.lang3
org.slf4j

info.magnolia.security.app.action.availability

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 13 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.app.action.availability.IsNotCurrentUserRule
info.magnolia.security.app.action.availability.SecurityAppAvailabilityCheckerImpl
info.magnolia.security.app.action.availability.SecurityAppWritePermissionRequiredRule
None info.magnolia.cms.security
info.magnolia.cms.security.operations
info.magnolia.context
info.magnolia.jcr.util
info.magnolia.objectfactory
info.magnolia.ui.api.availability
info.magnolia.ui.framework.availability
info.magnolia.ui.framework.availability.shorthandrules
info.magnolia.ui.vaadin.integration.contentconnector
info.magnolia.ui.vaadin.integration.jcr
java.lang
javax.jcr
org.slf4j

info.magnolia.security.app.column

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.app.column.UserNameColumnDefinition
info.magnolia.security.app.column.UserNameColumnFormatter
None com.vaadin.v7.ui
info.magnolia.jcr.util
info.magnolia.ui.workbench.column
info.magnolia.ui.workbench.column.definition
java.lang
javax.jcr
org.slf4j

info.magnolia.security.app.container

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 11 0.0% 92.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.app.container.GroupDropConstraint
info.magnolia.security.app.container.RoleDropConstraint
info.magnolia.security.app.container.SecurityDropHandler
info.magnolia.security.app.container.UserDropConstraint
info.magnolia.security.setup
com.vaadin.v7.data
com.vaadin.v7.ui
info.magnolia.jcr.util
info.magnolia.security.app.util
info.magnolia.ui.vaadin.integration.contentconnector
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.workbench.tree
info.magnolia.ui.workbench.tree.drop
java.lang
javax.jcr
org.slf4j

info.magnolia.security.app.dialog.action

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 25 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.app.dialog.action.DuplicateRoleAction
info.magnolia.security.app.dialog.action.DuplicateRoleActionDefinition
info.magnolia.security.app.dialog.action.DuplicateUserAction
info.magnolia.security.app.dialog.action.DuplicateUserActionDefinition
info.magnolia.security.app.dialog.action.RenameUsersFolderAction
info.magnolia.security.app.dialog.action.RenameUsersFolderActionDefinition
info.magnolia.security.app.dialog.action.SaveGroupDialogAction
info.magnolia.security.app.dialog.action.SaveGroupDialogActionDefinition
info.magnolia.security.app.dialog.action.SaveRoleDialogAction
info.magnolia.security.app.dialog.action.SaveRoleDialogAction$1
info.magnolia.security.app.dialog.action.SaveRoleDialogActionDefinition
info.magnolia.security.app.dialog.action.SaveUserDialogAction
info.magnolia.security.app.dialog.action.SaveUserDialogAction$1
info.magnolia.security.app.dialog.action.SaveUserDialogActionDefinition
None com.google.common.base
com.google.common.collect
com.vaadin.v7.data
info.magnolia.cms.core
info.magnolia.cms.security
info.magnolia.cms.security.operations
info.magnolia.context
info.magnolia.event
info.magnolia.jcr.util
info.magnolia.objectfactory
info.magnolia.repository
info.magnolia.security.app.dialog.field
info.magnolia.security.app.util
info.magnolia.ui.api.action
info.magnolia.ui.dialog.action
info.magnolia.ui.form
info.magnolia.ui.framework.action
info.magnolia.ui.vaadin.integration.jcr
java.lang
java.lang.reflect
java.security
java.util
javax.jcr
org.apache.commons.lang3
org.slf4j

info.magnolia.security.app.dialog.field

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 33 11.0% 89.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.security.app.dialog.field.AbstractAccessFieldFactory
info.magnolia.security.app.dialog.field.AccessControlField$PathChooserHandler
info.magnolia.security.app.dialog.field.AccessControlListField$EntryFieldFactory
info.magnolia.security.app.dialog.field.AccessControlListField$NewEntryHandler
info.magnolia.security.app.dialog.field.AccessControlList
info.magnolia.security.app.dialog.field.AccessControlList$Entry
info.magnolia.security.app.dialog.field.AccessControlList$EntryKey
info.magnolia.security.app.dialog.field.AccessControlListField
info.magnolia.security.app.dialog.field.AccessControlListField$1
info.magnolia.security.app.dialog.field.AccessControlListField$2
info.magnolia.security.app.dialog.field.AccessControlListField$3
info.magnolia.security.app.dialog.field.AccessControlListField$DefaultEntryFieldFactory
info.magnolia.security.app.dialog.field.ConditionalReadOnlyTextFieldDefinition
info.magnolia.security.app.dialog.field.ConditionalReadOnlyTextFieldFactory
info.magnolia.security.app.dialog.field.EnabledFieldDefinition
info.magnolia.security.app.dialog.field.EnabledFieldFactory
info.magnolia.security.app.dialog.field.GroupManagementFieldDefinition
info.magnolia.security.app.dialog.field.GroupManagementFieldFactory
info.magnolia.security.app.dialog.field.GroupManagementFieldFactory$1
info.magnolia.security.app.dialog.field.GroupManagementFieldFactory$Group
info.magnolia.security.app.dialog.field.RoleManagementFieldDefinition
info.magnolia.security.app.dialog.field.RoleManagementFieldFactory
info.magnolia.security.app.dialog.field.RoleManagementFieldFactory$Role
info.magnolia.security.app.dialog.field.SystemLanguagesFieldDefinition
info.magnolia.security.app.dialog.field.SystemLanguagesFieldFactory
info.magnolia.security.app.dialog.field.SystemLanguagesFieldFactory$1
info.magnolia.security.app.dialog.field.WebAccessFieldDefinition
info.magnolia.security.app.dialog.field.WebAccessFieldFactory
info.magnolia.security.app.dialog.field.WebAccessFieldFactory$1
info.magnolia.security.app.dialog.field.WebAccessFieldFactory$2
info.magnolia.security.app.dialog.field.WorkspaceAccessControlList$Entry
info.magnolia.security.app.dialog.field.WorkspaceAccessControlList$Entry$Key
info.magnolia.security.app.dialog.field.WorkspaceAccessFieldDefinition
info.magnolia.security.app.dialog.field.WorkspaceAccessFieldFactory$1
info.magnolia.security.app.dialog.field.WorkspaceAccessFieldFactory$2
info.magnolia.security.app.dialog.field.WorkspaceAccessFieldFactory$3
info.magnolia.security.app.dialog.field.WorkspaceAccessFieldFactory$4
info.magnolia.security.app.action
info.magnolia.security.app.dialog.action
info.magnolia.security.app.dialog.field.validator
info.magnolia.security.setup
com.google.common.collect
com.vaadin.ui
com.vaadin.v7.data
com.vaadin.v7.data.util
com.vaadin.v7.ui
info.magnolia.cms.core
info.magnolia.cms.security
info.magnolia.cms.util
info.magnolia.context
info.magnolia.i18nsystem
info.magnolia.icons
info.magnolia.jcr
info.magnolia.jcr.iterator
info.magnolia.jcr.predicate
info.magnolia.jcr.util
info.magnolia.objectfactory
info.magnolia.repository
info.magnolia.security.app.dialog.field.property
info.magnolia.security.app.dialog.field.validator
info.magnolia.ui.api.app
info.magnolia.ui.api.context
info.magnolia.ui.api.i18n
info.magnolia.ui.form.field.definition
info.magnolia.ui.form.field.factory
info.magnolia.ui.form.field.transformer
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.workbench.definition
java.lang
java.util
javax.jcr
org.apache.commons.lang3
org.apache.commons.lang3.text
org.slf4j

info.magnolia.security.app.dialog.field.property

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 0.0% 89.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.app.dialog.field.property.EnabledFieldTransformer
info.magnolia.security.app.dialog.field.property.ManagementFieldTransformer
info.magnolia.security.app.dialog.field
com.vaadin.v7.data
com.vaadin.v7.data.util
info.magnolia.objectfactory
info.magnolia.ui.api.i18n
info.magnolia.ui.form.field.definition
info.magnolia.ui.form.field.transformer.basic
java.lang
java.util

info.magnolia.security.app.dialog.field.validator

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 20 0.0% 95.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.app.dialog.field.validator.UniqueGroupNameValidator
info.magnolia.security.app.dialog.field.validator.UniqueGroupNameValidatorDefinition
info.magnolia.security.app.dialog.field.validator.UniqueGroupNameValidatorFactory
info.magnolia.security.app.dialog.field.validator.UniqueRoleNameValidator
info.magnolia.security.app.dialog.field.validator.UniqueRoleNameValidatorDefinition
info.magnolia.security.app.dialog.field.validator.UniqueRoleNameValidatorFactory
info.magnolia.security.app.dialog.field.validator.UniqueUserNameValidator
info.magnolia.security.app.dialog.field.validator.UniqueUserNameValidatorDefinition
info.magnolia.security.app.dialog.field.validator.UniqueUserNameValidatorFactory
info.magnolia.security.app.dialog.field.validator.WebAccessControlValidator
info.magnolia.security.app.dialog.field.validator.WorkspaceAccessControlValidator
info.magnolia.security.app.dialog.field
com.vaadin.v7.data
com.vaadin.v7.data.validator
info.magnolia.cms.core
info.magnolia.cms.security
info.magnolia.cms.security.auth
info.magnolia.cms.security.operations
info.magnolia.cms.util
info.magnolia.context
info.magnolia.security.app.dialog.field
info.magnolia.security.app.util
info.magnolia.ui.form.validator.definition
info.magnolia.ui.form.validator.factory
info.magnolia.ui.vaadin.integration.jcr
java.lang
java.security
java.text
java.util
javax.jcr
org.apache.commons.lang3
org.slf4j

info.magnolia.security.app.tools

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 16 50.0% 80.0% 30.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.security.app.tools.AbstractSecurityToolPresenter
info.magnolia.security.app.tools.SecurityToolView
info.magnolia.security.app.tools.AbstractSecurityToolPresenter$ViewOption
info.magnolia.security.app.tools.DefaultSecurityToolView
info.magnolia.security.app.tools.action
info.magnolia.security.app.tools.group
info.magnolia.security.app.tools.permission
info.magnolia.security.app.tools.role
com.vaadin.ui
com.vaadin.v7.data
com.vaadin.v7.shared.ui.label
com.vaadin.v7.ui
info.magnolia.cms.security
info.magnolia.i18nsystem
info.magnolia.ui.api.context
info.magnolia.ui.api.view
info.magnolia.ui.dialog.formdialog
info.magnolia.ui.framework.tools
info.magnolia.ui.vaadin.grid
info.magnolia.ui.vaadin.overlay
java.io
java.lang
java.util
org.slf4j

info.magnolia.security.app.tools.action

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 3 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.app.tools.action.ShowResultAction
info.magnolia.security.app.tools.action.ShowResultActionDefinition
None info.magnolia.security.app.tools
info.magnolia.ui.api.action
info.magnolia.ui.form

info.magnolia.security.app.tools.group

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 12 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.app.tools.group.GroupMemberPresenter
info.magnolia.security.app.tools.group.GroupMemberPresenter$DumpMode
info.magnolia.security.app.tools.group.GroupMemberPresenter$GroupMemberViewOption
None com.vaadin.v7.data
com.vaadin.v7.data.util
info.magnolia.cms.security
info.magnolia.i18nsystem
info.magnolia.security.app.tools
info.magnolia.ui.api.context
info.magnolia.ui.dialog.formdialog
info.magnolia.ui.framework.tools
java.lang
java.util
org.apache.commons.collections4
org.apache.commons.lang3

info.magnolia.security.app.tools.permission

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 14 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.app.tools.permission.PermissionToolPresenter
info.magnolia.security.app.tools.permission.PermissionToolPresenter$1
info.magnolia.security.app.tools.permission.PermissionToolPresenter$DumpMode
info.magnolia.security.app.tools.permission.PermissionToolPresenter$DumpType
info.magnolia.security.app.tools.permission.PermissionToolPresenter$PermissionViewOption
None com.google.common.collect
com.vaadin.v7.data
com.vaadin.v7.data.util
info.magnolia.cms.security
info.magnolia.cms.security.auth
info.magnolia.cms.util
info.magnolia.i18nsystem
info.magnolia.security.app.tools
info.magnolia.ui.api.context
info.magnolia.ui.dialog.formdialog
info.magnolia.ui.framework.tools
java.lang
java.util
org.apache.commons.lang3

info.magnolia.security.app.tools.role

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 12 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.app.tools.role.RoleAssignmentPresenter
None com.vaadin.v7.data
com.vaadin.v7.data.util
info.magnolia.cms.security
info.magnolia.i18nsystem
info.magnolia.security.app.tools
info.magnolia.ui.api.context
info.magnolia.ui.dialog.formdialog
info.magnolia.ui.framework.tools
java.lang
java.util
org.apache.commons.collections4
org.apache.commons.lang3

info.magnolia.security.app.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 7 0.0% 70.0% 30.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.app.util.AccessControlPropertyUtil
info.magnolia.security.app.util.UsersWorkspaceUtil
info.magnolia.security.app.container
info.magnolia.security.app.dialog.action
info.magnolia.security.app.dialog.field.validator
info.magnolia.cms.security
info.magnolia.cms.util
info.magnolia.jcr.util
java.lang
java.util
javax.jcr
org.apache.commons.lang3

info.magnolia.security.setup

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 20 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.security.setup.AddDuplicateAndMoveActionsToSecurityAppTask
info.magnolia.security.setup.AddDuplicateAndMoveActionsToSecurityAppTask$1
info.magnolia.security.setup.RemoveHardcodedI18nPropertiesFromSecurityAppTask
info.magnolia.security.setup.SecurityModuleVersionHandler
info.magnolia.security.setup.SecurityModuleVersionHandler$1
info.magnolia.security.setup.SecurityModuleVersionHandler$2
info.magnolia.security.setup.SecurityModuleVersionHandler$3
info.magnolia.security.setup.SecurityModuleVersionHandler$AddListAndSearchViewTask
info.magnolia.security.setup.SecurityModuleVersionHandler$DeleteFolderActionReconfigurationTask
None info.magnolia.i18nsystem.setup
info.magnolia.jcr.nodebuilder
info.magnolia.jcr.nodebuilder.task
info.magnolia.jcr.util
info.magnolia.module
info.magnolia.module.delta
info.magnolia.repository
info.magnolia.security.app.action
info.magnolia.security.app.container
info.magnolia.security.app.dialog.field
info.magnolia.ui.admincentral.dialog.action
info.magnolia.ui.admincentral.setup
info.magnolia.ui.contentapp.setup
info.magnolia.ui.contentapp.setup.for5_3
info.magnolia.ui.dialog.action
info.magnolia.ui.framework.action
info.magnolia.ui.framework.setup
java.lang
java.util
org.apache.commons.lang3

info.magnolia.security.setup.migration

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 info.magnolia.security.setup.migration.MoveAclPermissionsBetweenWorkspaces
None info.magnolia.cms.util
info.magnolia.jcr.predicate
info.magnolia.jcr.util
info.magnolia.module
info.magnolia.module.delta
info.magnolia.repository
java.lang
java.util
javax.jcr
org.apache.commons.lang3
org.slf4j

Cycles

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

Package Package Dependencies
info.magnolia.security.app.action info.magnolia.security.app.dialog.field
info.magnolia.security.app.dialog.field.validator
info.magnolia.security.app.dialog.field
info.magnolia.security.app.dialog.action info.magnolia.security.app.dialog.field
info.magnolia.security.app.dialog.field.validator
info.magnolia.security.app.dialog.field
info.magnolia.security.app.dialog.field info.magnolia.security.app.dialog.field.validator
info.magnolia.security.app.dialog.field
info.magnolia.security.app.dialog.field.validator info.magnolia.security.app.dialog.field
info.magnolia.security.app.dialog.field.validator
info.magnolia.security.setup info.magnolia.security.app.action
info.magnolia.security.app.dialog.field
info.magnolia.security.app.dialog.field.validator
info.magnolia.security.app.dialog.field

Explanation

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

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

Term Description
Number of Classes The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.
Afferent Couplings The number of other packages that depend upon classes within the package is an indicator of the package's responsibility.
Efferent Couplings The number of other packages that the classes in the package depend upon is an indicator of the package's independence.
Abstractness The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package.
Instability The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely instable package.
Distance The perpendicular distance of a package from the idealized line A + I = 1. This metric is an indicator of the package's balance between abstractness and stability. A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible.
Cycles Packages participating in a package dependency cycle are in a deadly embrace with respect to reusability and their release cycle. Package dependency cycles can be easily identified by reviewing the textual reports of dependency cycles. Once these dependency cycles have been identified with JDepend, they can be broken by employing various object-oriented techniques.