Fork me on GitHub

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
fr.paris.lutece.plugins.workflowcore.business 1 0 1 4 1 100.0% 20.0% 20.0% 1
fr.paris.lutece.plugins.workflowcore.business.action 4 2 2 3 7 50.0% 70.0% 20.0% 1
fr.paris.lutece.plugins.workflowcore.business.config 3 0 3 3 1 100.0% 25.0% 25.0% 1
fr.paris.lutece.plugins.workflowcore.business.icon 2 1 1 3 3 50.0% 50.0% 0.0% 1
fr.paris.lutece.plugins.workflowcore.business.prerequisite 4 2 2 1 2 50.0% 67.0% 17.0% 1
fr.paris.lutece.plugins.workflowcore.business.resource 10 6 4 5 9 40.0% 64.0% 4.0% 1
fr.paris.lutece.plugins.workflowcore.business.state 3 2 1 4 6 33.0% 60.000004% 7.0% 1
fr.paris.lutece.plugins.workflowcore.business.task 3 1 2 2 3 67.0% 60.000004% 27.000002% 1
fr.paris.lutece.plugins.workflowcore.business.workflow 3 2 1 4 6 33.0% 60.000004% 7.0% 1
fr.paris.lutece.plugins.workflowcore.exception 1 1 0 0 1 0.0% 100.0% 0.0% 1
fr.paris.lutece.plugins.workflowcore.service.action 4 2 2 0 6 50.0% 100.0% 50.0% 1
fr.paris.lutece.plugins.workflowcore.service.config 2 1 1 1 3 50.0% 75.0% 25.0% 1
fr.paris.lutece.plugins.workflowcore.service.icon 2 1 1 0 3 50.0% 100.0% 50.0% 1
fr.paris.lutece.plugins.workflowcore.service.prerequisite 2 0 2 0 4 100.0% 100.0% 100.0% 1
fr.paris.lutece.plugins.workflowcore.service.provider 5 2 3 0 5 60.000004% 100.0% 60.000004% 1
fr.paris.lutece.plugins.workflowcore.service.resource 3 1 2 2 4 67.0% 67.0% 33.0% 1
fr.paris.lutece.plugins.workflowcore.service.state 2 1 1 0 6 50.0% 100.0% 50.0% 1
fr.paris.lutece.plugins.workflowcore.service.task 6 1 5 4 7 83.0% 64.0% 47.0% 1
fr.paris.lutece.plugins.workflowcore.service.workflow 1 0 1 0 7 100.0% 100.0% 100.0% 1
fr.paris.lutece.plugins.workflowcore.web.task 4 0 4 0 13 100.0% 100.0% 100.0% 1

Packages

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

fr.paris.lutece.plugins.workflowcore.business

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 1 100.0% 20.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.business.IReferenceItem
None fr.paris.lutece.plugins.workflowcore.business.action
fr.paris.lutece.plugins.workflowcore.business.icon
fr.paris.lutece.plugins.workflowcore.business.state
fr.paris.lutece.plugins.workflowcore.business.workflow
java.lang

fr.paris.lutece.plugins.workflowcore.business.action

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 7 50.0% 70.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.business.action.IActionDAO
fr.paris.lutece.plugins.workflowcore.business.action.IActionStateDAO
fr.paris.lutece.plugins.workflowcore.business.action.Action
fr.paris.lutece.plugins.workflowcore.business.action.ActionFilter
fr.paris.lutece.plugins.workflowcore.business.resource
fr.paris.lutece.plugins.workflowcore.service.action
fr.paris.lutece.plugins.workflowcore.service.task
fr.paris.lutece.plugins.workflowcore.business
fr.paris.lutece.plugins.workflowcore.business.icon
fr.paris.lutece.plugins.workflowcore.business.state
fr.paris.lutece.plugins.workflowcore.business.workflow
fr.paris.lutece.portal.service.rbac
java.lang
java.util

