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
edu.nwu.nemo.api211205595.0%50.0%45.0%1
edu.nwu.nemo.bll474702210.0%91.0%9.0%1
edu.nwu.nemo.core6604110.0%73.0%27.000002%1
edu.nwu.nemo.dll282802140.0%88.0%12.0%1
edu.nwu.nemo.examples1100120.0%100.0%0.0%1
edu.nwu.nemo.monitor1715201112.0%100.0%12.0%1
edu.nwu.nemo.wfl3300140.0%100.0%0.0%1

Packages

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

edu.nwu.nemo.api

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
5595.0%50.0%45.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
edu.nwu.nemo.api.IAgent
edu.nwu.nemo.api.IAgentCallback
edu.nwu.nemo.api.IAgentState
edu.nwu.nemo.api.IAgentTasks
edu.nwu.nemo.api.IGetAgent
edu.nwu.nemo.api.IGetRp
edu.nwu.nemo.api.IMemberMgr
edu.nwu.nemo.api.IMulticastAgent
edu.nwu.nemo.api.IMulticastCallback
edu.nwu.nemo.api.IPrmMulticastAgent
edu.nwu.nemo.api.IPrmMulticastCallback
edu.nwu.nemo.api.IQueryResponse
edu.nwu.nemo.api.IRp
edu.nwu.nemo.api.IRpCallback
edu.nwu.nemo.api.IStreamAgent
edu.nwu.nemo.api.IStreamAgentCallback
edu.nwu.nemo.api.IStreamMulticastAgent
edu.nwu.nemo.api.IStreamMulticastCallback
edu.nwu.nemo.api.IStreamRp
edu.nwu.nemo.api.IStreamRpCallback
edu.nwu.nemo.api.EPriority
edu.nwu.nemo.bll
edu.nwu.nemo.core
edu.nwu.nemo.dll
edu.nwu.nemo.monitor
edu.nwu.nemo.wfl
edu.nwu.multicast.api
edu.nwu.nemo.core
edu.nwu.reef.api
edu.nwu.util.api
java.lang

edu.nwu.nemo.bll

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2210.0%91.0%9.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneedu.nwu.nemo.bll.AgentCallback
edu.nwu.nemo.bll.AgentMgr
edu.nwu.nemo.bll.AgentMgr$1
edu.nwu.nemo.bll.AgentMgr$Entry
edu.nwu.nemo.bll.AgentState
edu.nwu.nemo.bll.AgentState$EAgentState
edu.nwu.nemo.bll.AgentTasks
edu.nwu.nemo.bll.AlternateMgr
edu.nwu.nemo.bll.AlternateMgr$Entry
edu.nwu.nemo.bll.BandwidthCostInfo
edu.nwu.nemo.bll.BandwidthCostManager
edu.nwu.nemo.bll.Configuration
edu.nwu.nemo.bll.CostCacheMgr
edu.nwu.nemo.bll.CostCacheMgr$Entry
edu.nwu.nemo.bll.CostOracle
edu.nwu.nemo.bll.FatNemoConfiguration
edu.nwu.nemo.bll.LatencyCostInfo
edu.nwu.nemo.bll.LatencyCostManager
edu.nwu.nemo.bll.MagellanConfiguration
edu.nwu.nemo.bll.MemberMgr
edu.nwu.nemo.bll.MulticastAgent
edu.nwu.nemo.bll.MulticastAgent$DataRequest
edu.nwu.nemo.bll.MulticastAgent$MissingData
edu.nwu.nemo.bll.MulticastCallback
edu.nwu.nemo.bll.NemoAgent
edu.nwu.nemo.bll.NemoBootstrapService
edu.nwu.nemo.bll.NemoConfiguration
edu.nwu.nemo.bll.NemoService
edu.nwu.nemo.bll.NemoService$1
edu.nwu.nemo.bll.NemoService$MulticastPublisherSession
edu.nwu.nemo.bll.NemoService$MulticastSubscriberSession
edu.nwu.nemo.bll.NiceConfiguration
edu.nwu.nemo.bll.NicePRMConfiguration
edu.nwu.nemo.bll.OverlayInfoMgr
edu.nwu.nemo.bll.PrmMulticastAgent
edu.nwu.nemo.bll.PrmMulticastCallback
edu.nwu.nemo.bll.Rp
edu.nwu.nemo.bll.RpCallback
edu.nwu.nemo.bll.SortedDistance
edu.nwu.nemo.bll.SortedDistance$Entry
edu.nwu.nemo.bll.StreamAgent
edu.nwu.nemo.bll.StreamCostOracle
edu.nwu.nemo.bll.StreamMulticastAgent
edu.nwu.nemo.bll.StreamRp
edu.nwu.nemo.bll.SynchronizedAgent
edu.nwu.nemo.bll.SynchronizedMulticastAgent
edu.nwu.nemo.bll.SynchronizedPrmMulticastAgent
edu.nwu.nemo.examples
edu.nwu.nemo.wfl
cern.colt
cern.jet.random
edu.nwu.multicast.api
edu.nwu.multicast.bll
edu.nwu.nemo.api
edu.nwu.nemo.core
edu.nwu.nemo.dll
edu.nwu.net.api
edu.nwu.net.bll
edu.nwu.net.wfl
edu.nwu.reef.api
edu.nwu.reef.dll
edu.nwu.reflect.dll
edu.nwu.stat
edu.nwu.util.api
edu.nwu.util.bll
java.io
java.lang
java.net
java.util
org.apache.commons.logging

