| Package | TC | CC | AC | Ca | Ce | A | I | D | V |
|---|---|---|---|---|---|---|---|---|---|
| com.intel.bluetooth | 6 | 5 | 1 | 3 | 11 | 17.0% | 79.0% | 5.0% | 1 |
| org.bluecove.socket | 9 | 8 | 1 | 0 | 4 | 11.0% | 100.0% | 11.0% | 1 |
| org.bluez | 33 | 27 | 6 | 4 | 9 | 18.0% | 69.0% | 13.0% | 1 |
| org.bluez.dbus | 5 | 1 | 4 | 1 | 5 | 80.0% | 83.0% | 63.0% | 1 |
| org.bluez.v3 | 49 | 42 | 7 | 2 | 8 | 14.0% | 80.0% | 6.0% | 1 |
| org.bluez.v4 | 24 | 19 | 5 | 1 | 9 | 21.0% | 90.0% | 11.0% | 1 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 11 | 17.0% | 79.0% | 5.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| com.intel.bluetooth.BluetoothStackBlueZDBusConsts |
com.intel.bluetooth.BlueZServiceRecordXML com.intel.bluetooth.BluetoothStackBlueZDBus com.intel.bluetooth.BluetoothStackBlueZDBus$1 com.intel.bluetooth.BluetoothStackBlueZDBus$DiscoveryData com.intel.bluetooth.BluetoothStackBlueZDBusNativeTests |
org.bluez org.bluez.v3 org.bluez.v4 |
cx.ath.matthew.unix java.io java.lang java.util javax.bluetooth javax.xml.parsers org.bluez org.freedesktop.dbus org.freedesktop.dbus.exceptions org.w3c.dom org.xml.sax |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 4 | 11.0% | 100.0% | 11.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.bluecove.socket.LocalSocketImpl$LocalSocketOptions |
org.bluecove.socket.Credentials org.bluecove.socket.LocalServerSocket org.bluecove.socket.LocalSocket org.bluecove.socket.LocalSocketAddress org.bluecove.socket.LocalSocketImpl org.bluecove.socket.LocalSocketImpl$1 org.bluecove.socket.LocalSocketImpl$LocalSocketInputStream org.bluecove.socket.LocalSocketImpl$LocalSocketOutputStream |
None | java.io java.lang java.net java.nio.channels |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 4 | 9 | 18.0% | 69.0% | 13.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.bluez.Adapter org.bluez.BlueZAPI org.bluez.BlueZAPI$DeviceInquiryListener org.bluez.BlueZAPIFactory org.bluez.Error org.bluez.Manager |
org.bluez.Error$AlreadyConnected org.bluez.Error$AlreadyExists org.bluez.Error$AuthenticationCanceled org.bluez.Error$AuthenticationFailed org.bluez.Error$AuthenticationRejected org.bluez.Error$AuthenticationTimeout org.bluez.Error$Canceled org.bluez.Error$ConnectionAttemptFailed org.bluez.Error$DeviceUnreachable org.bluez.Error$DoesNotExist org.bluez.Error$Failed org.bluez.Error$InProgress org.bluez.Error$InvalidArguments org.bluez.Error$NoSuchAdapter org.bluez.Error$NoSuchService org.bluez.Error$NotAuthorized org.bluez.Error$NotAvailable org.bluez.Error$NotConnected org.bluez.Error$NotInProgress org.bluez.Error$NotReady org.bluez.Error$NotSupported org.bluez.Error$OutOfMemory org.bluez.Error$Rejected org.bluez.Error$RepeatedAttempts org.bluez.Error$RequestDeferred org.bluez.Error$UnknwownMethod org.bluez.Error$UnsupportedMajorClass |
com.intel.bluetooth org.bluez.dbus org.bluez.v3 org.bluez.v4 |
com.intel.bluetooth java.io java.lang java.util org.bluez.v3 org.bluez.v4 org.freedesktop org.freedesktop.dbus org.freedesktop.dbus.exceptions |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 5 | 80.0% | 83.0% | 63.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.bluez.dbus.DBusProperties org.bluez.dbus.DBusProperties$DBusProperty org.bluez.dbus.DBusProperties$PropertiesAccess org.bluez.dbus.DBusProperties$PropertyEnum |
org.bluez.dbus.DBusProperties$DBusPropertyAccessType |
org.bluez.v4 |
java.lang java.lang.annotation java.util org.bluez org.freedesktop.dbus |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 8 | 14.0% | 80.0% | 6.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.bluez.v3.Adapter org.bluez.v3.AuthorizationAgent org.bluez.v3.Database org.bluez.v3.Manager org.bluez.v3.PasskeyAgent org.bluez.v3.Security org.bluez.v3.Service |
org.bluez.v3.Adapter$BondingCreated org.bluez.v3.Adapter$BondingRemoved org.bluez.v3.Adapter$DiscoverableTimeoutChanged org.bluez.v3.Adapter$DiscoveryCompleted org.bluez.v3.Adapter$DiscoveryStarted org.bluez.v3.Adapter$MinorClassChanged org.bluez.v3.Adapter$ModeChanged org.bluez.v3.Adapter$NameChanged org.bluez.v3.Adapter$PeriodicDiscoveryStarted org.bluez.v3.Adapter$PeriodicDiscoveryStopped org.bluez.v3.Adapter$RemoteAliasChanged org.bluez.v3.Adapter$RemoteAliasCleared org.bluez.v3.Adapter$RemoteClassUpdated org.bluez.v3.Adapter$RemoteDeviceConnected org.bluez.v3.Adapter$RemoteDeviceDisappeared org.bluez.v3.Adapter$RemoteDeviceDisconnectRequested org.bluez.v3.Adapter$RemoteDeviceDisconnected org.bluez.v3.Adapter$RemoteDeviceFound org.bluez.v3.Adapter$RemoteIdentifiersUpdated org.bluez.v3.Adapter$RemoteNameFailed org.bluez.v3.Adapter$RemoteNameRequested org.bluez.v3.Adapter$RemoteNameUpdated org.bluez.v3.Adapter$TrustAdded org.bluez.v3.Adapter$TrustRemoved org.bluez.v3.BlueZAPIV3 org.bluez.v3.BlueZAPIV3$1 org.bluez.v3.BlueZAPIV3$2 org.bluez.v3.BlueZAPIV3$3 org.bluez.v3.BlueZAPIV3$4 org.bluez.v3.BlueZAPIV3$5 org.bluez.v3.BlueZAPIV3$6 org.bluez.v3.BlueZAPIV3$7 org.bluez.v3.BlueZAPIV3$8 org.bluez.v3.Manager$AdapterAdded org.bluez.v3.Manager$AdapterRemoved org.bluez.v3.Manager$DefaultAdapterChanged org.bluez.v3.Manager$ServiceAdded org.bluez.v3.Manager$ServiceRemoved org.bluez.v3.Service$Started org.bluez.v3.Service$Stopped org.bluez.v3.Service$TrustAdded org.bluez.v3.Service$TrustRemoved |
org.bluez org.bluez.v4 |
com.intel.bluetooth java.io java.lang java.util org.bluez org.freedesktop org.freedesktop.dbus org.freedesktop.dbus.exceptions |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 9 | 21.0% | 90.0% | 11.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.bluez.v4.Adapter org.bluez.v4.Agent org.bluez.v4.Device org.bluez.v4.Manager org.bluez.v4.Service |
org.bluez.v4.Adapter$DeviceCreated org.bluez.v4.Adapter$DeviceDisappeared org.bluez.v4.Adapter$DeviceFound org.bluez.v4.Adapter$DeviceRemoved org.bluez.v4.Adapter$Properties org.bluez.v4.Adapter$PropertyChanged org.bluez.v4.BlueZAPIV4 org.bluez.v4.BlueZAPIV4$1 org.bluez.v4.BlueZAPIV4$2 org.bluez.v4.Device$DisconnectRequested org.bluez.v4.Device$NodeCreated org.bluez.v4.Device$NodeRemoved org.bluez.v4.Device$Properties org.bluez.v4.Device$PropertyChanged org.bluez.v4.Manager$AdapterAdded org.bluez.v4.Manager$AdapterRemoved org.bluez.v4.Manager$DefaultAdapterChanged org.bluez.v4.Manager$Properties org.bluez.v4.Manager$PropertyChanged |
org.bluez |
com.intel.bluetooth java.io java.lang java.util org.bluez org.bluez.dbus org.bluez.v3 org.freedesktop.dbus org.freedesktop.dbus.exceptions |
| Package | Package Dependencies |
|---|---|
| com.intel.bluetooth | org.bluez com.intel.bluetooth |
| org.bluez | com.intel.bluetooth org.bluez |
| org.bluez.dbus | org.bluez com.intel.bluetooth org.bluez |
| org.bluez.v3 | org.bluez com.intel.bluetooth org.bluez |
| org.bluez.v4 | org.bluez.dbus org.bluez com.intel.bluetooth org.bluez |
| 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. |