Package | TC | CC | AC | Ca | Ce | A | I | D | V |
---|---|---|---|---|---|---|---|---|---|
de.uni_leipzig.wifa.iwi.mr3.common | 46 | 46 | 0 | 4 | 11 | 0.0% | 73.0% | 27.000002% | 1 |
de.uni_leipzig.wifa.iwi.mr3.dao | 5 | 1 | 4 | 2 | 7 | 80.0% | 78.0% | 58.0% | 1 |
de.uni_leipzig.wifa.iwi.mr3.dao.neo4j | 1 | 1 | 0 | 1 | 2 | 0.0% | 67.0% | 33.0% | 1 |
de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl | 13 | 12 | 1 | 1 | 17 | 8.0% | 94.0% | 2.0% | 1 |
de.uni_leipzig.wifa.iwi.mr3.service | 6 | 3 | 3 | 3 | 14 | 50.0% | 82.0% | 32.0% | 1 |
de.uni_leipzig.wifa.iwi.mr3.service.impl | 3 | 3 | 0 | 0 | 27 | 0.0% | 100.0% | 0.0% | 1 |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
4 | 11 | 0.0% | 73.0% | 27.000002% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | de.uni_leipzig.wifa.iwi.mr3.common.CompareRequest de.uni_leipzig.wifa.iwi.mr3.common.CompareRequest$1 de.uni_leipzig.wifa.iwi.mr3.common.CompareRequest$Factory de.uni_leipzig.wifa.iwi.mr3.common.CompareResponse de.uni_leipzig.wifa.iwi.mr3.common.CompareResponse$1 de.uni_leipzig.wifa.iwi.mr3.common.CompareResponse$Factory de.uni_leipzig.wifa.iwi.mr3.common.Comparison de.uni_leipzig.wifa.iwi.mr3.common.Comparison$1 de.uni_leipzig.wifa.iwi.mr3.common.Comparison$Factory de.uni_leipzig.wifa.iwi.mr3.common.DeleteRequest de.uni_leipzig.wifa.iwi.mr3.common.DeleteRequest$1 de.uni_leipzig.wifa.iwi.mr3.common.DeleteRequest$Factory de.uni_leipzig.wifa.iwi.mr3.common.ExtensionMapper de.uni_leipzig.wifa.iwi.mr3.common.FaultMessage de.uni_leipzig.wifa.iwi.mr3.common.FaultMessage$1 de.uni_leipzig.wifa.iwi.mr3.common.FaultMessage$Factory de.uni_leipzig.wifa.iwi.mr3.common.FindRequest de.uni_leipzig.wifa.iwi.mr3.common.FindRequest$1 de.uni_leipzig.wifa.iwi.mr3.common.FindRequest$Factory de.uni_leipzig.wifa.iwi.mr3.common.FindResponse de.uni_leipzig.wifa.iwi.mr3.common.FindResponse$1 de.uni_leipzig.wifa.iwi.mr3.common.FindResponse$Factory de.uni_leipzig.wifa.iwi.mr3.common.InstanceModelsRequest de.uni_leipzig.wifa.iwi.mr3.common.InstanceModelsRequest$1 de.uni_leipzig.wifa.iwi.mr3.common.InstanceModelsRequest$Factory de.uni_leipzig.wifa.iwi.mr3.common.InstanceModelsResponse de.uni_leipzig.wifa.iwi.mr3.common.InstanceModelsResponse$1 de.uni_leipzig.wifa.iwi.mr3.common.InstanceModelsResponse$Factory de.uni_leipzig.wifa.iwi.mr3.common.LoadRequest de.uni_leipzig.wifa.iwi.mr3.common.LoadRequest$1 de.uni_leipzig.wifa.iwi.mr3.common.LoadRequest$Factory de.uni_leipzig.wifa.iwi.mr3.common.LoadResponse de.uni_leipzig.wifa.iwi.mr3.common.LoadResponse$1 de.uni_leipzig.wifa.iwi.mr3.common.LoadResponse$Factory de.uni_leipzig.wifa.iwi.mr3.common.Match de.uni_leipzig.wifa.iwi.mr3.common.Match$1 de.uni_leipzig.wifa.iwi.mr3.common.Match$Factory de.uni_leipzig.wifa.iwi.mr3.common.Model de.uni_leipzig.wifa.iwi.mr3.common.Model$1 de.uni_leipzig.wifa.iwi.mr3.common.Model$Factory de.uni_leipzig.wifa.iwi.mr3.common.SaveRequest de.uni_leipzig.wifa.iwi.mr3.common.SaveRequest$1 de.uni_leipzig.wifa.iwi.mr3.common.SaveRequest$Factory de.uni_leipzig.wifa.iwi.mr3.common.Segment de.uni_leipzig.wifa.iwi.mr3.common.Segment$1 de.uni_leipzig.wifa.iwi.mr3.common.Segment$Factory |
de.uni_leipzig.wifa.iwi.mr3.dao de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl de.uni_leipzig.wifa.iwi.mr3.service de.uni_leipzig.wifa.iwi.mr3.service.impl |
java.lang java.util javax.xml.namespace javax.xml.stream org.apache.axiom.om org.apache.axiom.om.impl.llom org.apache.axis2.databinding org.apache.axis2.databinding.utils org.apache.axis2.databinding.utils.reader org.apache.axis2.databinding.utils.writer org.apache.axis2.util |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 7 | 80.0% | 78.0% | 58.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.uni_leipzig.wifa.iwi.mr3.dao.LoadProcessor de.uni_leipzig.wifa.iwi.mr3.dao.ModelRepositoryDao de.uni_leipzig.wifa.iwi.mr3.dao.SaveProcessor de.uni_leipzig.wifa.iwi.mr3.dao.SearchProcessor |
de.uni_leipzig.wifa.iwi.mr3.dao.Constants |
de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl de.uni_leipzig.wifa.iwi.mr3.service.impl |
de.uni_leipzig.wifa.iwi.mr3.common de.uni_leipzig.wifa.iwi.mr3.service java.lang java.util org.eclipse.emf.ecore org.eclipse.emf.ecore.impl org.eclipse.emf.ecore.resource |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 2 | 0.0% | 67.0% | 33.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.EcoreRelationshipType |
de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl |
java.lang org.neo4j.api.core |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 17 | 8.0% | 94.0% | 2.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.AbstractNeoSaveProcessor |
de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.ClassifiersReturnableEvaluator de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.LoadProcessorImpl de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.LoadProcessorImpl$1 de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.LoadProcessorImpl$OrderedNodeIterable de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.ModelRepositoryDaoNeo4jImpl de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.NeoHelper de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.NeoHelper$1 de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.NeoHelper$1$1 de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.PhaseOneSaveProcessor de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.PhaseTwoSaveProcessor de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.SearchProcessorImpl de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl.SearchReturnableEvaluator |
de.uni_leipzig.wifa.iwi.mr3.service.impl |
de.uni_leipzig.wifa.iwi.mr3.common de.uni_leipzig.wifa.iwi.mr3.dao de.uni_leipzig.wifa.iwi.mr3.dao.neo4j de.uni_leipzig.wifa.iwi.mr3.service java.io java.lang java.util java.util.regex org.apache.log4j org.eclipse.emf.common.util org.eclipse.emf.ecore org.eclipse.emf.ecore.impl org.eclipse.emf.ecore.resource org.eclipse.emf.ecore.resource.impl org.eclipse.emf.ecore.xmi org.eclipse.emf.ecore.xmi.impl org.neo4j.api.core |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 14 | 50.0% | 82.0% | 32.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.uni_leipzig.wifa.iwi.mr3.service.CompareProcessor de.uni_leipzig.wifa.iwi.mr3.service.ModelRepositorySkeletonInterface de.uni_leipzig.wifa.iwi.mr3.service.ServiceHelper |
de.uni_leipzig.wifa.iwi.mr3.service.MRException de.uni_leipzig.wifa.iwi.mr3.service.ModelRepositoryMessageReceiverInOut de.uni_leipzig.wifa.iwi.mr3.service.ModelRepositoryMessageReceiverRobustInOnly |
de.uni_leipzig.wifa.iwi.mr3.dao de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl de.uni_leipzig.wifa.iwi.mr3.service.impl |
de.uni_leipzig.wifa.iwi.mr3.common java.lang java.util javax.xml.namespace org.apache.axiom.om org.apache.axiom.soap org.apache.axis2 org.apache.axis2.context org.apache.axis2.databinding org.apache.axis2.description org.apache.axis2.receivers org.apache.axis2.util org.eclipse.emf.ecore org.eclipse.emf.ecore.resource |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 27 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | de.uni_leipzig.wifa.iwi.mr3.service.impl.CompareProcessorImpl de.uni_leipzig.wifa.iwi.mr3.service.impl.ModelRepositoryServiceImpl de.uni_leipzig.wifa.iwi.mr3.service.impl.ServiceHelperImpl |
None | de.uni_leipzig.wifa.iwi.mr3.common de.uni_leipzig.wifa.iwi.mr3.dao de.uni_leipzig.wifa.iwi.mr3.dao.neo4j.impl de.uni_leipzig.wifa.iwi.mr3.service java.io java.lang java.util javax.xml.parsers javax.xml.stream org.apache.axiom.om org.apache.axiom.om.impl.builder org.apache.axis2 org.apache.axis2.context org.apache.axis2.description org.apache.axis2.engine org.apache.axis2.service org.apache.log4j org.eclipse.emf.common.util org.eclipse.emf.compare.diff.metamodel org.eclipse.emf.compare.diff.service org.eclipse.emf.compare.match.service org.eclipse.emf.compare.util org.eclipse.emf.ecore org.eclipse.emf.ecore.resource org.eclipse.emf.ecore.resource.impl org.eclipse.emf.ecore.xmi org.eclipse.emf.ecore.xmi.impl |
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. |