| Package | TC | CC | AC | Ca | Ce | A | I | D | V |
|---|---|---|---|---|---|---|---|---|---|
| javax.microedition.io | 9 | 1 | 8 | 2 | 5 | 89.0% | 71.0% | 60.000004% | 1 |
| javax.microedition.lcdui | 53 | 43 | 10 | 6 | 9 | 19.0% | 60.000004% | 21.0% | 1 |
| javax.microedition.lcdui.game | 7 | 5 | 2 | 2 | 4 | 29.0% | 67.0% | 5.0% | 1 |
| javax.microedition.media | 8 | 4 | 4 | 3 | 6 | 50.0% | 67.0% | 17.0% | 1 |
| javax.microedition.media.control | 2 | 0 | 2 | 1 | 2 | 100.0% | 67.0% | 67.0% | 1 |
| javax.microedition.midlet | 3 | 2 | 1 | 3 | 3 | 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 | 6 | 12 | 70.0% | 67.0% | 37.0% | 1 |
| org.microemu.app | 1 | 0 | 1 | 1 | 1 | 100.0% | 50.0% | 50.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 | 1 | 2 | 100.0% | 67.0% | 67.0% | 1 |
| org.microemu.device | 9 | 2 | 7 | 3 | 5 | 78.0% | 62.0% | 40.0% | 1 |
| org.microemu.device.impl | 3 | 1 | 2 | 1 | 2 | 67.0% | 67.0% | 33.0% | 1 |
| org.microemu.device.ui | 5 | 0 | 5 | 3 | 2 | 100.0% | 40.0% | 40.0% | 1 |
| org.microemu.microedition.io | 1 | 0 | 1 | 1 | 3 | 100.0% | 75.0% | 75.0% | 1 |
| org.microemu.midp.media | 3 | 0 | 3 | 1 | 3 | 100.0% | 75.0% | 75.0% | 1 |
| org.microemu.midp.media.audio | 8 | 8 | 0 | 1 | 7 | 0.0% | 88.0% | 12.0% | 1 |
| org.microemu.util | 6 | 5 | 1 | 1 | 5 | 17.0% | 83.0% | 0.0% | 1 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 5 | 89.0% | 71.0% | 60.000004% |
| 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.microedition.io | java.io java.lang javax.microedition.pki org.microemu.microedition org.microemu.microedition.io |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 6 | 9 | 19.0% | 60.000004% | 21.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.EventDispatcher$Event 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.CommandManager javax.microedition.lcdui.CommandManager$1 javax.microedition.lcdui.CommandManager$MenuList 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$AlertTimeout javax.microedition.lcdui.Display$DisplayAccessor javax.microedition.lcdui.Display$GaugePaintTask javax.microedition.lcdui.Display$KeyEvent javax.microedition.lcdui.Display$RunnableWrapper javax.microedition.lcdui.Display$ShowHideNotifyEvent javax.microedition.lcdui.Display$TickerPaintTask javax.microedition.lcdui.EventDispatcher javax.microedition.lcdui.EventDispatcher$PaintEvent javax.microedition.lcdui.EventDispatcher$PointerEvent javax.microedition.lcdui.EventDispatcher$RunnableEvent 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.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 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.impl org.microemu.device.ui |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 4 | 29.0% | 67.0% | 5.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 | java.lang java.util javax.microedition.lcdui org.microemu |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 6 | 50.0% | 67.0% | 17.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| javax.microedition.media.Control javax.microedition.media.Controllable javax.microedition.media.Player javax.microedition.media.PlayerListener | javax.microedition.media.Manager javax.microedition.media.MediaException javax.microedition.media.MidiAudioPlayer javax.microedition.media.SampledAudioPlayer | javax.microedition.media.control org.microemu.midp.media org.microemu.midp.media.audio | java.io java.lang java.util javax.sound.midi javax.sound.sampled org.microemu.midp.media.audio |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 2 | 100.0% | 67.0% | 67.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| javax.microedition.media.control.ToneControl javax.microedition.media.control.VolumeControl | None | org.microemu.midp.media.audio | java.lang javax.microedition.media |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 3 | 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.launcher | java.lang javax.microedition.io 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 |
|---|---|---|---|---|
| 6 | 12 | 70.0% | 67.0% | 37.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.DisplayAccess org.microemu.DisplayComponent org.microemu.EmulatorContext 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.launcher org.microemu.util | java.io java.lang java.util javax.microedition.lcdui javax.microedition.lcdui.game javax.microedition.midlet javax.microedition.rms org.microemu.app.launcher org.microemu.app.ui org.microemu.device org.microemu.device.ui org.microemu.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 1 | 100.0% | 50.0% | 50.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.app.CommonInterface | None | org.microemu.app.launcher | java.lang |
| 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 |
|---|---|---|---|---|
| 1 | 2 | 100.0% | 67.0% | 67.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.app.ui.DisplayRepaintListener | None | org.microemu | java.lang org.microemu.device |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 5 | 78.0% | 62.0% | 40.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.device.Device org.microemu.device.DeviceDisplay org.microemu.device.DisplayGraphics 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 org.microemu org.microemu.app.ui | java.io java.lang java.util javax.microedition.lcdui org.microemu.device.ui |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 2 | 67.0% | 67.0% | 33.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 | javax.microedition.lcdui | java.lang javax.microedition.lcdui |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 2 | 100.0% | 40.0% | 40.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.device.ui.CanvasUI org.microemu.device.ui.DisplayableUI org.microemu.device.ui.ListUI org.microemu.device.ui.TextBoxUI org.microemu.device.ui.UIFactory | None | javax.microedition.lcdui org.microemu org.microemu.device | java.lang javax.microedition.lcdui |
| 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 | 3 | 100.0% | 75.0% | 75.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.microemu.midp.media.BasicPlayer org.microemu.midp.media.RunnableInterface org.microemu.midp.media.TimeBase | None | org.microemu.midp.media.audio | java.lang java.util javax.microedition.media |
| 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 | org.microemu.midp.media.audio.PCTimeBase org.microemu.midp.media.audio.PCTone org.microemu.midp.media.audio.PCToneControl org.microemu.midp.media.audio.PCToneHelper org.microemu.midp.media.audio.PCTonePlayer org.microemu.midp.media.audio.PCToneRunnable org.microemu.midp.media.audio.PCToneRunnablePoolFactory org.microemu.midp.media.audio.ToneInfo | javax.microedition.media | java.io java.lang java.util javax.microedition.media javax.microedition.media.control javax.sound.sampled org.microemu.midp.media |
| 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.device.ui javax.microedition.lcdui |
| javax.microedition.lcdui.game | javax.microedition.lcdui org.microemu.device org.microemu.device.ui javax.microedition.lcdui |
| javax.microedition.media | org.microemu.midp.media.audio org.microemu.midp.media javax.microedition.media |
| javax.microedition.media.control | javax.microedition.media org.microemu.midp.media.audio org.microemu.midp.media javax.microedition.media |
| javax.microedition.midlet | org.microemu org.microemu.device org.microemu.device.ui javax.microedition.lcdui org.microemu.device |
| javax.microedition.rms | org.microemu org.microemu.device org.microemu.device.ui javax.microedition.lcdui org.microemu.device |
| org.microemu | org.microemu.device org.microemu.device.ui javax.microedition.lcdui org.microemu.device |
| org.microemu.app.launcher | org.microemu org.microemu.device org.microemu.device.ui javax.microedition.lcdui org.microemu.device |
| org.microemu.app.ui | org.microemu.device org.microemu.device.ui javax.microedition.lcdui org.microemu.device |
| org.microemu.device | org.microemu.device.ui javax.microedition.lcdui org.microemu.device |
| org.microemu.device.impl | javax.microedition.lcdui org.microemu.device org.microemu.device.ui javax.microedition.lcdui |
| org.microemu.device.ui | javax.microedition.lcdui org.microemu.device org.microemu.device.ui |
| org.microemu.microedition.io | javax.microedition.io org.microemu.microedition.io |
| org.microemu.midp.media | javax.microedition.media org.microemu.midp.media.audio org.microemu.midp.media |
| org.microemu.midp.media.audio | org.microemu.midp.media javax.microedition.media org.microemu.midp.media.audio |
| org.microemu.util | javax.microedition.rms org.microemu org.microemu.device org.microemu.device.ui javax.microedition.lcdui org.microemu.device |
| 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. |