| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 9 | 3 | 25.0% | 25.0% | 50.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| com.xentelco.asterisk.agi.Action |
com.xentelco.asterisk.agi.AgiCommandResponse com.xentelco.asterisk.agi.AgiException com.xentelco.asterisk.agi.SessionAttribute |
com.xentelco.asterisk.agi.codec.command com.xentelco.asterisk.agi.codec.command.request com.xentelco.asterisk.agi.codec.command.response com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.command com.xentelco.asterisk.agi.handler com.xentelco.asterisk.agi.script com.xentelco.asterisk.agi.services com.xentelco.asterisk.agi.services.impl |
java.io java.lang java.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 6 | 4 | 0.0% | 40.0% | 60.000004% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.aspects.CommandUtils com.xentelco.asterisk.agi.aspects.LoggingAspect |
com.xentelco.asterisk.agi.codec.command com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.command com.xentelco.asterisk.agi.filter com.xentelco.asterisk.agi.handler com.xentelco.mina.handler |
java.io java.lang org.aspectj.lang org.aspectj.runtime.internal |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 2 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.channel.Channel com.xentelco.asterisk.agi.channel.Status |
None | java.io java.lang |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 5 | 0.0% | 83.0% | 17.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.codec.AgiCodecFactory |
com.xentelco.asterisk.agi.server |
com.xentelco.asterisk.agi.codec.command com.xentelco.asterisk.agi.codec.command.request com.xentelco.asterisk.agi.codec.server java.lang org.apache.mina.filter.codec.demux |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 19 | 0.0% | 90.0% | 10.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.codec.command.AgiCommandDecoder com.xentelco.asterisk.agi.codec.command.AgiCommandEncoder com.xentelco.asterisk.agi.codec.command.AgiCommandIoHandler com.xentelco.asterisk.agi.codec.command.AgiCommandResponseMessageHandler |
com.xentelco.asterisk.agi.codec com.xentelco.asterisk.agi.server |
com.xentelco.asterisk.agi com.xentelco.asterisk.agi.aspects com.xentelco.asterisk.agi.codec.command.request com.xentelco.asterisk.agi.codec.command.response com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.session java.io java.lang java.nio.charset java.util org.apache.mina.core.buffer org.apache.mina.core.service org.apache.mina.core.session org.apache.mina.filter.codec org.apache.mina.filter.codec.demux org.apache.mina.handler.chain org.apache.mina.handler.demux org.apache.mina.transport.socket org.apache.mina.transport.socket.nio |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 4 | 0.0% | 57.0% | 43.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.codec.command.request.AgiCommandRequest |
com.xentelco.asterisk.agi.codec com.xentelco.asterisk.agi.codec.command com.xentelco.asterisk.agi.services.impl |
com.xentelco.asterisk.agi java.io java.lang org.apache.commons.lang.builder |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 7 | 6 | 0.0% | 46.0% | 54.000004% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.codec.command.response.AgiCommandResponse com.xentelco.asterisk.agi.codec.command.response.AgiCommandResponseCode com.xentelco.asterisk.agi.codec.command.response.AgiCommandResponseUtils com.xentelco.asterisk.agi.codec.command.response.ResponseStatus |
com.xentelco.asterisk.agi.codec.command com.xentelco.asterisk.agi.command com.xentelco.asterisk.agi.handler com.xentelco.asterisk.agi.server com.xentelco.asterisk.agi.services com.xentelco.asterisk.agi.services.impl com.xentelco.asterisk.agi.session |
com.xentelco.asterisk.agi java.io java.lang java.util java.util.regex org.apache.commons.lang.builder |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 5 | 19 | 0.0% | 79.0% | 21.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.codec.server.AgiRequest com.xentelco.asterisk.agi.codec.server.AgiRequestConstants com.xentelco.asterisk.agi.codec.server.AgiRequestDecoder com.xentelco.asterisk.agi.codec.server.AgiRequestEncoder com.xentelco.asterisk.agi.codec.server.AgiRequestIoHandler com.xentelco.asterisk.agi.codec.server.AgiRequestMessageHandler com.xentelco.asterisk.agi.codec.server.AgiRequestUtils |
com.xentelco.asterisk.agi.codec com.xentelco.asterisk.agi.codec.command com.xentelco.asterisk.agi.handler com.xentelco.asterisk.agi.server com.xentelco.asterisk.agi.session |
com.xentelco.asterisk.agi com.xentelco.asterisk.agi.aspects com.xentelco.asterisk.agi.script com.xentelco.asterisk.agi.script.mapping com.xentelco.asterisk.agi.session java.io java.lang java.nio.charset java.util java.util.regex org.apache.commons.lang.builder org.apache.mina.core.buffer org.apache.mina.core.service org.apache.mina.core.session org.apache.mina.filter.codec org.apache.mina.filter.codec.demux org.apache.mina.handler.demux org.apache.mina.transport.socket org.apache.mina.transport.socket.nio |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 9 | 2.0% | 90.0% | 8.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| com.xentelco.asterisk.agi.command.AbstractCommand |
com.xentelco.asterisk.agi.command.AbstractCommand$CommandResult com.xentelco.asterisk.agi.command.Answer com.xentelco.asterisk.agi.command.ChannelStatus com.xentelco.asterisk.agi.command.ControlStreamFile com.xentelco.asterisk.agi.command.DatabaseDel com.xentelco.asterisk.agi.command.DatabaseDelTree com.xentelco.asterisk.agi.command.DatabaseGet com.xentelco.asterisk.agi.command.DatabasePut com.xentelco.asterisk.agi.command.Exec com.xentelco.asterisk.agi.command.GetData com.xentelco.asterisk.agi.command.GetFullVariable com.xentelco.asterisk.agi.command.GetOption com.xentelco.asterisk.agi.command.GetVariable com.xentelco.asterisk.agi.command.Hangup com.xentelco.asterisk.agi.command.NoOp com.xentelco.asterisk.agi.command.Pause com.xentelco.asterisk.agi.command.ReceiveChar com.xentelco.asterisk.agi.command.ReceiveText com.xentelco.asterisk.agi.command.RecordFile com.xentelco.asterisk.agi.command.SayAlpha com.xentelco.asterisk.agi.command.SayDate com.xentelco.asterisk.agi.command.SayDatetime com.xentelco.asterisk.agi.command.SayDigits com.xentelco.asterisk.agi.command.SayNumber com.xentelco.asterisk.agi.command.SayPhonetic com.xentelco.asterisk.agi.command.SayTime com.xentelco.asterisk.agi.command.SendImage com.xentelco.asterisk.agi.command.SendText com.xentelco.asterisk.agi.command.SetAutoHangup com.xentelco.asterisk.agi.command.SetCallerId com.xentelco.asterisk.agi.command.SetContext com.xentelco.asterisk.agi.command.SetExtention com.xentelco.asterisk.agi.command.SetMusic com.xentelco.asterisk.agi.command.SetPriority com.xentelco.asterisk.agi.command.SetVariable com.xentelco.asterisk.agi.command.StreamFile com.xentelco.asterisk.agi.command.TddMode com.xentelco.asterisk.agi.command.TddMode$Mode com.xentelco.asterisk.agi.command.Verbose com.xentelco.asterisk.agi.command.WaitForDigit |
com.xentelco.asterisk.agi.script |
com.xentelco.asterisk.agi com.xentelco.asterisk.agi.aspects com.xentelco.asterisk.agi.codec.command.response java.io java.lang java.util org.aspectj.lang org.aspectj.runtime.internal org.aspectj.runtime.reflect |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 6 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.filter.TestFilter |
None | com.xentelco.asterisk.agi.aspects java.io java.lang org.apache.mina.core.filterchain org.apache.mina.core.session org.apache.mina.core.write |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 12 | 0.0% | 92.0% | 8.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.handler.AgiProtocolIoHandler com.xentelco.asterisk.agi.handler.AgiProtocolIoHandler$Worker |
com.xentelco.asterisk.agi.server |
com.xentelco.asterisk.agi com.xentelco.asterisk.agi.aspects com.xentelco.asterisk.agi.codec.command.response com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.session java.io java.lang java.util java.util.concurrent org.apache.mina.core.session org.apache.mina.handler.chain org.apache.mina.handler.stream |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 9 | 0.0% | 82.0% | 18.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.script.CommandListScript com.xentelco.asterisk.agi.script.ContextBasedScript com.xentelco.asterisk.agi.script.HelloAgiScript com.xentelco.asterisk.agi.script.Script |
com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.session |
com.xentelco.asterisk.agi com.xentelco.asterisk.agi.command com.xentelco.asterisk.agi.services com.xentelco.asterisk.agi.services.impl java.io java.lang java.util org.apache.commons.lang.builder org.apache.mina.core.session |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 1 | 0.0% | 50.0% | 50.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.script.mapping.MappingConfig |
com.xentelco.asterisk.agi.codec.server |
java.lang |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 18 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.server.XenServer |
None | com.xentelco.asterisk.agi.codec com.xentelco.asterisk.agi.codec.command com.xentelco.asterisk.agi.codec.command.response com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.handler com.xentelco.mina.handler java.io java.lang java.net java.util.concurrent org.apache.mina.core.filterchain org.apache.mina.core.session org.apache.mina.filter.codec org.apache.mina.filter.executor org.apache.mina.filter.logging org.apache.mina.handler.chain org.apache.mina.transport.socket org.apache.mina.transport.socket.nio |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 3 | 100.0% | 60.000004% | 60.000004% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| com.xentelco.asterisk.agi.services.AgiCommandService com.xentelco.asterisk.agi.services.ApplicationService com.xentelco.asterisk.agi.services.ChannelService com.xentelco.asterisk.agi.services.ContextService com.xentelco.asterisk.agi.services.DataService com.xentelco.asterisk.agi.services.DtmfService com.xentelco.asterisk.agi.services.FileStreamingService com.xentelco.asterisk.agi.services.VoiceService |
None | com.xentelco.asterisk.agi.script com.xentelco.asterisk.agi.services.impl |
com.xentelco.asterisk.agi com.xentelco.asterisk.agi.codec.command.response 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 | com.xentelco.asterisk.agi.services.impl.AgiCommandServiceImpl |
com.xentelco.asterisk.agi.script |
com.xentelco.asterisk.agi com.xentelco.asterisk.agi.codec.command.request com.xentelco.asterisk.agi.codec.command.response com.xentelco.asterisk.agi.services java.lang org.apache.mina.core.session |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 7 | 0.0% | 70.0% | 30.000002% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.asterisk.agi.session.AgiSession com.xentelco.asterisk.agi.session.Status |
com.xentelco.asterisk.agi.codec.command com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.handler |
com.xentelco.asterisk.agi.codec.command.response com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.script java.io java.lang java.util org.apache.commons.lang.builder |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 5 | 0.0% | 83.0% | 17.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | com.xentelco.mina.handler.ChainedDemuxingIoHandler |
com.xentelco.asterisk.agi.server |
com.xentelco.asterisk.agi.aspects java.lang org.apache.mina.core.session org.apache.mina.handler.chain org.apache.mina.handler.demux |
| Package | Package Dependencies |
|---|---|
| com.xentelco.asterisk.agi.codec | com.xentelco.asterisk.agi.codec.command com.xentelco.asterisk.agi.session com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.session |
| com.xentelco.asterisk.agi.codec.command | com.xentelco.asterisk.agi.session com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.session |
| com.xentelco.asterisk.agi.codec.server | com.xentelco.asterisk.agi.session com.xentelco.asterisk.agi.codec.server |
| com.xentelco.asterisk.agi.handler | com.xentelco.asterisk.agi.session com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.session |
| com.xentelco.asterisk.agi.server | com.xentelco.asterisk.agi.codec.command com.xentelco.asterisk.agi.session com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.session |
| com.xentelco.asterisk.agi.session | com.xentelco.asterisk.agi.codec.server com.xentelco.asterisk.agi.session |
| 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. |