fr.paris.lutece.plugins.workflowcore.business.config

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 1 100.0% 25.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.business.config.ITaskConfig
fr.paris.lutece.plugins.workflowcore.business.config.ITaskConfigDAO
fr.paris.lutece.plugins.workflowcore.business.config.TaskConfig
None fr.paris.lutece.plugins.workflowcore.service.config
fr.paris.lutece.plugins.workflowcore.service.task
fr.paris.lutece.plugins.workflowcore.web.task
java.lang

fr.paris.lutece.plugins.workflowcore.business.icon

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 3 50.0% 50.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.business.icon.IIconDAO
fr.paris.lutece.plugins.workflowcore.business.icon.Icon
fr.paris.lutece.plugins.workflowcore.business.action
fr.paris.lutece.plugins.workflowcore.business.state
fr.paris.lutece.plugins.workflowcore.service.icon
fr.paris.lutece.plugins.workflowcore.business
java.lang
java.util

fr.paris.lutece.plugins.workflowcore.business.prerequisite

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 50.0% 67.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.business.prerequisite.IPrerequisiteConfig
fr.paris.lutece.plugins.workflowcore.business.prerequisite.IPrerequisiteConfigDAO
fr.paris.lutece.plugins.workflowcore.business.prerequisite.DefaultPrerequisiteConfig
fr.paris.lutece.plugins.workflowcore.business.prerequisite.Prerequisite
fr.paris.lutece.plugins.workflowcore.service.prerequisite
java.io
java.lang

fr.paris.lutece.plugins.workflowcore.business.resource

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 9 40.0% 64.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.business.resource.IResourceHistoryDAO
fr.paris.lutece.plugins.workflowcore.business.resource.IResourceHistoryFactory
fr.paris.lutece.plugins.workflowcore.business.resource.IResourceUserHistoryDAO
fr.paris.lutece.plugins.workflowcore.business.resource.IResourceWorkflowDAO
fr.paris.lutece.plugins.workflowcore.business.resource.ResourceHistory
fr.paris.lutece.plugins.workflowcore.business.resource.ResourceHistoryFactory
fr.paris.lutece.plugins.workflowcore.business.resource.ResourceHistoryFilter
fr.paris.lutece.plugins.workflowcore.business.resource.ResourceUserHistory
fr.paris.lutece.plugins.workflowcore.business.resource.ResourceWorkflow
fr.paris.lutece.plugins.workflowcore.business.resource.ResourceWorkflowFilter
fr.paris.lutece.plugins.workflowcore.service.action
fr.paris.lutece.plugins.workflowcore.service.provider
fr.paris.lutece.plugins.workflowcore.service.resource
fr.paris.lutece.plugins.workflowcore.service.state
fr.paris.lutece.plugins.workflowcore.service.workflow
fr.paris.lutece.api.user
fr.paris.lutece.plugins.workflowcore.business.action
fr.paris.lutece.plugins.workflowcore.business.state
fr.paris.lutece.plugins.workflowcore.business.workflow
java.io
java.lang
java.sql
java.util
org.apache.commons.lang3

fr.paris.lutece.plugins.workflowcore.business.state

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 6 33.0% 60.000004% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.business.state.IStateDAO
fr.paris.lutece.plugins.workflowcore.business.state.State
fr.paris.lutece.plugins.workflowcore.business.state.StateFilter
fr.paris.lutece.plugins.workflowcore.business.action
fr.paris.lutece.plugins.workflowcore.business.resource
fr.paris.lutece.plugins.workflowcore.service.state
fr.paris.lutece.plugins.workflowcore.service.workflow
fr.paris.lutece.plugins.workflowcore.business
fr.paris.lutece.plugins.workflowcore.business.icon
fr.paris.lutece.plugins.workflowcore.business.workflow
fr.paris.lutece.portal.service.rbac
java.lang
java.util