edu.nwu.nemo.core

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
4110.0%73.0%27.000002%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneedu.nwu.nemo.core.Const
edu.nwu.nemo.core.EClusterType
edu.nwu.nemo.core.EForwardType
edu.nwu.nemo.core.ENemoPacketType
edu.nwu.nemo.core.OverlayInfo
edu.nwu.nemo.core.QueryResponse
edu.nwu.nemo.api
edu.nwu.nemo.bll
edu.nwu.nemo.dll
edu.nwu.nemo.wfl
edu.nwu.multicast.api
edu.nwu.nemo.api
edu.nwu.net.api
edu.nwu.reef.api
edu.nwu.reflect.dll
edu.nwu.util.api
java.io
java.lang
java.lang.reflect
java.util
org.apache.commons.logging

edu.nwu.nemo.dll

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2140.0%88.0%12.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneedu.nwu.nemo.dll.AlternatePacket
edu.nwu.nemo.dll.Callback
edu.nwu.nemo.dll.DataPacket
edu.nwu.nemo.dll.ElectNewLeaderPacket
edu.nwu.nemo.dll.ForwardRequestPacket
edu.nwu.nemo.dll.HeartbeatPacket
edu.nwu.nemo.dll.JoinPacket
edu.nwu.nemo.dll.JoinRedirectPacket
edu.nwu.nemo.dll.LatencyProbePacket
edu.nwu.nemo.dll.LeavePacket
edu.nwu.nemo.dll.MulticastPacketHandler
edu.nwu.nemo.dll.NeighborPacket
edu.nwu.nemo.dll.NemoPacketMapping
edu.nwu.nemo.dll.NewLeaderPacket
edu.nwu.nemo.dll.OverlayInfoPacket
edu.nwu.nemo.dll.Packet
edu.nwu.nemo.dll.PrmMulticastPacketHandler
edu.nwu.nemo.dll.PrmReplyPacket
edu.nwu.nemo.dll.PrmRequestPacket
edu.nwu.nemo.dll.QueryPacket
edu.nwu.nemo.dll.QueryResponsePacket
edu.nwu.nemo.dll.QueryRpPacket
edu.nwu.nemo.dll.QueryRpResponsePacket
edu.nwu.nemo.dll.RpHeartbeatPacket
edu.nwu.nemo.dll.RpPacketHandler
edu.nwu.nemo.dll.StreamMulticastPacketHandler
edu.nwu.nemo.dll.SuperClusterPacket
edu.nwu.nemo.dll.TransferLeaderPacket
edu.nwu.nemo.bll
edu.nwu.nemo.wfl
cern.jet.random
edu.nwu.multicast.api
edu.nwu.nemo.api
edu.nwu.nemo.core
edu.nwu.net.api
edu.nwu.net.dll
edu.nwu.net.wfl
edu.nwu.reef.api
edu.nwu.reflect.dll
edu.nwu.util.api
java.io
java.lang
java.util
org.apache.commons.logging

