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
entropy 1 1 0 0 10 0.0% 100.0% 0.0% 1
entropy.configuration 7 6 1 14 2 14.0% 12.0% 73.0% 1
entropy.configuration.parser 5 5 0 3 4 0.0% 57.0% 43.0% 1
entropy.constraintsSolver 1 1 0 4 11 0.0% 73.0% 27.000002% 1
entropy.constraintsSolver.constraint 12 12 0 3 12 0.0% 80.0% 20.0% 1
entropy.constraintsSolver.search 6 4 2 3 9 33.0% 75.0% 8.0% 1
entropy.controlLoop 5 3 2 1 20 40.0% 95.0% 35.0% 1
entropy.decision 9 8 1 2 11 11.0% 85.0% 4.0% 1
entropy.execution 10 8 2 1 6 20.0% 86.0% 6.0% 1
entropy.execution.driver 18 15 3 3 11 17.0% 79.0% 5.0% 1
entropy.monitoring 3 2 1 4 6 33.0% 60.000004% 7.0% 1
entropy.monitoring.ganglia 2 2 0 1 10 0.0% 91.0% 9.0% 1
entropy.observatory 6 4 2 4 10 33.0% 71.0% 5.0% 1
entropy.plan 15 12 3 7 12 20.0% 63.0% 17.0% 1
entropy.plan.action 9 7 2 4 3 22.0% 43.0% 35.0% 1
entropy.plan.graph 4 4 0 1 4 0.0% 80.0% 20.0% 1
entropy.tool 2 2 0 7 5 0.0% 42.0% 58.0% 1

Packages

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

entropy

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 10 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None entropy.Entropy
None entropy.controlLoop
entropy.decision
entropy.execution.driver
entropy.monitoring
entropy.observatory
entropy.plan
entropy.tool
java.io
java.lang
org.apache.log4j

entropy.configuration

Afferent Couplings Efferent Couplings Abstractness Instability Distance
14 2 14.0% 12.0% 73.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
entropy.configuration.ManagedElement
entropy.configuration.Configuration
entropy.configuration.Lease
entropy.configuration.ManagedElementComparator
entropy.configuration.ManagedElementSet
entropy.configuration.Node
entropy.configuration.VirtualMachine
entropy.configuration.parser
entropy.constraintsSolver
entropy.constraintsSolver.constraint
entropy.constraintsSolver.search
entropy.controlLoop
entropy.decision
entropy.execution.driver
entropy.monitoring
entropy.monitoring.ganglia
entropy.observatory
entropy.plan
entropy.plan.action
entropy.plan.graph
entropy.tool
java.lang
java.util

entropy.configuration.parser

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 4 0.0% 57.0% 43.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None entropy.configuration.parser.ConfigurationParser
entropy.configuration.parser.LeaseParser
entropy.configuration.parser.NodeParser
entropy.configuration.parser.ParseException
entropy.configuration.parser.VirtualMachineParser
entropy.controlLoop
entropy.observatory
entropy.tool
entropy.configuration
java.io
java.lang
java.util

entropy.constraintsSolver

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 11 0.0% 73.0% 27.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None entropy.constraintsSolver.ChocoSolver
entropy.constraintsSolver.constraint
entropy.constraintsSolver.search
entropy.decision
entropy.plan
choco
choco.integer
choco.integer.var
choco.search
choco.util
entropy.configuration
entropy.constraintsSolver.constraint
entropy.constraintsSolver.search
java.lang
java.util
org.apache.log4j

entropy.constraintsSolver.constraint

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 12 0.0% 80.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None entropy.constraintsSolver.constraint.AdvancedBooleanChanneling
entropy.constraintsSolver.constraint.AtMostNValue
entropy.constraintsSolver.constraint.InformedBin
entropy.constraintsSolver.constraint.InformedBinComparator
entropy.constraintsSolver.constraint.IntKnapsackConstraint
entropy.constraintsSolver.constraint.LBPdyn
entropy.constraintsSolver.constraint.MinimizeReconfigurationCost
entropy.constraintsSolver.constraint.MinimizeReorganizationCost
entropy.constraintsSolver.constraint.Partition
entropy.constraintsSolver.constraint.SymetryBreakingVMPP
entropy.constraintsSolver.constraint.SymetryBreakingVMRP
entropy.constraintsSolver.constraint.Util
entropy.constraintsSolver
entropy.decision
entropy.plan
choco
choco.integer
choco.integer.constraints
choco.integer.var
choco.mem
choco.util
entropy.configuration
entropy.constraintsSolver
entropy.plan
gnu.trove
java.lang
java.util