fr.paris.lutece.plugins.workflowcore.business.task

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 3 67.0% 60.000004% 27.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.business.task.ITaskDAO
fr.paris.lutece.plugins.workflowcore.business.task.ITaskType
fr.paris.lutece.plugins.workflowcore.business.task.TaskType
fr.paris.lutece.plugins.workflowcore.service.task
fr.paris.lutece.plugins.workflowcore.web.task
fr.paris.lutece.plugins.workflowcore.service.task
java.lang
java.util

fr.paris.lutece.plugins.workflowcore.business.workflow

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 6 33.0% 60.000004% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.business.workflow.IWorkflowDAO
fr.paris.lutece.plugins.workflowcore.business.workflow.Workflow
fr.paris.lutece.plugins.workflowcore.business.workflow.WorkflowFilter
fr.paris.lutece.plugins.workflowcore.business.action
fr.paris.lutece.plugins.workflowcore.business.resource
fr.paris.lutece.plugins.workflowcore.business.state
fr.paris.lutece.plugins.workflowcore.service.workflow
fr.paris.lutece.plugins.workflowcore.business
fr.paris.lutece.portal.service.workgroup
java.lang
java.sql
java.util
org.apache.commons.lang3

fr.paris.lutece.plugins.workflowcore.exception

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 1 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None fr.paris.lutece.plugins.workflowcore.exception.WorkflowRuntimeException
None java.lang

fr.paris.lutece.plugins.workflowcore.service.action

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 50.0% 100.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.service.action.IActionService
fr.paris.lutece.plugins.workflowcore.service.action.IActionStateService
fr.paris.lutece.plugins.workflowcore.service.action.ActionService
fr.paris.lutece.plugins.workflowcore.service.action.ActionStateService
None fr.paris.lutece.plugins.workflowcore.business.action
fr.paris.lutece.plugins.workflowcore.business.resource
fr.paris.lutece.plugins.workflowcore.service.resource
fr.paris.lutece.plugins.workflowcore.service.task
java.lang
java.util

fr.paris.lutece.plugins.workflowcore.service.config

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 3 50.0% 75.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.service.config.ITaskConfigService
fr.paris.lutece.plugins.workflowcore.service.config.TaskConfigService
fr.paris.lutece.plugins.workflowcore.web.task
fr.paris.lutece.plugins.workflowcore.business.config
java.lang
org.apache.logging.log4j

fr.paris.lutece.plugins.workflowcore.service.icon

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 3 50.0% 100.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.service.icon.IIconService
fr.paris.lutece.plugins.workflowcore.service.icon.IconService
None fr.paris.lutece.plugins.workflowcore.business.icon
java.lang
java.util

fr.paris.lutece.plugins.workflowcore.service.prerequisite

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.service.prerequisite.IAutomaticActionPrerequisiteService
fr.paris.lutece.plugins.workflowcore.service.prerequisite.IPrerequisiteManagementService
None None fr.paris.lutece.plugins.workflowcore.business.prerequisite
java.lang
java.util
javax.servlet.http

fr.paris.lutece.plugins.workflowcore.service.provider

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 60.000004% 100.0% 60.000004%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.service.provider.AbstractProviderManager
fr.paris.lutece.plugins.workflowcore.service.provider.IMarkerProvider
fr.paris.lutece.plugins.workflowcore.service.provider.IProvider
fr.paris.lutece.plugins.workflowcore.service.provider.InfoMarker
fr.paris.lutece.plugins.workflowcore.service.provider.ProviderDescription
None fr.paris.lutece.plugins.workflowcore.business.resource
fr.paris.lutece.plugins.workflowcore.service.task
java.lang
java.util
javax.servlet.http

fr.paris.lutece.plugins.workflowcore.service.resource

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 4 67.0% 67.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.service.resource.IResourceHistoryService
fr.paris.lutece.plugins.workflowcore.service.resource.IResourceWorkflowService
fr.paris.lutece.plugins.workflowcore.service.resource.ResourceWorkflowService
fr.paris.lutece.plugins.workflowcore.service.action
fr.paris.lutece.plugins.workflowcore.service.state
fr.paris.lutece.plugins.workflowcore.business.resource
java.lang
java.util
org.apache.commons.collections

