| Package | TC | CC | AC | Ca | Ce | A | I | D | V |
|---|---|---|---|---|---|---|---|---|---|
| javax.microedition.io | 9 | 1 | 8 | 4 | 5 | 89.0% | 56.0% | 44.0% | 1 |
| javax.microedition.lcdui | 57 | 48 | 9 | 7 | 8 | 16.0% | 52.999996% | 31.0% | 1 |
| javax.microedition.lcdui.game | 7 | 5 | 2 | 3 | 5 | 29.0% | 62.0% | 9.0% | 1 |
| javax.microedition.midlet | 3 | 2 | 1 | 4 | 4 | 33.0% | 50.0% | 17.0% | 1 |
| javax.microedition.pki | 2 | 1 | 1 | 1 | 2 | 50.0% | 67.0% | 17.0% | 1 |
| javax.microedition.rms | 10 | 6 | 4 | 2 | 2 | 40.0% | 50.0% | 10.0% | 1 |
| org.microemu | 10 | 3 | 7 | 9 | 11 | 70.0% | 55.0% | 25.0% | 1 |
| org.microemu.app | 1 | 0 | 1 | 1 | 3 | 100.0% | 75.0% | 75.0% | 1 |
| org.microemu.app.launcher | 1 | 1 | 0 | 1 | 6 | 0.0% | 86.0% | 14.0% | 1 |
| org.microemu.app.ui | 1 | 0 | 1 | 0 | 1 | 100.0% | 100.0% | 100.0% | 1 |
| org.microemu.device | 9 | 2 | 7 | 3 | 8 | 78.0% | 73.0% | 51.0% | 1 |
| org.microemu.device.impl | 3 | 1 | 2 | 0 | 2 | 67.0% | 100.0% | 67.0% | 1 |
| org.microemu.device.ui | 20 | 4 | 16 | 3 | 5 | 80.0% | 62.0% | 42.0% | 1 |
| org.microemu.microedition.io | 1 | 0 | 1 | 1 | 3 | 100.0% | 75.0% | 75.0% | 1 |
| org.microemu.util | 6 | 5 | 1 | 1 | 5 | 17.0% | 83.0% | 0.0% | 1 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 4 | 5 | 89.0% | 56.0% | 44.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| javax.microedition.io.CommConnection javax.microedition.io.HttpConnection javax.microedition.io.HttpsConnection javax.microedition.io.SecureConnection javax.microedition.io.SecurityInfo javax.microedition.io.ServerSocketConnection javax.microedition.io.SocketConnection javax.microedition.io.UDPDatagramConnection | javax.microedition.io.PushRegistry | javax.microedition.midlet org.microemu org.microemu.device org.microemu.microedition.io | java.io java.lang javax.microedition.pki org.microemu.microedition org.microemu.microedition.io |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 7 | 8 | 16.0% | 52.999996% | 31.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| javax.microedition.lcdui.Canvas javax.microedition.lcdui.Choice javax.microedition.lcdui.CommandListener javax.microedition.lcdui.CustomItem javax.microedition.lcdui.Displayable javax.microedition.lcdui.Item javax.microedition.lcdui.ItemCommandListener javax.microedition.lcdui.ItemStateListener javax.microedition.lcdui.Screen | javax.microedition.lcdui.Alert javax.microedition.lcdui.Alert$1 javax.microedition.lcdui.AlertType javax.microedition.lcdui.ChoiceGroup javax.microedition.lcdui.ChoiceGroup$ChoiceItem javax.microedition.lcdui.ChoiceGroup$ImplicitListener javax.microedition.lcdui.Command javax.microedition.lcdui.CustomItem$1 javax.microedition.lcdui.DateCanvas javax.microedition.lcdui.DateField javax.microedition.lcdui.DateField$1 javax.microedition.lcdui.Display javax.microedition.lcdui.Display$1 javax.microedition.lcdui.Display$1$1 javax.microedition.lcdui.Display$AlertTimeout javax.microedition.lcdui.Display$DisplayAccessor javax.microedition.lcdui.Display$DisplayAccessor$1 javax.microedition.lcdui.Display$DisplayAccessor$2 javax.microedition.lcdui.Display$DisplayAccessor$3 javax.microedition.lcdui.Display$DisplayAccessor$4 javax.microedition.lcdui.Display$DisplayAccessor$5 javax.microedition.lcdui.Display$DisplayAccessor$6 javax.microedition.lcdui.Display$GaugePaintTask javax.microedition.lcdui.Display$HideNotifyEvent javax.microedition.lcdui.Display$KeyEvent javax.microedition.lcdui.Display$RunnableWrapper javax.microedition.lcdui.Display$ShowNotifyEvent javax.microedition.lcdui.Display$TickerPaintTask javax.microedition.lcdui.DisplayUtils javax.microedition.lcdui.Font javax.microedition.lcdui.Form javax.microedition.lcdui.Gauge javax.microedition.lcdui.Graphics javax.microedition.lcdui.Image javax.microedition.lcdui.ImageItem javax.microedition.lcdui.ImageStringItem javax.microedition.lcdui.List javax.microedition.lcdui.Spacer javax.microedition.lcdui.Spacer$1 javax.microedition.lcdui.Spacer$SpacerCustomItem javax.microedition.lcdui.StringComponent javax.microedition.lcdui.StringItem javax.microedition.lcdui.TextBox javax.microedition.lcdui.TextBox$1 javax.microedition.lcdui.TextField javax.microedition.lcdui.TextField$1 javax.microedition.lcdui.Ticker javax.microedition.lcdui.TimeCanvas | javax.microedition.lcdui.game javax.microedition.midlet org.microemu org.microemu.app.launcher org.microemu.device org.microemu.device.impl org.microemu.device.ui | java.io java.lang java.util javax.microedition.lcdui.game javax.microedition.midlet org.microemu org.microemu.device org.microemu.device.ui |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 5 | 29.0% | 62.0% | 9.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| javax.microedition.lcdui.game.GameCanvas javax.microedition.lcdui.game.Layer | javax.microedition.lcdui.game.GameCanvas$1 javax.microedition.lcdui.game.GameCanvas$KeyAccess javax.microedition.lcdui.game.LayerManager javax.microedition.lcdui.game.Sprite javax.microedition.lcdui.game.TiledLayer | javax.microedition.lcdui org.microemu org.microemu.device | java.lang java.util javax.microedition.lcdui org.microemu org.microemu.device |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 4 | 4 | 33.0% | 50.0% | 17.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| javax.microedition.midlet.MIDlet | javax.microedition.midlet.MIDlet$MIDletAccessor javax.microedition.midlet.MIDletStateChangeException | javax.microedition.lcdui org.microemu org.microemu.app org.microemu.app.launcher | java.lang javax.microedition.io javax.microedition.lcdui org.microemu |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 2 | 50.0% | 67.0% | 17.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| javax.microedition.pki.Certificate | javax.microedition.pki.CertificateException | javax.microedition.io | java.io java.lang |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 2 | 40.0% | 50.0% | 10.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| javax.microedition.rms.RecordComparator javax.microedition.rms.RecordEnumeration javax.microedition.rms.RecordFilter javax.microedition.rms.RecordListener | javax.microedition.rms.InvalidRecordIDException javax.microedition.rms.RecordStore javax.microedition.rms.RecordStoreException javax.microedition.rms.RecordStoreFullException javax.microedition.rms.RecordStoreNotFoundException javax.microedition.rms.RecordStoreNotOpenException | org.microemu org.microemu.util | java.lang org.microemu |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 9 | 11 | 70.0% | 55.0% | 25.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.CustomItemAccess org.microemu.DisplayAccess org.microemu.DisplayComponent org.microemu.GameCanvasKeyAccess org.microemu.MIDletAccess org.microemu.MicroEmulator org.microemu.RecordStoreManager | org.microemu.MIDletBridge org.microemu.MIDletContext org.microemu.MIDletEntry | javax.microedition.lcdui javax.microedition.lcdui.game javax.microedition.midlet javax.microedition.rms org.microemu.app org.microemu.app.launcher org.microemu.device org.microemu.device.ui org.microemu.util | java.io java.lang java.util javax.microedition.io javax.microedition.lcdui javax.microedition.lcdui.game javax.microedition.midlet javax.microedition.rms org.microemu.app.launcher org.microemu.device.ui org.microemu.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 3 | 100.0% | 75.0% | 75.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.app.CommonInterface | None | org.microemu.app.launcher | java.lang javax.microedition.midlet org.microemu |
| 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 | org.microemu.app.launcher.Launcher | org.microemu | java.lang java.util javax.microedition.lcdui javax.microedition.midlet org.microemu org.microemu.app |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 1 | 100.0% | 100.0% | 100.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.app.ui.DisplayRepaintListener | None | None | java.lang |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 8 | 78.0% | 73.0% | 51.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.device.Device org.microemu.device.DeviceDisplay org.microemu.device.EmulatorContext org.microemu.device.FontManager org.microemu.device.InputMethod org.microemu.device.InputMethodListener org.microemu.device.MutableImage | org.microemu.device.DeviceFactory org.microemu.device.InputMethodEvent | javax.microedition.lcdui javax.microedition.lcdui.game org.microemu.device.ui | java.io java.lang java.util javax.microedition.io javax.microedition.lcdui javax.microedition.lcdui.game org.microemu org.microemu.device.ui |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 2 | 67.0% | 100.0% | 67.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.device.impl.Shape org.microemu.device.impl.SoftButton | org.microemu.device.impl.Rectangle | None | java.lang javax.microedition.lcdui |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 5 | 80.0% | 62.0% | 42.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.device.ui.AlertUI org.microemu.device.ui.CanvasUI org.microemu.device.ui.ChoiceGroupUI org.microemu.device.ui.CommandUI org.microemu.device.ui.CustomItemUI org.microemu.device.ui.DateFieldUI org.microemu.device.ui.DisplayableUI org.microemu.device.ui.EventDispatcher$Event org.microemu.device.ui.FormUI org.microemu.device.ui.GaugeUI org.microemu.device.ui.ImageStringItemUI org.microemu.device.ui.ItemUI org.microemu.device.ui.ListUI org.microemu.device.ui.TextBoxUI org.microemu.device.ui.TextFieldUI org.microemu.device.ui.UIFactory | org.microemu.device.ui.EventDispatcher org.microemu.device.ui.EventDispatcher$PaintEvent org.microemu.device.ui.EventDispatcher$PointerEvent org.microemu.device.ui.EventDispatcher$RunnableEvent | javax.microedition.lcdui org.microemu org.microemu.device | java.lang java.util javax.microedition.lcdui org.microemu org.microemu.device |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 3 | 100.0% | 75.0% | 75.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.microedition.io.PushRegistryDelegate | None | javax.microedition.io | java.io java.lang javax.microedition.io |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 5 | 17.0% | 83.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.util.ExtendedRecordListener | org.microemu.util.RecordEnumerationImpl org.microemu.util.RecordEnumerationImpl$1 org.microemu.util.RecordEnumerationImpl$2 org.microemu.util.RecordEnumerationImpl$EnumerationRecord org.microemu.util.RecordStoreImpl | org.microemu | java.io java.lang java.util javax.microedition.rms org.microemu |
| Package | Package Dependencies |
|---|---|
| javax.microedition.io | org.microemu.microedition.io javax.microedition.io |
| javax.microedition.lcdui | org.microemu.device org.microemu org.microemu.app.launcher org.microemu |
| javax.microedition.lcdui.game | javax.microedition.lcdui org.microemu.device org.microemu org.microemu.app.launcher org.microemu |
| javax.microedition.midlet | org.microemu org.microemu.app.launcher org.microemu |
| javax.microedition.rms | org.microemu org.microemu.app.launcher org.microemu |
| org.microemu | org.microemu.app.launcher org.microemu |
| org.microemu.app | org.microemu org.microemu.app.launcher org.microemu |
| org.microemu.app.launcher | org.microemu org.microemu.app.launcher |
| org.microemu.device | org.microemu org.microemu.app.launcher org.microemu |
| org.microemu.device.impl | javax.microedition.lcdui org.microemu.device org.microemu org.microemu.app.launcher org.microemu |
| org.microemu.device.ui | javax.microedition.lcdui org.microemu.device org.microemu org.microemu.app.launcher org.microemu |
| org.microemu.microedition.io | javax.microedition.io org.microemu.microedition.io |
| org.microemu.util | javax.microedition.rms org.microemu org.microemu.app.launcher org.microemu |
| 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. |