edu.nwu.nemo.examples

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0120.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneedu.nwu.nemo.examples.MulticastAgent
Noneedu.nwu.multicast.api
edu.nwu.multicast.examples
edu.nwu.nemo.bll
edu.nwu.net.wfl
edu.nwu.reef.api
edu.nwu.reef.bll
edu.nwu.util.bll
java.io
java.lang
java.net
org.apache.commons.logging
org.apache.log4j

edu.nwu.nemo.monitor

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01112.0%100.0%12.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
edu.nwu.nemo.monitor.AbstractAgentEntry
edu.nwu.nemo.monitor.AbstractRpEntry
edu.nwu.nemo.monitor.AgentDegreeEntry
edu.nwu.nemo.monitor.AgentGrandParentEntry
edu.nwu.nemo.monitor.AgentIdEntry
edu.nwu.nemo.monitor.AgentLayerEntry
edu.nwu.nemo.monitor.AgentMemberClusterEntry
edu.nwu.nemo.monitor.AgentMomenta
edu.nwu.nemo.monitor.AgentMomentaEntry
edu.nwu.nemo.monitor.AgentNeighborClusterEntry
edu.nwu.nemo.monitor.AgentNeighborsEntry
edu.nwu.nemo.monitor.AgentParentEntry
edu.nwu.nemo.monitor.MulticastServiceDirectory
edu.nwu.nemo.monitor.RpIdEntry
edu.nwu.nemo.monitor.RpRootEntry
edu.nwu.nemo.monitor.RpServiceDirectory
edu.nwu.nemo.monitor.RpSizeEstimationEntry
Noneedu.nwu.heimdall.api
edu.nwu.multicast.api
edu.nwu.nemo.api
edu.nwu.reef.api
edu.nwu.reflect.bll
edu.nwu.util.api
edu.nwu.util.bll
java.io
java.lang
java.util
org.apache.commons.logging

edu.nwu.nemo.wfl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0140.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneedu.nwu.nemo.wfl.Benchmark
edu.nwu.nemo.wfl.Benchmark$1
edu.nwu.nemo.wfl.Benchmark$DummyPacketSocket
Noneedu.nwu.multicast.bll
edu.nwu.nemo.api
edu.nwu.nemo.bll
edu.nwu.nemo.core
edu.nwu.nemo.dll
edu.nwu.net.api
edu.nwu.net.bll
edu.nwu.reef.api
edu.nwu.reflect.dll
edu.nwu.util.bll
java.io
java.lang
java.net
org.apache.commons.logging

Cycles

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

PackagePackage Dependencies
edu.nwu.nemo.apiedu.nwu.nemo.core
edu.nwu.nemo.api
edu.nwu.nemo.blledu.nwu.nemo.dll
edu.nwu.nemo.core
edu.nwu.nemo.api
edu.nwu.nemo.core
edu.nwu.nemo.coreedu.nwu.nemo.api
edu.nwu.nemo.core
edu.nwu.nemo.dlledu.nwu.nemo.core
edu.nwu.nemo.api
edu.nwu.nemo.core
edu.nwu.nemo.examplesedu.nwu.nemo.bll
edu.nwu.nemo.dll
edu.nwu.nemo.core
edu.nwu.nemo.api
edu.nwu.nemo.core
edu.nwu.nemo.monitoredu.nwu.nemo.api
edu.nwu.nemo.core
edu.nwu.nemo.api
edu.nwu.nemo.wfledu.nwu.nemo.dll
edu.nwu.nemo.core
edu.nwu.nemo.api
edu.nwu.nemo.core

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.