Metric Results
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 |
---|---|---|---|---|---|---|---|---|---|
eu.fbk.knowledgestore | 40 | 20 | 20 | 1 | 14 | 50.0% | 93.0% | 43.0% | 1 |
eu.fbk.knowledgestore.data | 126 | 116 | 10 | 5 | 41 | 8.0% | 89.0% | 3.0% | 1 |
eu.fbk.knowledgestore.internal | 26 | 26 | 0 | 3 | 23 | 0.0% | 88.0% | 12.0% | 1 |
eu.fbk.knowledgestore.internal.jaxrs | 9 | 9 | 0 | 0 | 24 | 0.0% | 100.0% | 0.0% | 1 |
eu.fbk.knowledgestore.internal.rdf | 37 | 34 | 3 | 2 | 26 | 8.0% | 93.0% | 1.0% | 1 |
eu.fbk.knowledgestore.vocabulary | 10 | 9 | 1 | 3 | 3 | 10.0% | 50.0% | 40.0% | 1 |
org.jaxen.expr | 1 | 0 | 1 | 1 | 5 | 100.0% | 83.0% | 83.0% | 1 |
Packages
[ summary ] [ packages ] [ cycles ] [ explanations ]eu.fbk.knowledgestore
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 14 | 50.0% | 93.0% | 43.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
eu.fbk.knowledgestore.AbstractKnowledgeStore eu.fbk.knowledgestore.AbstractSession eu.fbk.knowledgestore.ForwardingKnowledgeStore eu.fbk.knowledgestore.ForwardingSession eu.fbk.knowledgestore.KnowledgeStore eu.fbk.knowledgestore.Operation eu.fbk.knowledgestore.Operation$Count eu.fbk.knowledgestore.Operation$Create eu.fbk.knowledgestore.Operation$Delete eu.fbk.knowledgestore.Operation$Download eu.fbk.knowledgestore.Operation$Match eu.fbk.knowledgestore.Operation$Merge eu.fbk.knowledgestore.Operation$Retrieve eu.fbk.knowledgestore.Operation$Sparql eu.fbk.knowledgestore.Operation$SparqlDelete eu.fbk.knowledgestore.Operation$SparqlUpdate eu.fbk.knowledgestore.Operation$Update eu.fbk.knowledgestore.Operation$Upload eu.fbk.knowledgestore.Session eu.fbk.knowledgestore.package-info |
eu.fbk.knowledgestore.AbstractSession$1 eu.fbk.knowledgestore.AbstractSession$10 eu.fbk.knowledgestore.AbstractSession$11 eu.fbk.knowledgestore.AbstractSession$12 eu.fbk.knowledgestore.AbstractSession$13 eu.fbk.knowledgestore.AbstractSession$14 eu.fbk.knowledgestore.AbstractSession$2 eu.fbk.knowledgestore.AbstractSession$3 eu.fbk.knowledgestore.AbstractSession$4 eu.fbk.knowledgestore.AbstractSession$5 eu.fbk.knowledgestore.AbstractSession$6 eu.fbk.knowledgestore.AbstractSession$7 eu.fbk.knowledgestore.AbstractSession$8 eu.fbk.knowledgestore.AbstractSession$9 eu.fbk.knowledgestore.Operation$1 eu.fbk.knowledgestore.OperationException eu.fbk.knowledgestore.Outcome eu.fbk.knowledgestore.Outcome$1 eu.fbk.knowledgestore.Outcome$2 eu.fbk.knowledgestore.Outcome$Status |
eu.fbk.knowledgestore.internal.jaxrs |
com.google.common.base com.google.common.collect com.google.common.util.concurrent eu.fbk.knowledgestore.data eu.fbk.knowledgestore.vocabulary java.io java.lang java.util java.util.concurrent java.util.concurrent.atomic java.util.regex org.openrdf.model org.openrdf.query org.slf4j |
eu.fbk.knowledgestore.data
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
5 | 41 | 8.0% | 89.0% | 3.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
eu.fbk.knowledgestore.data.Criteria eu.fbk.knowledgestore.data.Dictionary eu.fbk.knowledgestore.data.Handler eu.fbk.knowledgestore.data.Stream eu.fbk.knowledgestore.data.Stream$AbstractIterator eu.fbk.knowledgestore.data.Stream$DelegatingStream eu.fbk.knowledgestore.data.Stream$ProcessingStream eu.fbk.knowledgestore.data.XPath eu.fbk.knowledgestore.data.XPathFunction eu.fbk.knowledgestore.data.package-info |
eu.fbk.knowledgestore.data.Criteria$1 eu.fbk.knowledgestore.data.Criteria$Compose eu.fbk.knowledgestore.data.Criteria$Init eu.fbk.knowledgestore.data.Criteria$Max eu.fbk.knowledgestore.data.Criteria$Min eu.fbk.knowledgestore.data.Criteria$Overwrite eu.fbk.knowledgestore.data.Criteria$Union eu.fbk.knowledgestore.data.Criteria$Update eu.fbk.knowledgestore.data.Data eu.fbk.knowledgestore.data.Data$1 eu.fbk.knowledgestore.data.Data$NamespaceCombinedMap eu.fbk.knowledgestore.data.Data$NamespaceCombinedMap$EntrySet eu.fbk.knowledgestore.data.Data$NamespaceCombinedMap$EntrySet$1 eu.fbk.knowledgestore.data.Data$NamespaceCombinedMap$EntrySet$2 eu.fbk.knowledgestore.data.Data$NamespaceMap eu.fbk.knowledgestore.data.Data$NamespaceMap$EntrySet eu.fbk.knowledgestore.data.Data$NamespaceMap$EntrySet$1 eu.fbk.knowledgestore.data.Data$NamespaceMap$EntrySet$EntryWrapper eu.fbk.knowledgestore.data.Data$PartialOrdering eu.fbk.knowledgestore.data.Data$TotalOrdering eu.fbk.knowledgestore.data.Dictionary$1 eu.fbk.knowledgestore.data.Dictionary$HadoopDictionary eu.fbk.knowledgestore.data.Dictionary$LocalDictionary eu.fbk.knowledgestore.data.ParseException eu.fbk.knowledgestore.data.Record eu.fbk.knowledgestore.data.Record$1 eu.fbk.knowledgestore.data.Record$2 eu.fbk.knowledgestore.data.Record$Decoder eu.fbk.knowledgestore.data.Record$Decoder$Node eu.fbk.knowledgestore.data.Record$Encoder eu.fbk.knowledgestore.data.Representation eu.fbk.knowledgestore.data.Representation$ReaderInputStream eu.fbk.knowledgestore.data.Serializer eu.fbk.knowledgestore.data.Smaz eu.fbk.knowledgestore.data.Stream$1 eu.fbk.knowledgestore.data.Stream$2 eu.fbk.knowledgestore.data.Stream$3 eu.fbk.knowledgestore.data.Stream$4 eu.fbk.knowledgestore.data.Stream$5 eu.fbk.knowledgestore.data.Stream$6 eu.fbk.knowledgestore.data.Stream$CheckedIterator eu.fbk.knowledgestore.data.Stream$ChunkStream eu.fbk.knowledgestore.data.Stream$ChunkStream$1 eu.fbk.knowledgestore.data.Stream$ChunkStream$2 eu.fbk.knowledgestore.data.Stream$ConcatStream eu.fbk.knowledgestore.data.Stream$ConcatStream$1 eu.fbk.knowledgestore.data.Stream$ConcatStream$2 eu.fbk.knowledgestore.data.Stream$ConcatStream$2$1 eu.fbk.knowledgestore.data.Stream$DistinctStream eu.fbk.knowledgestore.data.Stream$EmptyStream eu.fbk.knowledgestore.data.Stream$FilterStream eu.fbk.knowledgestore.data.Stream$IterableStream eu.fbk.knowledgestore.data.Stream$IterationStream eu.fbk.knowledgestore.data.Stream$IterationStream$1 eu.fbk.knowledgestore.data.Stream$IteratorStream eu.fbk.knowledgestore.data.Stream$PathComparator eu.fbk.knowledgestore.data.Stream$ProcessingStream$1 eu.fbk.knowledgestore.data.Stream$ProcessingStream$2 eu.fbk.knowledgestore.data.Stream$ProcessingStream$3 eu.fbk.knowledgestore.data.Stream$ProcessingStream$4 eu.fbk.knowledgestore.data.Stream$ProcessingStream$5 eu.fbk.knowledgestore.data.Stream$SingletonStream eu.fbk.knowledgestore.data.Stream$SliceStream eu.fbk.knowledgestore.data.Stream$State eu.fbk.knowledgestore.data.Stream$ToHandlerIterator eu.fbk.knowledgestore.data.Stream$TrackStream eu.fbk.knowledgestore.data.Stream$TrackStream$1 eu.fbk.knowledgestore.data.Stream$TrackStream$2 eu.fbk.knowledgestore.data.Stream$TransformElementStream eu.fbk.knowledgestore.data.Stream$TransformPathStream eu.fbk.knowledgestore.data.Stream$TransformSequenceStream eu.fbk.knowledgestore.data.XPath$1 eu.fbk.knowledgestore.data.XPath$2 eu.fbk.knowledgestore.data.XPath$3 eu.fbk.knowledgestore.data.XPath$LenientXPath eu.fbk.knowledgestore.data.XPath$SerializedForm eu.fbk.knowledgestore.data.XPath$StrictXPath eu.fbk.knowledgestore.data.XPath$Support eu.fbk.knowledgestore.data.XPathFunction$1 eu.fbk.knowledgestore.data.XPathFunction$AbsFunction eu.fbk.knowledgestore.data.XPathFunction$AvgFunction eu.fbk.knowledgestore.data.XPathFunction$CompareFunction eu.fbk.knowledgestore.data.XPathFunction$CurrentDateTimeFunction eu.fbk.knowledgestore.data.XPathFunction$DateTimeFunction eu.fbk.knowledgestore.data.XPathFunction$DayFromDateTimeFunction eu.fbk.knowledgestore.data.XPathFunction$DistinctValuesFunction eu.fbk.knowledgestore.data.XPathFunction$EmptyFunction eu.fbk.knowledgestore.data.XPathFunction$EscapeURIFunction eu.fbk.knowledgestore.data.XPathFunction$ExistsFunction eu.fbk.knowledgestore.data.XPathFunction$HoursFromDateTimeFunction eu.fbk.knowledgestore.data.XPathFunction$IndexOfFunction eu.fbk.knowledgestore.data.XPathFunction$InsertBeforeFunction eu.fbk.knowledgestore.data.XPathFunction$MatchesFunction eu.fbk.knowledgestore.data.XPathFunction$MaxFunction eu.fbk.knowledgestore.data.XPathFunction$MinFunction eu.fbk.knowledgestore.data.XPathFunction$MinutesFromDateTimeFunction eu.fbk.knowledgestore.data.XPathFunction$MonthFromDateTimeFunction eu.fbk.knowledgestore.data.XPathFunction$PowerFunction eu.fbk.knowledgestore.data.XPathFunction$RemoveFunction eu.fbk.knowledgestore.data.XPathFunction$ReplaceFunction eu.fbk.knowledgestore.data.XPathFunction$ReverseFunction eu.fbk.knowledgestore.data.XPathFunction$SecondsFromDateTimeFunction eu.fbk.knowledgestore.data.XPathFunction$SequenceFunction eu.fbk.knowledgestore.data.XPathFunction$StrFunction eu.fbk.knowledgestore.data.XPathFunction$StrdtFunction eu.fbk.knowledgestore.data.XPathFunction$StringJoinFunction eu.fbk.knowledgestore.data.XPathFunction$StrlangFunction eu.fbk.knowledgestore.data.XPathFunction$SubsequenceFunction eu.fbk.knowledgestore.data.XPathFunction$TimeZoneFromDateTimeFunction eu.fbk.knowledgestore.data.XPathFunction$TokenizeFunction eu.fbk.knowledgestore.data.XPathFunction$URIFunction eu.fbk.knowledgestore.data.XPathFunction$YearFromDateTimeFunction eu.fbk.knowledgestore.data.XPathNavigator eu.fbk.knowledgestore.data.XPathNavigator$ChildIterator eu.fbk.knowledgestore.data.XPathNavigator$Element eu.fbk.knowledgestore.data.XPathNavigator$ParentIterator |
eu.fbk.knowledgestore eu.fbk.knowledgestore.internal eu.fbk.knowledgestore.internal.jaxrs eu.fbk.knowledgestore.internal.rdf org.jaxen.expr |
com.google.common.base com.google.common.cache com.google.common.collect com.google.common.hash com.google.common.io com.google.common.net com.google.common.primitives com.google.common.util.concurrent eu.fbk.knowledgestore.internal eu.fbk.knowledgestore.internal.rdf eu.fbk.knowledgestore.vocabulary eu.fbk.rdfpro.util info.aduna.iteration java.io java.lang java.lang.reflect java.math java.net java.nio java.nio.charset java.nio.file java.util java.util.concurrent java.util.concurrent.atomic java.util.regex java.util.zip javax.xml.datatype org.apache.hadoop.conf org.apache.hadoop.fs org.jaxen org.jaxen.expr org.jaxen.function org.jaxen.function.ext org.jaxen.saxpath org.jaxen.saxpath.helpers org.openrdf.model org.openrdf.model.impl org.openrdf.model.vocabulary org.openrdf.query org.openrdf.rio org.slf4j |
eu.fbk.knowledgestore.internal
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 23 | 0.0% | 88.0% | 12.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | eu.fbk.knowledgestore.internal.CommandLine eu.fbk.knowledgestore.internal.CommandLine$1 eu.fbk.knowledgestore.internal.CommandLine$Exception eu.fbk.knowledgestore.internal.CommandLine$Parser eu.fbk.knowledgestore.internal.CommandLine$Type eu.fbk.knowledgestore.internal.Compression eu.fbk.knowledgestore.internal.Compression$1 eu.fbk.knowledgestore.internal.Compression$2 eu.fbk.knowledgestore.internal.Compression$3 eu.fbk.knowledgestore.internal.Compression$4 eu.fbk.knowledgestore.internal.Compression$DestroyHook eu.fbk.knowledgestore.internal.Logging eu.fbk.knowledgestore.internal.Logging$BoldConverter eu.fbk.knowledgestore.internal.Logging$ContextConverter eu.fbk.knowledgestore.internal.Logging$NormalConverter eu.fbk.knowledgestore.internal.Logging$StatusAppender eu.fbk.knowledgestore.internal.Logging$StatusAppender$StatusAcceptorStream eu.fbk.knowledgestore.internal.Logging$StatusAppender$StatusGeneratorStream eu.fbk.knowledgestore.internal.Util eu.fbk.knowledgestore.internal.Util$1 eu.fbk.knowledgestore.internal.Util$2 eu.fbk.knowledgestore.internal.Util$3 eu.fbk.knowledgestore.internal.Util$MDCExecutorService eu.fbk.knowledgestore.internal.Util$MDCExecutorService$1 eu.fbk.knowledgestore.internal.Util$MDCExecutorService$2 eu.fbk.knowledgestore.internal.Util$MDCScheduledExecutorService |
eu.fbk.knowledgestore.data eu.fbk.knowledgestore.internal.jaxrs eu.fbk.knowledgestore.internal.rdf |
ch.qos.logback.classic ch.qos.logback.classic.pattern ch.qos.logback.classic.spi ch.qos.logback.core ch.qos.logback.core.encoder ch.qos.logback.core.pattern.color ch.qos.logback.core.spi ch.qos.logback.core.status ch.qos.logback.core.util com.google.common.base com.google.common.collect com.google.common.io com.google.common.reflect com.google.common.util.concurrent eu.fbk.knowledgestore.data java.io java.lang java.lang.reflect java.net java.util java.util.concurrent org.apache.commons.cli org.slf4j |
eu.fbk.knowledgestore.internal.jaxrs
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 24 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | eu.fbk.knowledgestore.internal.jaxrs.Protocol eu.fbk.knowledgestore.internal.jaxrs.Protocol$1 eu.fbk.knowledgestore.internal.jaxrs.Protocol$2 eu.fbk.knowledgestore.internal.jaxrs.Protocol$3 eu.fbk.knowledgestore.internal.jaxrs.Protocol$4 eu.fbk.knowledgestore.internal.jaxrs.Protocol$5 eu.fbk.knowledgestore.internal.jaxrs.Serializer eu.fbk.knowledgestore.internal.jaxrs.Serializer$1 eu.fbk.knowledgestore.internal.jaxrs.Serializer$2 |
None | com.google.common.base com.google.common.collect com.google.common.io com.google.common.reflect eu.fbk.knowledgestore eu.fbk.knowledgestore.data eu.fbk.knowledgestore.internal eu.fbk.knowledgestore.internal.rdf eu.fbk.knowledgestore.vocabulary eu.fbk.rdfpro.tql java.io java.lang java.lang.annotation java.lang.reflect java.util java.util.concurrent.atomic javax.ws.rs javax.ws.rs.core javax.ws.rs.ext org.openrdf.model org.openrdf.model.vocabulary org.openrdf.query.resultio org.openrdf.rio org.slf4j |
eu.fbk.knowledgestore.internal.rdf
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 26 | 8.0% | 93.0% | 1.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
eu.fbk.knowledgestore.internal.rdf.CompactBindingSet eu.fbk.knowledgestore.internal.rdf.CompactValueFactory$NumberLiteral eu.fbk.knowledgestore.internal.rdf.package-info |
eu.fbk.knowledgestore.internal.rdf.CompactBindingSet$ArrayCompactBindingSet eu.fbk.knowledgestore.internal.rdf.CompactBindingSet$BindingIterator eu.fbk.knowledgestore.internal.rdf.CompactBindingSet$Builder eu.fbk.knowledgestore.internal.rdf.CompactBindingSet$EmptyCompactBindingSet eu.fbk.knowledgestore.internal.rdf.CompactBindingSet$SingletonCompactBindingSet eu.fbk.knowledgestore.internal.rdf.CompactBindingSet$VariableList eu.fbk.knowledgestore.internal.rdf.CompactBindingSet$VariableSet eu.fbk.knowledgestore.internal.rdf.CompactValueFactory eu.fbk.knowledgestore.internal.rdf.CompactValueFactory$BigDecimalLiteral eu.fbk.knowledgestore.internal.rdf.CompactValueFactory$BigIntegerLiteral eu.fbk.knowledgestore.internal.rdf.CompactValueFactory$DoubleLiteral eu.fbk.knowledgestore.internal.rdf.CompactValueFactory$LongLiteral eu.fbk.knowledgestore.internal.rdf.CompactValueFactory$StringLiteral eu.fbk.knowledgestore.internal.rdf.HtmlRDF eu.fbk.knowledgestore.internal.rdf.HtmlRDF$HTMLWriter eu.fbk.knowledgestore.internal.rdf.HtmlSparql eu.fbk.knowledgestore.internal.rdf.HtmlSparql$HtmlWriter eu.fbk.knowledgestore.internal.rdf.RDFUtil eu.fbk.knowledgestore.internal.rdf.RDFUtil$1 eu.fbk.knowledgestore.internal.rdf.RDFUtil$2 eu.fbk.knowledgestore.internal.rdf.RDFUtil$3 eu.fbk.knowledgestore.internal.rdf.RDFUtil$4 eu.fbk.knowledgestore.internal.rdf.RDFUtil$4$1 eu.fbk.knowledgestore.internal.rdf.RDFUtil$5 eu.fbk.knowledgestore.internal.rdf.RDFUtil$6 eu.fbk.knowledgestore.internal.rdf.RDFUtil$7 eu.fbk.knowledgestore.internal.rdf.RDFUtil$7$1 eu.fbk.knowledgestore.internal.rdf.RDFUtil$8 eu.fbk.knowledgestore.internal.rdf.RDFUtil$9 eu.fbk.knowledgestore.internal.rdf.RDFUtil$DecouplingHandler eu.fbk.knowledgestore.internal.rdf.RDFUtil$DecouplingHandler$1 eu.fbk.knowledgestore.internal.rdf.RDFUtil$LoggingHandler eu.fbk.knowledgestore.internal.rdf.RDFUtil$MergingHandler eu.fbk.knowledgestore.internal.rdf.RDFUtil$NamespaceHandler |
eu.fbk.knowledgestore.data eu.fbk.knowledgestore.internal.jaxrs |
com.google.common.base com.google.common.collect com.google.common.util.concurrent eu.fbk.knowledgestore.data eu.fbk.knowledgestore.internal eu.fbk.rdfpro.jsonld eu.fbk.rdfpro.tql info.aduna.iteration java.io java.lang java.lang.reflect java.math java.util java.util.concurrent java.util.concurrent.atomic javax.xml.datatype org.openrdf.model org.openrdf.model.datatypes org.openrdf.model.impl org.openrdf.model.vocabulary org.openrdf.query org.openrdf.query.impl org.openrdf.query.resultio org.openrdf.rio org.openrdf.rio.helpers org.slf4j |
eu.fbk.knowledgestore.vocabulary
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 3 | 10.0% | 50.0% | 40.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
eu.fbk.knowledgestore.vocabulary.package-info |
eu.fbk.knowledgestore.vocabulary.CKR eu.fbk.knowledgestore.vocabulary.KS eu.fbk.knowledgestore.vocabulary.KSR eu.fbk.knowledgestore.vocabulary.NFO eu.fbk.knowledgestore.vocabulary.NIE eu.fbk.knowledgestore.vocabulary.NIF eu.fbk.knowledgestore.vocabulary.NWR eu.fbk.knowledgestore.vocabulary.SEM eu.fbk.knowledgestore.vocabulary.TIME |
eu.fbk.knowledgestore eu.fbk.knowledgestore.data eu.fbk.knowledgestore.internal.jaxrs |
java.lang org.openrdf.model org.openrdf.model.impl |
org.jaxen.expr
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 5 | 100.0% | 83.0% | 83.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.jaxen.expr.DefaultRelationalExpr |
None | eu.fbk.knowledgestore.data |
eu.fbk.knowledgestore.data java.lang java.util org.jaxen org.openrdf.model |
Cycles
[ summary ] [ packages ] [ cycles ] [ explanations ]Package | Package Dependencies |
---|---|
eu.fbk.knowledgestore | eu.fbk.knowledgestore.data eu.fbk.knowledgestore.internal.rdf eu.fbk.knowledgestore.data |
eu.fbk.knowledgestore.data | eu.fbk.knowledgestore.internal.rdf eu.fbk.knowledgestore.data |
eu.fbk.knowledgestore.internal | eu.fbk.knowledgestore.data eu.fbk.knowledgestore.internal.rdf eu.fbk.knowledgestore.data |
eu.fbk.knowledgestore.internal.jaxrs | eu.fbk.knowledgestore.internal.rdf eu.fbk.knowledgestore.data eu.fbk.knowledgestore.internal.rdf |
eu.fbk.knowledgestore.internal.rdf | eu.fbk.knowledgestore.data eu.fbk.knowledgestore.internal.rdf |
org.jaxen.expr | eu.fbk.knowledgestore.data eu.fbk.knowledgestore.internal.rdf eu.fbk.knowledgestore.data |
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. |