Run with JarAnalyzer on
Summary | [summary] [jars] [cycles] [explanations] |
Jar Name | Total Classes | Abstract Classes | Packages | Level | Abstractness | Efferent | Afferent | Instability | Distance |
---|---|---|---|---|---|---|---|---|---|
antlr.jar | 210 | 48 | 10 | 1 | 0.23 | 0 | 1 | 0.00 | 0.77 |
commons-beanutils.jar | 66 | 7 | 4 | 2 | 0.11 | 2 | 3 | 0.40 | 0.49 |
commons-collections.jar | 187 | 15 | 3 | 1 | 0.08 | 0 | 4 | 0.00 | 0.92 |
commons-digester.jar | 55 | 9 | 3 | 3 | 0.16 | 3 | 2 | 0.60 | 0.24 |
commons-fileupload.jar | 16 | 4 | 1 | 1 | 0.25 | 0 | 1 | 0.00 | 0.75 |
commons-logging.jar | 18 | 2 | 2 | 1 | 0.11 | 0 | 4 | 0.00 | 0.89 |
commons-validator.jar | 30 | 1 | 2 | 4 | 0.03 | 5 | 1 | 0.83 | 0.14 |
jakarta-oro.jar | 62 | 13 | 6 | 1 | 0.21 | 0 | 1 | 0.00 | 0.79 |
struts.jar | 289 | 33 | 25 | 5 | 0.11 | 7 | 0 | 1.00 | 0.11 |
Jars | [summary] [jars] [cycles] [explanations] |
Level: 1 | Afferent Couplings: 1 | Efferent Couplings: 0 | Abstractness: 0.23 | Instability: 0.00 | Distance: 0.77 |
Uses Jars | Used by Jars | Cycles With |
---|---|---|
None | struts.jar |
None |
Packages within jar | Unresolved Packages |
---|---|
antlr antlr.build antlr.collections antlr.debug antlr.preprocessor antlr.actions.cpp antlr.actions.csharp antlr.actions.java antlr.collections.impl antlr.debug.misc |
None |
Level: 2 | Afferent Couplings: 3 | Efferent Couplings: 2 | Abstractness: 0.11 | Instability: 0.40 | Distance: 0.49 |
Uses Jars | Used by Jars | Cycles With |
---|---|---|
commons-collections.jar commons-logging.jar |
commons-digester.jar commons-validator.jar struts.jar |
None |
Packages within jar | Unresolved Packages |
---|---|
org.apache.commons.beanutils.converters org.apache.commons.beanutils org.apache.commons.beanutils.locale.converters org.apache.commons.beanutils.locale |
None |
Level: 1 | Afferent Couplings: 4 | Efferent Couplings: 0 | Abstractness: 0.08 | Instability: 0.00 | Distance: 0.92 |
Uses Jars | Used by Jars | Cycles With |
---|---|---|
None | commons-beanutils.jar commons-digester.jar commons-validator.jar struts.jar |
None |
Packages within jar | Unresolved Packages |
---|---|
org.apache.commons.collections.iterators org.apache.commons.collections org.apache.commons.collections.comparators |
None |
Level: 3 | Afferent Couplings: 2 | Efferent Couplings: 3 | Abstractness: 0.16 | Instability: 0.60 | Distance: 0.24 |
Uses Jars | Used by Jars | Cycles With |
---|---|---|
commons-logging.jar commons-collections.jar commons-beanutils.jar |
commons-validator.jar struts.jar |
None |
Packages within jar | Unresolved Packages |
---|---|
org.apache.commons.digester.rss org.apache.commons.digester org.apache.commons.digester.xmlrules |
org.xml.sax org.xml.sax.helpers org.w3c.dom |
Level: 1 | Afferent Couplings: 1 | Efferent Couplings: 0 | Abstractness: 0.25 | Instability: 0.00 | Distance: 0.75 |
Uses Jars | Used by Jars | Cycles With |
---|---|---|
None | struts.jar |
None |
Packages within jar | Unresolved Packages |
---|---|
org.apache.commons.fileupload |
None |
Level: 1 | Afferent Couplings: 4 | Efferent Couplings: 0 | Abstractness: 0.11 | Instability: 0.00 | Distance: 0.89 |
Uses Jars | Used by Jars | Cycles With |
---|---|---|
None | commons-beanutils.jar commons-digester.jar commons-validator.jar struts.jar |
None |
Packages within jar | Unresolved Packages |
---|---|
org.apache.commons.logging.impl org.apache.commons.logging |
org.apache.log4j org.apache.log org.apache.avalon.framework.logger |
Level: 4 | Afferent Couplings: 1 | Efferent Couplings: 5 | Abstractness: 0.03 | Instability: 0.83 | Distance: 0.14 |
Uses Jars | Used by Jars | Cycles With |
---|---|---|
jakarta-oro.jar commons-collections.jar commons-beanutils.jar commons-logging.jar commons-digester.jar |
struts.jar |
None |
Packages within jar | Unresolved Packages |
---|---|
org.apache.commons.validator org.apache.commons.validator.util |
org.xml.sax |
Level: 1 | Afferent Couplings: 1 | Efferent Couplings: 0 | Abstractness: 0.21 | Instability: 0.00 | Distance: 0.79 |
Uses Jars | Used by Jars | Cycles With |
---|---|---|
None | commons-validator.jar |
None |
Packages within jar | Unresolved Packages |
---|---|
org.apache.oro.io org.apache.oro.text.regex org.apache.oro.text org.apache.oro.text.awk org.apache.oro.text.perl org.apache.oro.util |
None |
Level: 5 | Afferent Couplings: 0 | Efferent Couplings: 7 | Abstractness: 0.11 | Instability: 1.00 | Distance: 0.11 |
Uses Jars | Used by Jars | Cycles With |
---|---|---|
commons-collections.jar commons-digester.jar commons-beanutils.jar commons-logging.jar commons-validator.jar commons-fileupload.jar antlr.jar |
None | None |
Packages within jar | Unresolved Packages |
---|---|
org.apache.struts org.apache.struts.action org.apache.struts.actions org.apache.struts.config org.apache.struts.config.impl org.apache.struts.plugins org.apache.struts.taglib org.apache.struts.taglib.bean org.apache.struts.taglib.html org.apache.struts.taglib.logic org.apache.struts.taglib.nested org.apache.struts.taglib.nested.bean org.apache.struts.taglib.nested.html org.apache.struts.taglib.nested.logic org.apache.struts.taglib.tiles org.apache.struts.taglib.tiles.util org.apache.struts.tiles org.apache.struts.tiles.actions org.apache.struts.tiles.beans org.apache.struts.tiles.definition org.apache.struts.tiles.xmlDefinition org.apache.struts.upload org.apache.struts.util org.apache.struts.validator org.apache.struts.validator.validwhen |
org.xml.sax |
Cycles | [summary] [jars] [cycles] [explanations] |
None
None
None
None
None
None
None
None
None
Explanations | [summary] [jars] [cycles] [explanations] |
The following explanations are for quick reference. More detailed information can be found in the JarAnalyzer documentation.
The number of concrete and abstract classes (and interfaces) in the jar is an indicator of the extensibility of the jar.
The number of packages in the jar.
The Level represents where in the hierarchy a jar file lives. Level 1 jars are at the bottom. Level 2 depend on at least one Level 1. Level 3 depend on at least one Level 2. The Level of the jar, used in conjunction with Instability, gives an indication of the jar's resilience to change.
The number of other jars that depend upon classes within the jar is an indicator of the jar's responsibility.
The number of other jars that the classes in the jar depend upon is an indicator of the jar's independence.
The ratio of the number of abstract classes (and interfaces) in the analyzed jar to the total number of classes in the analyzed jar.
The range for this metric is 0 to 1, with A=0 indicating a completely concrete jar and A=1 indicating a completely abstract jar.
The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the jar's resilience to change.
The range for this metric is 0 to 1, with I=0 indicating a completely stable jar and I=1 indicating a completely instable jar.
The perpendicular distance of a jar from the idealized line A + I = 1. This metric is an indicator of the jar's balance between abstractness and stability.
A jar squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal jars 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 jar that is coincident with the main sequence and D=1 indicating a jar that is as far from the main sequence as possible.
Packages not found in any of the jars analyzed. These can be filtered from output by specifying the packages to exlude in the Filter.properties file. Conversely, you can include jars containing these packages in the directory being analyzed.
These packages are excluded from all calculations and adding the jars containing these packages will result in modified metrics.