| Package | TC | CC | AC | Ca | Ce | A | I | D | V |
|---|---|---|---|---|---|---|---|---|---|
| net.sf.bluecove | 46 | 42 | 4 | 4 | 16 | 9.0% | 80.0% | 11.0% | 1 |
| net.sf.bluecove.awt | 86 | 84 | 2 | 1 | 16 | 2.0% | 94.0% | 4.0% | 1 |
| net.sf.bluecove.se | 10 | 10 | 0 | 3 | 13 | 0.0% | 81.0% | 19.0% | 1 |
| net.sf.bluecove.swing | 21 | 21 | 0 | 1 | 10 | 0.0% | 91.0% | 9.0% | 1 |
| net.sf.bluecove.tests | 11 | 11 | 0 | 1 | 8 | 0.0% | 89.0% | 11.0% | 1 |
| net.sf.bluecove.util | 14 | 11 | 3 | 4 | 6 | 21.0% | 60.000004% | 19.0% | 1 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 4 | 16 | 9.0% | 80.0% | 11.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.bluecove.CanShutdown net.sf.bluecove.ConnectionHolder net.sf.bluecove.Consts net.sf.bluecove.TestResponderClientConnection |
net.sf.bluecove.BlueCoveTestCanvas net.sf.bluecove.BlueCoveTestCanvas$1 net.sf.bluecove.BlueCoveTestConfigurationForm net.sf.bluecove.BlueCoveTestConfigurationForm$1 net.sf.bluecove.BlueCoveTestConfigurationForm$ConfigurationComponent net.sf.bluecove.BlueCoveTestMIDlet net.sf.bluecove.CommunicationData net.sf.bluecove.CommunicationTester net.sf.bluecove.CommunicationTester$1 net.sf.bluecove.CommunicationTesterL2CAP net.sf.bluecove.Configuration net.sf.bluecove.ConnectionHolderL2CAP net.sf.bluecove.ConnectionHolderStream net.sf.bluecove.FailureLog net.sf.bluecove.OBEXTestAuthenticator net.sf.bluecove.RemoteDeviceIheritance net.sf.bluecove.RemoteDeviceInfo net.sf.bluecove.ServiceRecordTester net.sf.bluecove.Switcher net.sf.bluecove.SwitcherTck net.sf.bluecove.TestClientBluetoothInquirer net.sf.bluecove.TestClientConfig net.sf.bluecove.TestConcurrent net.sf.bluecove.TestConcurrent$1 net.sf.bluecove.TestConcurrent$ServicesSearchClientsThread net.sf.bluecove.TestOBEXCilent net.sf.bluecove.TestResponderClient net.sf.bluecove.TestResponderClient$ClientConnectionTread net.sf.bluecove.TestResponderClientL2CAP net.sf.bluecove.TestResponderClientRFCOMM net.sf.bluecove.TestResponderCommon net.sf.bluecove.TestResponderServer net.sf.bluecove.TestResponderServer$ServerConnectionRunnable net.sf.bluecove.TestResponderServerL2CAP net.sf.bluecove.TestResponderServerL2CAP$ServerConnectionTread net.sf.bluecove.TestResponderServerOBEX net.sf.bluecove.TestResponderServerOBEX$1 net.sf.bluecove.TestResponderServerOBEX$NoTimeWrapper net.sf.bluecove.TestResponderServerOBEX$NoTimeWrapper$1 net.sf.bluecove.TestResponderServerOBEX$RequestHandler net.sf.bluecove.TestStatus net.sf.bluecove.TestTimeOutMonitor |
net.sf.bluecove.awt net.sf.bluecove.se net.sf.bluecove.swing net.sf.bluecove.tests |
BluetoothTCKAgent OBEXTCKAgent java.io java.lang java.util javax.bluetooth javax.microedition.io javax.microedition.lcdui javax.obex junit.framework net.sf.bluecove.se net.sf.bluecove.tests net.sf.bluecove.util org.bluecove.tester.log org.bluecove.tester.me org.bluecove.tester.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 16 | 2.0% | 94.0% | 4.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.bluecove.awt.ActionListenerRunnable net.sf.bluecove.awt.OkCancelDialog |
net.sf.bluecove.awt.BorderPanel net.sf.bluecove.awt.ClientConnectionDialog net.sf.bluecove.awt.ClientConnectionDialog$1 net.sf.bluecove.awt.ClientConnectionDialog$10 net.sf.bluecove.awt.ClientConnectionDialog$11 net.sf.bluecove.awt.ClientConnectionDialog$12 net.sf.bluecove.awt.ClientConnectionDialog$13 net.sf.bluecove.awt.ClientConnectionDialog$14 net.sf.bluecove.awt.ClientConnectionDialog$2 net.sf.bluecove.awt.ClientConnectionDialog$3 net.sf.bluecove.awt.ClientConnectionDialog$4 net.sf.bluecove.awt.ClientConnectionDialog$5 net.sf.bluecove.awt.ClientConnectionDialog$6 net.sf.bluecove.awt.ClientConnectionDialog$7 net.sf.bluecove.awt.ClientConnectionDialog$8 net.sf.bluecove.awt.ClientConnectionDialog$9 net.sf.bluecove.awt.ClientConnectionDialog$ConnectionMonitor net.sf.bluecove.awt.ClientConnectionThread net.sf.bluecove.awt.ClientConnectionThread$1 net.sf.bluecove.awt.ConfigurationDialog net.sf.bluecove.awt.ConfigurationDialog$1 net.sf.bluecove.awt.ConfigurationDialog$2 net.sf.bluecove.awt.ConfigurationDialog$3 net.sf.bluecove.awt.ConfigurationDialog$ConfigurationComponent net.sf.bluecove.awt.Main net.sf.bluecove.awt.Main$1 net.sf.bluecove.awt.Main$10 net.sf.bluecove.awt.Main$11 net.sf.bluecove.awt.Main$12 net.sf.bluecove.awt.Main$13 net.sf.bluecove.awt.Main$14 net.sf.bluecove.awt.Main$15 net.sf.bluecove.awt.Main$16 net.sf.bluecove.awt.Main$17 net.sf.bluecove.awt.Main$18 net.sf.bluecove.awt.Main$19 net.sf.bluecove.awt.Main$2 net.sf.bluecove.awt.Main$20 net.sf.bluecove.awt.Main$21 net.sf.bluecove.awt.Main$22 net.sf.bluecove.awt.Main$23 net.sf.bluecove.awt.Main$24 net.sf.bluecove.awt.Main$25 net.sf.bluecove.awt.Main$26 net.sf.bluecove.awt.Main$27 net.sf.bluecove.awt.Main$28 net.sf.bluecove.awt.Main$29 net.sf.bluecove.awt.Main$3 net.sf.bluecove.awt.Main$30 net.sf.bluecove.awt.Main$31 net.sf.bluecove.awt.Main$32 net.sf.bluecove.awt.Main$33 net.sf.bluecove.awt.Main$34 net.sf.bluecove.awt.Main$35 net.sf.bluecove.awt.Main$36 net.sf.bluecove.awt.Main$37 net.sf.bluecove.awt.Main$38 net.sf.bluecove.awt.Main$39 net.sf.bluecove.awt.Main$4 net.sf.bluecove.awt.Main$40 net.sf.bluecove.awt.Main$41 net.sf.bluecove.awt.Main$42 net.sf.bluecove.awt.Main$43 net.sf.bluecove.awt.Main$44 net.sf.bluecove.awt.Main$45 net.sf.bluecove.awt.Main$5 net.sf.bluecove.awt.Main$6 net.sf.bluecove.awt.Main$7 net.sf.bluecove.awt.Main$8 net.sf.bluecove.awt.Main$9 net.sf.bluecove.awt.Main$AwtLogUpdater net.sf.bluecove.awt.ObexClientConnectionDialog net.sf.bluecove.awt.ObexClientConnectionDialog$1 net.sf.bluecove.awt.ObexClientConnectionDialog$2 net.sf.bluecove.awt.ObexClientConnectionDialog$3 net.sf.bluecove.awt.ObexClientConnectionDialog$4 net.sf.bluecove.awt.ObexClientConnectionDialog$5 net.sf.bluecove.awt.ObexClientConnectionDialog$6 net.sf.bluecove.awt.ObexClientConnectionDialog$ObexConnectionMonitor net.sf.bluecove.awt.ObexClientConnectionThread net.sf.bluecove.awt.OkCancelDialog$1 net.sf.bluecove.awt.OkCancelDialog$2 net.sf.bluecove.awt.OkCancelDialog$3 net.sf.bluecove.awt.ServiceRecords |
net.sf.bluecove.se |
com.intel.bluetooth java.awt java.awt.event java.io java.lang java.lang.reflect java.text java.util javax.bluetooth javax.microedition.io javax.obex net.sf.bluecove net.sf.bluecove.se net.sf.bluecove.util org.bluecove.tester.log org.bluecove.tester.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 13 | 0.0% | 81.0% | 19.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | net.sf.bluecove.se.BlueCoveLoggerAppender net.sf.bluecove.se.BlueCoveSpecific net.sf.bluecove.se.Console net.sf.bluecove.se.FileStorage net.sf.bluecove.se.JavaSECommon net.sf.bluecove.se.LocalDeviceManager net.sf.bluecove.se.LoggerJavaSEAppender net.sf.bluecove.se.Main net.sf.bluecove.se.RemoteDeviceManager net.sf.bluecove.se.UIHelper |
net.sf.bluecove net.sf.bluecove.awt net.sf.bluecove.swing |
com.intel.bluetooth java.awt java.io java.lang java.text java.util javax.bluetooth net.sf.bluecove net.sf.bluecove.awt net.sf.bluecove.swing net.sf.bluecove.util org.bluecove.tester.log org.bluecove.tester.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 | net.sf.bluecove.swing.Main net.sf.bluecove.swing.Main$1 net.sf.bluecove.swing.Main$10 net.sf.bluecove.swing.Main$11 net.sf.bluecove.swing.Main$12 net.sf.bluecove.swing.Main$13 net.sf.bluecove.swing.Main$14 net.sf.bluecove.swing.Main$15 net.sf.bluecove.swing.Main$16 net.sf.bluecove.swing.Main$17 net.sf.bluecove.swing.Main$18 net.sf.bluecove.swing.Main$19 net.sf.bluecove.swing.Main$2 net.sf.bluecove.swing.Main$3 net.sf.bluecove.swing.Main$4 net.sf.bluecove.swing.Main$5 net.sf.bluecove.swing.Main$6 net.sf.bluecove.swing.Main$7 net.sf.bluecove.swing.Main$8 net.sf.bluecove.swing.Main$9 net.sf.bluecove.swing.Main$AwtLogUpdater |
net.sf.bluecove.se |
java.awt java.awt.event java.lang java.util javax.swing javax.swing.text net.sf.bluecove net.sf.bluecove.se org.bluecove.tester.log org.bluecove.tester.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 8 | 0.0% | 89.0% | 11.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | net.sf.bluecove.tests.L2TrafficGenerator net.sf.bluecove.tests.L2TrafficGenerator$1 net.sf.bluecove.tests.L2TrafficGenerator$2 net.sf.bluecove.tests.L2TrafficGenerator$Config net.sf.bluecove.tests.RfTrafficGenerator net.sf.bluecove.tests.RfTrafficGenerator$1 net.sf.bluecove.tests.RfTrafficGenerator$2 net.sf.bluecove.tests.RfTrafficGenerator$Config net.sf.bluecove.tests.TwoThreadsPerConnection net.sf.bluecove.tests.TwoThreadsPerConnection$1 net.sf.bluecove.tests.TwoThreadsPerConnection$WriteTread |
net.sf.bluecove |
java.io java.lang javax.bluetooth junit.framework net.sf.bluecove net.sf.bluecove.util org.bluecove.tester.log org.bluecove.tester.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 4 | 6 | 21.0% | 60.000004% | 19.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.bluecove.util.BluetoothTypesInfo net.sf.bluecove.util.CollectionUtils$IsComparable net.sf.bluecove.util.Storage |
net.sf.bluecove.util.BluetoothTypesInfo$DeviceClassConsts net.sf.bluecove.util.BluetoothTypesInfo$UUIDConsts net.sf.bluecove.util.BooleanVar net.sf.bluecove.util.CollectionUtils net.sf.bluecove.util.CountStatistic net.sf.bluecove.util.IntVar net.sf.bluecove.util.J2MEStringTokenizer net.sf.bluecove.util.StorageRMS net.sf.bluecove.util.StringVar net.sf.bluecove.util.TimeStatistic net.sf.bluecove.util.ValueHolder |
net.sf.bluecove net.sf.bluecove.awt net.sf.bluecove.se net.sf.bluecove.tests |
java.lang java.util javax.bluetooth javax.microedition.rms org.bluecove.tester.log org.bluecove.tester.util |
| Package | Package Dependencies |
|---|---|
| net.sf.bluecove | net.sf.bluecove.tests net.sf.bluecove |
| net.sf.bluecove.awt | net.sf.bluecove net.sf.bluecove.tests net.sf.bluecove |
| net.sf.bluecove.se | net.sf.bluecove net.sf.bluecove.tests net.sf.bluecove |
| net.sf.bluecove.swing | net.sf.bluecove net.sf.bluecove.tests net.sf.bluecove |
| net.sf.bluecove.tests | net.sf.bluecove net.sf.bluecove.tests |
| 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. |