entropy.constraintsSolver.search

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 9 33.0% 75.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
entropy.constraintsSolver.search.NodeSelector
entropy.constraintsSolver.search.VirtualMachineSelector
entropy.constraintsSolver.search.BiggestUnassignedVirtualMachine
entropy.constraintsSolver.search.BiggestVirtualMachinesFirst
entropy.constraintsSolver.search.BusiestNode
entropy.constraintsSolver.search.StayFirstNodeSelector
entropy.constraintsSolver
entropy.decision
entropy.plan
choco
choco.integer
choco.integer.search
choco.integer.var
choco.mem
entropy.configuration
entropy.constraintsSolver
java.lang
java.util

entropy.controlLoop

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 20 40.0% 95.0% 35.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
entropy.controlLoop.ControlLoop
entropy.controlLoop.ControlLoopMBean
entropy.controlLoop.ControlLoopFactory
entropy.controlLoop.DynamicConsolidation
entropy.controlLoop.DynamicLeaseManagement
entropy
entropy.configuration
entropy.configuration.parser
entropy.decision
entropy.execution
entropy.execution.driver
entropy.monitoring
entropy.observatory
entropy.plan
entropy.tool
java.io
java.lang
java.lang.management
java.net
java.rmi.registry
java.text
java.util
javax.management
javax.management.remote
org.apache.log4j
org.xml.sax

entropy.decision

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 11 11.0% 85.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
entropy.decision.DecisionModule
entropy.decision.AssignmentException
entropy.decision.ConfigurationChecker
entropy.decision.DecisionModuleFactory
entropy.decision.FirstFitPlacement
entropy.decision.FirstFitRunningLeaseSelector
entropy.decision.RunningLeaseSelectorProblem
entropy.decision.VirtualMachinesAssignmentProblem
entropy.decision.VirtualMachinesPackingProblem
entropy
entropy.controlLoop
choco
choco.integer
entropy.configuration
entropy.constraintsSolver
entropy.constraintsSolver.constraint
entropy.constraintsSolver.search
entropy.observatory
entropy.tool
java.lang
java.util
org.apache.log4j

entropy.execution

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 20.0% 86.0% 6.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
entropy.execution.DriverExecutor
entropy.execution.MultipleDriverExecutor
entropy.execution.ParallelDriversExecutor
entropy.execution.ParallelDriversExecutor$1
entropy.execution.ParallelExecution
entropy.execution.ReconfigurationExecuter
entropy.execution.SequentialDriversExecutor
entropy.execution.ShiftedParallelDriversExecutor
entropy.execution.ShiftedParallelDriversExecutor$1
entropy.execution.SingleDriverExecutor
entropy.controlLoop
entropy.execution.driver
entropy.observatory
entropy.plan
java.lang
java.util
org.apache.log4j

entropy.execution.driver

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 11 17.0% 79.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
entropy.execution.driver.Driver
entropy.execution.driver.SSHDriver
entropy.execution.driver.XenAPIDriver
entropy.execution.driver.DriverException
entropy.execution.driver.DriverFactory
entropy.execution.driver.DriverFactoryException
entropy.execution.driver.SSHExec
entropy.execution.driver.SSHMigration
entropy.execution.driver.SSHResume
entropy.execution.driver.SSHRun
entropy.execution.driver.SSHShutdown
entropy.execution.driver.SSHStop
entropy.execution.driver.WoLStartup
entropy.execution.driver.XenClientException
entropy.execution.driver.XenGuestMigration
entropy.execution.driver.XenGuestResume
entropy.execution.driver.XenGuestSuspend
entropy.execution.driver.XenRpcClient
entropy
entropy.controlLoop
entropy.execution
com.jcraft.jsch
entropy.configuration
entropy.plan
entropy.plan.action
entropy.tool
java.io
java.lang
java.net
java.util
org.apache.xmlrpc
org.apache.xmlrpc.client

entropy.monitoring

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 6 33.0% 60.000004% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
entropy.monitoring.ConfigurationAdapter
entropy.monitoring.ConfigurationAdapterFactory
entropy.monitoring.MonitoringException
entropy
entropy.controlLoop
entropy.monitoring.ganglia
entropy.observatory
entropy.configuration
entropy.monitoring.ganglia
entropy.tool
java.io
java.lang
java.util

entropy.monitoring.ganglia

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 10 0.0% 91.0% 9.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None entropy.monitoring.ganglia.GangliaConfigurationAdapter
entropy.monitoring.ganglia.GangliaMetaXMLParser
entropy.monitoring
entropy.configuration
entropy.monitoring
java.io
java.lang
java.net
java.util
javax.xml.parsers
org.apache.log4j
org.xml.sax
org.xml.sax.helpers

