Metric Results

[ summary ] [ packages ] [ cycles ] [ explanations ]

The following document contains the results of a JDepend metric analysis. The various metrics are defined at the bottom of this document.

Summary

[ summary ] [ packages ] [ cycles ] [ explanations ]

Package TC CC AC Ca Ce A I D V
org.gwe.rse 10 9 1 4 4 10.0% 50.0% 40.0% 1
org.gwe.rse.datasets 8 6 2 2 2 25.0% 50.0% 25.0% 1
org.gwe.rse.json 9 9 0 2 5 0.0% 71.0% 29.0% 1
org.gwe.rse.provider 15 13 2 3 7 13.0% 70.0% 17.0% 1
org.gwe.rse.provider.xnat 3 3 0 0 8 0.0% 100.0% 0.0% 1
org.gwe.rse.render 2 2 0 2 7 0.0% 78.0% 22.0% 1
org.gwe.rse.servlet 11 9 2 1 13 18.0% 93.0% 11.0% 1
org.gwe.rse.servlet.jetty 2 2 0 0 9 0.0% 100.0% 0.0% 1
org.gwe.rse.servlet.sessions 4 4 0 2 4 0.0% 67.0% 33.0% 1
org.gwe.rse.utils 6 5 1 4 11 17.0% 73.0% 10.0% 1

Packages

[ summary ] [ packages ] [ cycles ] [ explanations ]

org.gwe.rse

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 4 10.0% 50.0% 40.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.gwe.rse.AbstractRecordProvider
org.gwe.rse.AbstractRecordProvider$1
org.gwe.rse.DataSetRecordProvider
org.gwe.rse.DataSetView
org.gwe.rse.FieldData
org.gwe.rse.FieldDataMap
org.gwe.rse.FieldMeta
org.gwe.rse.RecordData
org.gwe.rse.RecordMeta
org.gwe.rse.RecordProviderState
org.gwe.rse.json
org.gwe.rse.provider
org.gwe.rse.provider.xnat
org.gwe.rse.servlet
java.lang
java.util
org.gwe.rse.datasets
org.gwe.rse.utils

org.gwe.rse.datasets

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 2 25.0% 50.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.gwe.rse.datasets.DataSetSource
org.gwe.rse.datasets.IDataSet
org.gwe.rse.datasets.CSVDataSetSource
org.gwe.rse.datasets.DataSet
org.gwe.rse.datasets.DataSet$FieldValues
org.gwe.rse.datasets.DataSet$Match
org.gwe.rse.datasets.DataSet$Record
org.gwe.rse.datasets.JSONDataSetSource
org.gwe.rse
org.gwe.rse.provider
java.lang
java.util

org.gwe.rse.json

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.gwe.rse.json.JSONAwareList
org.gwe.rse.json.JSONDataSetView
org.gwe.rse.json.JSONDataSetView$1
org.gwe.rse.json.JSONFieldDescriptorList
org.gwe.rse.json.JSONFieldDescriptorList$1
org.gwe.rse.json.JSONFieldMetadataList
org.gwe.rse.json.JSONFieldMetadataList$1
org.gwe.rse.json.JSONRecordSet
org.gwe.rse.json.JSONTest
org.gwe.rse.servlet
org.gwe.rse.servlet.sessions
java.io
java.lang
java.util
org.gwe.rse
org.json.simple

org.gwe.rse.provider

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 7 13.0% 70.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.gwe.rse.provider.ProviderCreator
org.gwe.rse.provider.TreeBasedRecordProvider
org.gwe.rse.provider.CSVDataSetRecordProvider
org.gwe.rse.provider.RP4CSVLocal
org.gwe.rse.provider.RP4CSVRemote
org.gwe.rse.provider.RP4LocalFS
org.gwe.rse.provider.RP4REST
org.gwe.rse.provider.RP4TestInMemory
org.gwe.rse.provider.RecordProviderFactory
org.gwe.rse.provider.RecordProviderFactory$1
org.gwe.rse.provider.RecordProviderFactory$2
org.gwe.rse.provider.RecordProviderFactory$3
org.gwe.rse.provider.RecordProviderFactory$4
org.gwe.rse.provider.RecordProviderFactory$5
org.gwe.rse.provider.RecordSetProviderRepo
org.gwe.rse.provider.xnat
org.gwe.rse.servlet
org.gwe.rse.servlet.sessions
java.io
java.lang
java.net
java.util
org.gwe.rse
org.gwe.rse.datasets
org.gwe.rse.utils