fr.paris.lutece.plugins.workflowcore.service.state

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 50.0% 100.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.service.state.IStateService
fr.paris.lutece.plugins.workflowcore.service.state.StateService
None fr.paris.lutece.plugins.workflowcore.business.resource
fr.paris.lutece.plugins.workflowcore.business.state
fr.paris.lutece.plugins.workflowcore.service.resource
java.lang
java.util
org.apache.commons.collections

fr.paris.lutece.plugins.workflowcore.service.task

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 7 83.0% 64.0% 47.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.service.task.ITask
fr.paris.lutece.plugins.workflowcore.service.task.ITaskFactory
fr.paris.lutece.plugins.workflowcore.service.task.ITaskService
fr.paris.lutece.plugins.workflowcore.service.task.SimpleTask
fr.paris.lutece.plugins.workflowcore.service.task.Task
fr.paris.lutece.plugins.workflowcore.service.task.TaskService
fr.paris.lutece.plugins.workflowcore.business.task
fr.paris.lutece.plugins.workflowcore.service.action
fr.paris.lutece.plugins.workflowcore.service.provider
fr.paris.lutece.plugins.workflowcore.web.task
fr.paris.lutece.api.user
fr.paris.lutece.plugins.workflowcore.business.action
fr.paris.lutece.plugins.workflowcore.business.config
fr.paris.lutece.plugins.workflowcore.business.task
java.lang
java.util
javax.servlet.http

fr.paris.lutece.plugins.workflowcore.service.workflow

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.service.workflow.IWorkflowService
None None fr.paris.lutece.api.user
fr.paris.lutece.plugins.workflowcore.business.resource
fr.paris.lutece.plugins.workflowcore.business.state
fr.paris.lutece.plugins.workflowcore.business.workflow
java.lang
java.util
javax.servlet.http

fr.paris.lutece.plugins.workflowcore.web.task

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 13 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
fr.paris.lutece.plugins.workflowcore.web.task.ITaskComponent
fr.paris.lutece.plugins.workflowcore.web.task.ITaskComponentManager
fr.paris.lutece.plugins.workflowcore.web.task.SimpleTaskComponent
fr.paris.lutece.plugins.workflowcore.web.task.TaskComponent
None None fr.paris.lutece.plugins.workflowcore.business.config
fr.paris.lutece.plugins.workflowcore.business.task
fr.paris.lutece.plugins.workflowcore.service.config
fr.paris.lutece.plugins.workflowcore.service.task
java.lang
java.lang.reflect
java.util
javax.servlet.http
org.apache.commons.beanutils
org.apache.commons.lang3
org.apache.logging.log4j
org.springframework.beans.factory
org.springframework.util

Cycles

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

Package Package Dependencies
fr.paris.lutece.plugins.workflowcore.business.task fr.paris.lutece.plugins.workflowcore.service.task
fr.paris.lutece.plugins.workflowcore.business.task
fr.paris.lutece.plugins.workflowcore.service.action fr.paris.lutece.plugins.workflowcore.service.task
fr.paris.lutece.plugins.workflowcore.business.task
fr.paris.lutece.plugins.workflowcore.service.task
fr.paris.lutece.plugins.workflowcore.service.provider fr.paris.lutece.plugins.workflowcore.service.task
fr.paris.lutece.plugins.workflowcore.business.task
fr.paris.lutece.plugins.workflowcore.service.task
fr.paris.lutece.plugins.workflowcore.service.task fr.paris.lutece.plugins.workflowcore.business.task
fr.paris.lutece.plugins.workflowcore.service.task
fr.paris.lutece.plugins.workflowcore.web.task fr.paris.lutece.plugins.workflowcore.service.task
fr.paris.lutece.plugins.workflowcore.business.task
fr.paris.lutece.plugins.workflowcore.service.task

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.