| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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. |