org.gwe.rse.provider.xnat

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 8 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.gwe.rse.provider.xnat.RP4XNAT
org.gwe.rse.provider.xnat.XNATFieldMeta
org.gwe.rse.provider.xnat.XNATMetadata
None java.lang
java.net
java.util
org.gwe.rse
org.gwe.rse.provider
org.gwe.rse.render
org.gwe.rse.utils
sun.misc

org.gwe.rse.render

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 7 0.0% 78.0% 22.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.gwe.rse.render.BrowserTemplate
org.gwe.rse.render.RenderTemplate
org.gwe.rse.provider.xnat
org.gwe.rse.servlet
java.io
java.lang
java.util
org.apache.velocity
org.apache.velocity.app
org.gwe.rse.servlet.sessions
org.gwe.rse.utils

org.gwe.rse.servlet

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 13 18.0% 93.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.gwe.rse.servlet.BaseRSEServlet
org.gwe.rse.servlet.BrowserServlet
org.gwe.rse.servlet.DefineRecordSetServlet
org.gwe.rse.servlet.ExploreRecordSetServlet
org.gwe.rse.servlet.HandleViewServlet
org.gwe.rse.servlet.ImageServlet
org.gwe.rse.servlet.JSONRecordServlet
org.gwe.rse.servlet.LoginServlet
org.gwe.rse.servlet.LogoutServlet
org.gwe.rse.servlet.RSEServletUtils
org.gwe.rse.servlet.SaveRecordSetServlet
org.gwe.rse.servlet.jetty
java.io
java.lang
java.util
javax.servlet
javax.servlet.http
org.apache.commons.fileupload
org.apache.commons.fileupload.servlet
org.apache.commons.fileupload.util
org.gwe.rse
org.gwe.rse.json
org.gwe.rse.provider
org.gwe.rse.render
org.gwe.rse.servlet.sessions

org.gwe.rse.servlet.jetty

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 9 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.gwe.rse.servlet.jetty.RSEServletContext
org.gwe.rse.servlet.jetty.WebServerApp
None java.io
java.lang
java.util
javax.servlet.http
org.apache.commons.logging
org.gwe.rse.servlet
org.mortbay.jetty
org.mortbay.jetty.handler
org.mortbay.jetty.servlet

org.gwe.rse.servlet.sessions

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 4 0.0% 67.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.gwe.rse.servlet.sessions.AuthRecordSetProviderRepo
org.gwe.rse.servlet.sessions.SessionsRepo
org.gwe.rse.servlet.sessions.UserAuth
org.gwe.rse.servlet.sessions.UserSession
org.gwe.rse.render
org.gwe.rse.servlet
java.lang
java.util
org.gwe.rse.json
org.gwe.rse.provider

org.gwe.rse.utils

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 11 17.0% 73.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.gwe.rse.utils.IIdentifiable
org.gwe.rse.utils.HTTPRequester
org.gwe.rse.utils.IOStaticUtils
org.gwe.rse.utils.IdentifiableMap
org.gwe.rse.utils.TreeDS
org.gwe.rse.utils.XPathValueList
org.gwe.rse
org.gwe.rse.provider
org.gwe.rse.provider.xnat
org.gwe.rse.render
java.io
java.lang
java.net
java.util
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.stream
javax.xml.xpath
org.w3c.dom
org.xml.sax
sun.misc

Cycles

[ summary ] [ packages ] [ cycles ] [ explanations ]

There are no cyclic dependencies.

Explanation

[ summary ] [ packages ] [ cycles ] [ explanations ]

The following explanations are for quick reference and are lifted directly from the original JDepend documentation.

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.