Package | TC | CC | AC | Ca | Ce | A | I | D | V |
---|---|---|---|---|---|---|---|---|---|
org.apache.commons.net | 10 | 6 | 4 | 13 | 6 | 40.0% | 32.0% | 28.0% | 1 |
org.apache.commons.net.bsd | 3 | 3 | 0 | 0 | 6 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.net.chargen | 2 | 2 | 0 | 0 | 4 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.net.daytime | 2 | 2 | 0 | 0 | 4 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.net.discard | 2 | 2 | 0 | 1 | 3 | 0.0% | 75.0% | 25.0% | 1 |
org.apache.commons.net.echo | 2 | 2 | 0 | 0 | 3 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.net.finger | 1 | 1 | 0 | 1 | 3 | 0.0% | 75.0% | 25.0% | 1 |
org.apache.commons.net.ftp | 15 | 12 | 3 | 1 | 13 | 20.0% | 93.0% | 13.0% | 1 |
org.apache.commons.net.ftp.parser | 18 | 14 | 4 | 1 | 6 | 22.0% | 86.0% | 8.0% | 1 |
org.apache.commons.net.io | 13 | 12 | 1 | 7 | 5 | 8.0% | 42.0% | 51.0% | 1 |
org.apache.commons.net.nntp | 13 | 12 | 1 | 0 | 5 | 8.0% | 100.0% | 8.0% | 1 |
org.apache.commons.net.ntp | 6 | 5 | 1 | 0 | 7 | 17.0% | 100.0% | 17.0% | 1 |
org.apache.commons.net.pop3 | 5 | 5 | 0 | 0 | 6 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.net.smtp | 7 | 7 | 0 | 0 | 6 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.net.telnet | 14 | 12 | 2 | 0 | 4 | 14.0% | 100.0% | 14.0% | 1 |
org.apache.commons.net.tftp | 10 | 8 | 2 | 0 | 6 | 20.0% | 100.0% | 20.0% | 1 |
org.apache.commons.net.time | 2 | 2 | 0 | 0 | 4 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.net.util | 4 | 4 | 0 | 2 | 5 | 0.0% | 71.0% | 29.0% | 1 |
org.apache.commons.net.whois | 1 | 1 | 0 | 0 | 3 | 0.0% | 100.0% | 0.0% | 1 |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
13 | 6 | 40.0% | 32.0% | 28.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.net.DatagramSocketClient org.apache.commons.net.DatagramSocketFactory org.apache.commons.net.ProtocolCommandListener org.apache.commons.net.SocketClient |
org.apache.commons.net.DefaultDatagramSocketFactory org.apache.commons.net.DefaultSocketFactory org.apache.commons.net.MalformedServerReplyException org.apache.commons.net.PrintCommandListener org.apache.commons.net.ProtocolCommandEvent org.apache.commons.net.ProtocolCommandSupport |
org.apache.commons.net.bsd org.apache.commons.net.chargen org.apache.commons.net.daytime org.apache.commons.net.discard org.apache.commons.net.finger org.apache.commons.net.ftp org.apache.commons.net.nntp org.apache.commons.net.ntp org.apache.commons.net.pop3 org.apache.commons.net.smtp org.apache.commons.net.telnet org.apache.commons.net.tftp org.apache.commons.net.time |
java.io java.lang java.net java.util javax.net org.apache.commons.net.util |
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 | org.apache.commons.net.bsd.RCommandClient org.apache.commons.net.bsd.RExecClient org.apache.commons.net.bsd.RLoginClient |
None | java.io java.lang java.net javax.net org.apache.commons.net org.apache.commons.net.io |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 4 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.net.chargen.CharGenTCPClient org.apache.commons.net.chargen.CharGenUDPClient |
None | java.io java.lang java.net org.apache.commons.net |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 4 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.net.daytime.DaytimeTCPClient org.apache.commons.net.daytime.DaytimeUDPClient |
None | java.io java.lang java.net org.apache.commons.net |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 3 | 0.0% | 75.0% | 25.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.net.discard.DiscardTCPClient org.apache.commons.net.discard.DiscardUDPClient |
org.apache.commons.net.echo |
java.io java.net org.apache.commons.net |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 3 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.net.echo.EchoTCPClient org.apache.commons.net.echo.EchoUDPClient |
None | java.io java.net org.apache.commons.net.discard |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 3 | 0.0% | 75.0% | 25.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.net.finger.FingerClient |
org.apache.commons.net.whois |
java.io java.lang org.apache.commons.net |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 13 | 20.0% | 93.0% | 13.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.net.ftp.Configurable org.apache.commons.net.ftp.FTPFileEntryParser org.apache.commons.net.ftp.FTPFileEntryParserImpl |
org.apache.commons.net.ftp.FTP org.apache.commons.net.ftp.FTPClient org.apache.commons.net.ftp.FTPClientConfig org.apache.commons.net.ftp.FTPCommand org.apache.commons.net.ftp.FTPConnectionClosedException org.apache.commons.net.ftp.FTPFile org.apache.commons.net.ftp.FTPListParseEngine org.apache.commons.net.ftp.FTPReply org.apache.commons.net.ftp.FTPSClient org.apache.commons.net.ftp.FTPSCommand org.apache.commons.net.ftp.FTPSSocketFactory org.apache.commons.net.ftp.FTPSTrustManager |
org.apache.commons.net.ftp.parser |
java.io java.lang java.net java.security java.security.cert java.text java.util java.util.regex javax.net javax.net.ssl org.apache.commons.net org.apache.commons.net.ftp.parser org.apache.commons.net.io |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 6 | 22.0% | 86.0% | 8.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.net.ftp.parser.ConfigurableFTPFileEntryParserImpl org.apache.commons.net.ftp.parser.FTPFileEntryParserFactory org.apache.commons.net.ftp.parser.FTPTimestampParser org.apache.commons.net.ftp.parser.RegexFTPFileEntryParserImpl |
org.apache.commons.net.ftp.parser.CompositeFileEntryParser org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory org.apache.commons.net.ftp.parser.EnterpriseUnixFTPEntryParser org.apache.commons.net.ftp.parser.FTPTimestampParserImpl org.apache.commons.net.ftp.parser.MVSFTPEntryParser org.apache.commons.net.ftp.parser.NTFTPEntryParser org.apache.commons.net.ftp.parser.NetwareFTPEntryParser org.apache.commons.net.ftp.parser.OS2FTPEntryParser org.apache.commons.net.ftp.parser.OS400FTPEntryParser org.apache.commons.net.ftp.parser.ParserInitializationException org.apache.commons.net.ftp.parser.UnixFTPEntryParser org.apache.commons.net.ftp.parser.VMSFTPEntryParser org.apache.commons.net.ftp.parser.VMSVersioningFTPEntryParser org.apache.commons.net.ftp.parser.VMSVersioningFTPEntryParser$NameVersion |
org.apache.commons.net.ftp |
java.io java.lang java.text java.util java.util.regex org.apache.commons.net.ftp |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
7 | 5 | 8.0% | 42.0% | 51.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.net.io.CopyStreamListener |
org.apache.commons.net.io.CopyStreamAdapter org.apache.commons.net.io.CopyStreamEvent org.apache.commons.net.io.CopyStreamException org.apache.commons.net.io.DotTerminatedMessageReader org.apache.commons.net.io.DotTerminatedMessageWriter org.apache.commons.net.io.FromNetASCIIInputStream org.apache.commons.net.io.FromNetASCIIOutputStream org.apache.commons.net.io.SocketInputStream org.apache.commons.net.io.SocketOutputStream org.apache.commons.net.io.ToNetASCIIInputStream org.apache.commons.net.io.ToNetASCIIOutputStream org.apache.commons.net.io.Util |
org.apache.commons.net.bsd org.apache.commons.net.ftp org.apache.commons.net.nntp org.apache.commons.net.pop3 org.apache.commons.net.smtp org.apache.commons.net.telnet org.apache.commons.net.tftp |
java.io java.lang java.net java.util org.apache.commons.net.util |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 5 | 8.0% | 100.0% | 8.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.net.nntp.Threadable |
org.apache.commons.net.nntp.Article org.apache.commons.net.nntp.ArticlePointer org.apache.commons.net.nntp.NNTP org.apache.commons.net.nntp.NNTPClient org.apache.commons.net.nntp.NNTPCommand org.apache.commons.net.nntp.NNTPConnectionClosedException org.apache.commons.net.nntp.NNTPReply org.apache.commons.net.nntp.NewGroupsOrNewsQuery org.apache.commons.net.nntp.NewsgroupInfo org.apache.commons.net.nntp.SimpleNNTPHeader org.apache.commons.net.nntp.ThreadContainer org.apache.commons.net.nntp.Threader |
None | java.io java.lang java.util org.apache.commons.net org.apache.commons.net.io |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 7 | 17.0% | 100.0% | 17.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.net.ntp.NtpV3Packet |
org.apache.commons.net.ntp.NTPUDPClient org.apache.commons.net.ntp.NtpUtils org.apache.commons.net.ntp.NtpV3Impl org.apache.commons.net.ntp.TimeInfo org.apache.commons.net.ntp.TimeStamp |
None | java.io java.lang java.lang.ref java.net java.text java.util org.apache.commons.net |
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 | org.apache.commons.net.pop3.POP3 org.apache.commons.net.pop3.POP3Client org.apache.commons.net.pop3.POP3Command org.apache.commons.net.pop3.POP3MessageInfo org.apache.commons.net.pop3.POP3Reply |
None | java.io java.lang java.security java.util org.apache.commons.net org.apache.commons.net.io |
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 | org.apache.commons.net.smtp.RelayPath org.apache.commons.net.smtp.SMTP org.apache.commons.net.smtp.SMTPClient org.apache.commons.net.smtp.SMTPCommand org.apache.commons.net.smtp.SMTPConnectionClosedException org.apache.commons.net.smtp.SMTPReply org.apache.commons.net.smtp.SimpleSMTPHeader |
None | java.io java.lang java.net java.util org.apache.commons.net org.apache.commons.net.io |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 4 | 14.0% | 100.0% | 14.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.net.telnet.TelnetNotificationHandler org.apache.commons.net.telnet.TelnetOptionHandler |
org.apache.commons.net.telnet.EchoOptionHandler org.apache.commons.net.telnet.InvalidTelnetOptionException org.apache.commons.net.telnet.SimpleOptionHandler org.apache.commons.net.telnet.SuppressGAOptionHandler org.apache.commons.net.telnet.Telnet org.apache.commons.net.telnet.TelnetClient org.apache.commons.net.telnet.TelnetCommand org.apache.commons.net.telnet.TelnetInputStream org.apache.commons.net.telnet.TelnetOption org.apache.commons.net.telnet.TelnetOutputStream org.apache.commons.net.telnet.TerminalTypeOptionHandler org.apache.commons.net.telnet.WindowSizeOptionHandler |
None | java.io java.lang org.apache.commons.net org.apache.commons.net.io |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 6 | 20.0% | 100.0% | 20.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.net.tftp.TFTPPacket org.apache.commons.net.tftp.TFTPRequestPacket |
org.apache.commons.net.tftp.TFTP org.apache.commons.net.tftp.TFTPAckPacket org.apache.commons.net.tftp.TFTPClient org.apache.commons.net.tftp.TFTPDataPacket org.apache.commons.net.tftp.TFTPErrorPacket org.apache.commons.net.tftp.TFTPPacketException org.apache.commons.net.tftp.TFTPReadRequestPacket org.apache.commons.net.tftp.TFTPWriteRequestPacket |
None | java.io java.lang java.net java.util org.apache.commons.net org.apache.commons.net.io |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 4 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.net.time.TimeTCPClient org.apache.commons.net.time.TimeUDPClient |
None | java.io java.net java.util org.apache.commons.net |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 5 | 0.0% | 71.0% | 29.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.net.util.ListenerList org.apache.commons.net.util.SubnetUtils org.apache.commons.net.util.SubnetUtils$1 org.apache.commons.net.util.SubnetUtils$SubnetInfo |
org.apache.commons.net org.apache.commons.net.io |
java.io java.lang java.util java.util.concurrent java.util.regex |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 3 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.net.whois.WhoisClient |
None | java.io java.lang org.apache.commons.net.finger |
Package | Package Dependencies |
---|---|
org.apache.commons.net.ftp | org.apache.commons.net.ftp.parser org.apache.commons.net.ftp |
org.apache.commons.net.ftp.parser | org.apache.commons.net.ftp org.apache.commons.net.ftp.parser |
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. |