Package | TC | CC | AC | Ca | Ce | A | I | D | V |
---|---|---|---|---|---|---|---|---|---|
net.sf.snmpadaptor4j | 5 | 2 | 3 | 3 | 12 | 60.000004% | 80.0% | 40.0% | 1 |
net.sf.snmpadaptor4j.api | 7 | 1 | 6 | 5 | 5 | 86.0% | 50.0% | 36.0% | 1 |
net.sf.snmpadaptor4j.api.opennms | 5 | 4 | 1 | 1 | 9 | 20.0% | 90.0% | 10.0% | 1 |
net.sf.snmpadaptor4j.config | 1 | 1 | 0 | 1 | 7 | 0.0% | 88.0% | 12.0% | 1 |
net.sf.snmpadaptor4j.config.jaxb | 10 | 9 | 1 | 1 | 4 | 10.0% | 80.0% | 10.0% | 1 |
net.sf.snmpadaptor4j.core | 8 | 8 | 0 | 1 | 14 | 0.0% | 93.0% | 7.0% | 1 |
net.sf.snmpadaptor4j.core.accessor | 3 | 3 | 0 | 1 | 6 | 0.0% | 86.0% | 14.0% | 1 |
net.sf.snmpadaptor4j.core.mapping | 10 | 8 | 2 | 3 | 8 | 20.0% | 73.0% | 7.0% | 1 |
net.sf.snmpadaptor4j.core.mapping.jaxb | 19 | 18 | 1 | 1 | 4 | 5.0% | 80.0% | 15.000001% | 1 |
net.sf.snmpadaptor4j.core.trap | 3 | 3 | 0 | 2 | 11 | 0.0% | 85.0% | 15.000001% | 1 |
net.sf.snmpadaptor4j.mbean | 2 | 1 | 1 | 3 | 3 | 50.0% | 50.0% | 0.0% | 1 |
net.sf.snmpadaptor4j.object | 7 | 6 | 1 | 6 | 4 | 14.0% | 40.0% | 46.0% | 1 |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 12 | 60.000004% | 80.0% | 40.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.sf.snmpadaptor4j.SnmpAdaptorMBean net.sf.snmpadaptor4j.SnmpAppContext net.sf.snmpadaptor4j.SnmpConfiguration | net.sf.snmpadaptor4j.SnmpAdaptor net.sf.snmpadaptor4j.SnmpManagerConfiguration | net.sf.snmpadaptor4j.config net.sf.snmpadaptor4j.core net.sf.snmpadaptor4j.core.trap | java.io java.lang java.net java.util javax.management net.sf.snmpadaptor4j.api net.sf.snmpadaptor4j.api.opennms net.sf.snmpadaptor4j.config net.sf.snmpadaptor4j.core net.sf.snmpadaptor4j.core.trap net.sf.snmpadaptor4j.mbean org.apache.log4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
5 | 5 | 86.0% | 50.0% | 36.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.sf.snmpadaptor4j.api.AttributeAccessor net.sf.snmpadaptor4j.api.SnmpApiFactory net.sf.snmpadaptor4j.api.SnmpDaemon net.sf.snmpadaptor4j.api.SnmpDaemonConfiguration net.sf.snmpadaptor4j.api.SnmpMib net.sf.snmpadaptor4j.api.SnmpTrapSender | net.sf.snmpadaptor4j.api.SnmpException | net.sf.snmpadaptor4j net.sf.snmpadaptor4j.api.opennms net.sf.snmpadaptor4j.core net.sf.snmpadaptor4j.core.accessor net.sf.snmpadaptor4j.core.trap | java.lang java.net java.util net.sf.snmpadaptor4j.object org.apache.log4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 9 | 20.0% | 90.0% | 10.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.sf.snmpadaptor4j.api.opennms.OpennmsSupport | net.sf.snmpadaptor4j.api.opennms.OpennmsSnmpApiFactory net.sf.snmpadaptor4j.api.opennms.OpennmsSnmpDaemon net.sf.snmpadaptor4j.api.opennms.OpennmsSnmpTrapSender net.sf.snmpadaptor4j.api.opennms.OpennmsSnmpTrapSender$NullHandler | net.sf.snmpadaptor4j | java.lang java.math java.net java.util net.sf.snmpadaptor4j.api net.sf.snmpadaptor4j.object org.apache.log4j org.opennms.protocols.snmp org.opennms.protocols.snmp.asn1 |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 7 | 0.0% | 88.0% | 12.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.sf.snmpadaptor4j.config.XmlConfigParser | net.sf.snmpadaptor4j | java.lang java.net java.util javax.management javax.xml.bind net.sf.snmpadaptor4j net.sf.snmpadaptor4j.config.jaxb |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 4 | 10.0% | 80.0% | 10.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.sf.snmpadaptor4j.config.jaxb.package-info | net.sf.snmpadaptor4j.config.jaxb.Config net.sf.snmpadaptor4j.config.jaxb.Daemon net.sf.snmpadaptor4j.config.jaxb.MBean net.sf.snmpadaptor4j.config.jaxb.MBeans net.sf.snmpadaptor4j.config.jaxb.Manager net.sf.snmpadaptor4j.config.jaxb.Managers net.sf.snmpadaptor4j.config.jaxb.ObjectFactory net.sf.snmpadaptor4j.config.jaxb.Root net.sf.snmpadaptor4j.config.jaxb.Roots | net.sf.snmpadaptor4j.config | java.lang java.util javax.xml.bind javax.xml.namespace |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 14 | 0.0% | 93.0% | 7.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.sf.snmpadaptor4j.core.JmxListener net.sf.snmpadaptor4j.core.JmxNotificationManager net.sf.snmpadaptor4j.core.JmxNotificationManager$Listener net.sf.snmpadaptor4j.core.JmxSnmpMib net.sf.snmpadaptor4j.core.JvmSnmpMib net.sf.snmpadaptor4j.core.SystemSnmpMib net.sf.snmpadaptor4j.core.SystemSnmpMib$ExternalNode net.sf.snmpadaptor4j.core.SystemSnmpMib$SysObjectIDExternalNode | net.sf.snmpadaptor4j | java.lang java.math java.net java.util javax.management javax.management.relation net.sf.snmpadaptor4j net.sf.snmpadaptor4j.api net.sf.snmpadaptor4j.core.accessor net.sf.snmpadaptor4j.core.mapping net.sf.snmpadaptor4j.core.trap net.sf.snmpadaptor4j.mbean net.sf.snmpadaptor4j.object org.apache.log4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 6 | 0.0% | 86.0% | 14.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.sf.snmpadaptor4j.core.accessor.CompositeDataAttributeAccessor net.sf.snmpadaptor4j.core.accessor.JvmAttributeAccessor net.sf.snmpadaptor4j.core.accessor.MBeanAttributeAccessor | net.sf.snmpadaptor4j.core | java.lang javax.management javax.management.openmbean net.sf.snmpadaptor4j.api net.sf.snmpadaptor4j.core.mapping net.sf.snmpadaptor4j.object |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 8 | 20.0% | 73.0% | 7.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.sf.snmpadaptor4j.core.mapping.DataMapTrapMapping net.sf.snmpadaptor4j.core.mapping.SnmpTrapMapping | net.sf.snmpadaptor4j.core.mapping.DefaultDataMapTrapMapping net.sf.snmpadaptor4j.core.mapping.GenericSnmpTrapMapping net.sf.snmpadaptor4j.core.mapping.MBeanAttributeMapping net.sf.snmpadaptor4j.core.mapping.MapDataMapTrapMapping net.sf.snmpadaptor4j.core.mapping.SimpleDataMapTrapMapping net.sf.snmpadaptor4j.core.mapping.SpecificSnmpTrapMapping net.sf.snmpadaptor4j.core.mapping.UserDataEntryDataMapTrapMapping net.sf.snmpadaptor4j.core.mapping.XmlMappingParser | net.sf.snmpadaptor4j.core net.sf.snmpadaptor4j.core.accessor net.sf.snmpadaptor4j.core.trap | java.io java.lang java.net java.util javax.management javax.xml.bind net.sf.snmpadaptor4j.core.mapping.jaxb net.sf.snmpadaptor4j.object |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 4 | 5.0% | 80.0% | 15.000001% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.sf.snmpadaptor4j.core.mapping.jaxb.package-info | net.sf.snmpadaptor4j.core.mapping.jaxb.GenericTrap net.sf.snmpadaptor4j.core.mapping.jaxb.GenericTrapCode net.sf.snmpadaptor4j.core.mapping.jaxb.MBean net.sf.snmpadaptor4j.core.mapping.jaxb.MBeanAttribute net.sf.snmpadaptor4j.core.mapping.jaxb.MBeanAttributeType net.sf.snmpadaptor4j.core.mapping.jaxb.MBeanAttributes net.sf.snmpadaptor4j.core.mapping.jaxb.MBeanNotifications net.sf.snmpadaptor4j.core.mapping.jaxb.MBeans net.sf.snmpadaptor4j.core.mapping.jaxb.Mapping net.sf.snmpadaptor4j.core.mapping.jaxb.ObjectFactory net.sf.snmpadaptor4j.core.mapping.jaxb.SpecificTrap net.sf.snmpadaptor4j.core.mapping.jaxb.TrapEnterprise net.sf.snmpadaptor4j.core.mapping.jaxb.TrapMessage net.sf.snmpadaptor4j.core.mapping.jaxb.TrapSequenceNumber net.sf.snmpadaptor4j.core.mapping.jaxb.TrapUserData net.sf.snmpadaptor4j.core.mapping.jaxb.TrapUserDataEntry net.sf.snmpadaptor4j.core.mapping.jaxb.TrapUserDataMap net.sf.snmpadaptor4j.core.mapping.jaxb.TrapVariableBindings | net.sf.snmpadaptor4j.core.mapping | java.lang java.util javax.xml.bind javax.xml.namespace |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 11 | 0.0% | 85.0% | 15.000001% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.sf.snmpadaptor4j.core.trap.SnmpManagers net.sf.snmpadaptor4j.core.trap.SnmpManagers$ClosingTask net.sf.snmpadaptor4j.core.trap.SnmpTrapBuilder | net.sf.snmpadaptor4j net.sf.snmpadaptor4j.core | java.io java.lang java.net java.util javax.management net.sf.snmpadaptor4j net.sf.snmpadaptor4j.api net.sf.snmpadaptor4j.core.mapping net.sf.snmpadaptor4j.mbean net.sf.snmpadaptor4j.object org.apache.log4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 3 | 50.0% | 50.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.sf.snmpadaptor4j.mbean.SystemInfoMBean | net.sf.snmpadaptor4j.mbean.SystemInfo | net.sf.snmpadaptor4j net.sf.snmpadaptor4j.core net.sf.snmpadaptor4j.core.trap | java.io java.lang javax.management |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
6 | 4 | 14.0% | 40.0% | 46.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.sf.snmpadaptor4j.object.SnmpTrap | net.sf.snmpadaptor4j.object.GenericSnmpTrap net.sf.snmpadaptor4j.object.GenericSnmpTrapType net.sf.snmpadaptor4j.object.SnmpDataType net.sf.snmpadaptor4j.object.SnmpOid net.sf.snmpadaptor4j.object.SnmpTrapData net.sf.snmpadaptor4j.object.SpecificSnmpTrap | net.sf.snmpadaptor4j.api net.sf.snmpadaptor4j.api.opennms net.sf.snmpadaptor4j.core net.sf.snmpadaptor4j.core.accessor net.sf.snmpadaptor4j.core.mapping net.sf.snmpadaptor4j.core.trap | java.io java.lang java.util org.apache.log4j |
Package | Package Dependencies |
---|---|
net.sf.snmpadaptor4j | net.sf.snmpadaptor4j.config net.sf.snmpadaptor4j |
net.sf.snmpadaptor4j.config | net.sf.snmpadaptor4j net.sf.snmpadaptor4j.config |
net.sf.snmpadaptor4j.core | net.sf.snmpadaptor4j net.sf.snmpadaptor4j.config net.sf.snmpadaptor4j |
net.sf.snmpadaptor4j.core.trap | net.sf.snmpadaptor4j net.sf.snmpadaptor4j.config net.sf.snmpadaptor4j |
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. |