entropy.observatory

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 10 33.0% 71.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
entropy.observatory.LeasesManager
entropy.observatory.ObservatoryListener
entropy.observatory.FifoLeasesManager
entropy.observatory.Observations
entropy.observatory.Observatory
entropy.observatory.SuspendRecorder
entropy
entropy.controlLoop
entropy.decision
entropy.execution
entropy.configuration
entropy.configuration.parser
entropy.monitoring
entropy.plan
entropy.plan.action
entropy.tool
java.io
java.lang
java.util
org.apache.log4j

entropy.plan

Afferent Couplings Efferent Couplings Abstractness Instability Distance
7 12 20.0% 63.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
entropy.plan.Action
entropy.plan.Plan
entropy.plan.ReconfigurationPlanCost
entropy.plan.ActionsPool
entropy.plan.ActionsPoolAppendingException
entropy.plan.ActionsSequence
entropy.plan.DefaultPlanner
entropy.plan.ImpactCost
entropy.plan.LeasePlanner
entropy.plan.PlanFactory
entropy.plan.PlannificationException
entropy.plan.ReconfigurationPlan
entropy.plan.ReorganizationCost
entropy.plan.ReorganizationProblem
entropy.plan.VirtualMachinesReplacementProblem
entropy
entropy.constraintsSolver.constraint
entropy.controlLoop
entropy.execution
entropy.execution.driver
entropy.observatory
entropy.plan.action
choco
choco.integer
entropy.configuration
entropy.constraintsSolver
entropy.constraintsSolver.constraint
entropy.constraintsSolver.search
entropy.plan.action
entropy.plan.graph
entropy.tool
java.lang
java.util
org.apache.log4j

entropy.plan.action

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 3 22.0% 43.0% 35.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
entropy.plan.action.NodeAction
entropy.plan.action.VirtualMachineAction
entropy.plan.action.Migration
entropy.plan.action.Resume
entropy.plan.action.Run
entropy.plan.action.Shutdown
entropy.plan.action.Startup
entropy.plan.action.Stop
entropy.plan.action.Suspend
entropy.execution.driver
entropy.observatory
entropy.plan
entropy.plan.graph
entropy.configuration
entropy.plan
java.lang

entropy.plan.graph

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 0.0% 80.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None entropy.plan.graph.Edge
entropy.plan.graph.EdgeComparator
entropy.plan.graph.Farm
entropy.plan.graph.ReconfigurationGraph
entropy.plan
entropy.configuration
entropy.plan.action
java.lang
java.util

entropy.tool

Afferent Couplings Efferent Couplings Abstractness Instability Distance
7 5 0.0% 42.0% 58.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None entropy.tool.BenchRJSP
entropy.tool.EntropyProperties
entropy
entropy.controlLoop
entropy.decision
entropy.execution.driver
entropy.monitoring
entropy.observatory
entropy.plan
entropy.configuration
entropy.configuration.parser
java.io
java.lang
java.util

Cycles

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

Package Package Dependencies
entropy entropy.execution.driver
entropy.plan
entropy.plan.graph
entropy.plan.action
entropy.plan
entropy.constraintsSolver entropy.constraintsSolver.constraint
entropy.constraintsSolver
entropy.constraintsSolver.constraint entropy.constraintsSolver
entropy.constraintsSolver.constraint
entropy.constraintsSolver.search entropy.constraintsSolver
entropy.constraintsSolver.constraint
entropy.constraintsSolver
entropy.controlLoop entropy.execution
entropy.execution.driver
entropy.plan
entropy.plan.graph
entropy.plan.action
entropy.plan
entropy.decision entropy.constraintsSolver.constraint
entropy.constraintsSolver
entropy.constraintsSolver.constraint
entropy.execution entropy.execution.driver
entropy.plan
entropy.plan.graph
entropy.plan.action
entropy.plan
entropy.execution.driver entropy.plan
entropy.plan.graph
entropy.plan.action
entropy.plan
entropy.monitoring entropy.monitoring.ganglia
entropy.monitoring
entropy.monitoring.ganglia entropy.monitoring
entropy.monitoring.ganglia
entropy.observatory entropy.plan
entropy.plan.graph
entropy.plan.action
entropy.plan
entropy.plan entropy.plan.graph
entropy.plan.action
entropy.plan
entropy.plan.action entropy.plan
entropy.plan.graph
entropy.plan.action
entropy.plan.graph entropy.plan.action
entropy.plan
entropy.plan.graph

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.