| Package | TC | CC | AC | Ca | Ce | A | I | D | V |
|---|---|---|---|---|---|---|---|---|---|
| net.sf.oval | 9 | 4 | 5 | 11 | 18 | 56.0% | 62.0% | 18.0% | 1 |
| net.sf.oval.collection | 4 | 3 | 1 | 7 | 4 | 25.0% | 36.0% | 39.0% | 1 |
| net.sf.oval.configuration | 1 | 0 | 1 | 5 | 3 | 100.0% | 38.0% | 38.0% | 1 |
| net.sf.oval.configuration.annotation | 10 | 2 | 8 | 3 | 13 | 80.0% | 81.0% | 61.0% | 1 |
| net.sf.oval.configuration.pojo | 1 | 1 | 0 | 1 | 5 | 0.0% | 83.0% | 17.0% | 1 |
| net.sf.oval.configuration.pojo.elements | 11 | 11 | 0 | 5 | 3 | 0.0% | 38.0% | 62.0% | 1 |
| net.sf.oval.configuration.xml | 3 | 3 | 0 | 0 | 19 | 0.0% | 100.0% | 0.0% | 1 |
| net.sf.oval.constraint | 77 | 38 | 39 | 4 | 17 | 51.0% | 81.0% | 32.0% | 1 |
| net.sf.oval.constraint.exclusion | 2 | 1 | 1 | 1 | 7 | 50.0% | 88.0% | 38.0% | 1 |
| net.sf.oval.context | 9 | 8 | 1 | 8 | 6 | 11.0% | 43.0% | 46.0% | 1 |
| net.sf.oval.exception | 15 | 14 | 1 | 11 | 5 | 7.0% | 31.0% | 62.0% | 1 |
| net.sf.oval.expression | 8 | 7 | 1 | 3 | 14 | 12.0% | 82.0% | 5.0% | 1 |
| net.sf.oval.guard | 25 | 12 | 13 | 4 | 17 | 52.0% | 81.0% | 33.0% | 1 |
| net.sf.oval.integration.spring | 1 | 1 | 0 | 0 | 10 | 0.0% | 100.0% | 0.0% | 1 |
| net.sf.oval.internal | 5 | 5 | 0 | 9 | 11 | 0.0% | 55.0% | 45.0% | 1 |
| net.sf.oval.internal.util | 21 | 20 | 1 | 8 | 10 | 5.0% | 56.0% | 40.0% | 1 |
| net.sf.oval.localization.context | 3 | 2 | 1 | 1 | 5 | 33.0% | 83.0% | 17.0% | 1 |
| net.sf.oval.localization.message | 2 | 1 | 1 | 3 | 4 | 50.0% | 57.0% | 7.0% | 1 |
| net.sf.oval.logging | 10 | 8 | 2 | 2 | 6 | 20.0% | 75.0% | 5.0% | 1 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 11 | 18 | 56.0% | 62.0% | 18.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.AbstractCheck net.sf.oval.AbstractCheckExclusion net.sf.oval.Check net.sf.oval.CheckExclusion net.sf.oval.IValidator |
net.sf.oval.ConstraintSet net.sf.oval.ConstraintTarget net.sf.oval.ConstraintViolation net.sf.oval.Validator |
net.sf.oval.configuration.annotation net.sf.oval.configuration.xml net.sf.oval.constraint net.sf.oval.constraint.exclusion net.sf.oval.context net.sf.oval.exception net.sf.oval.guard net.sf.oval.integration.spring net.sf.oval.internal net.sf.oval.internal.util net.sf.oval.localization.message |
java.io java.lang java.lang.reflect java.util net.sf.oval.collection net.sf.oval.configuration net.sf.oval.configuration.annotation net.sf.oval.configuration.pojo.elements net.sf.oval.constraint net.sf.oval.context net.sf.oval.exception net.sf.oval.expression net.sf.oval.guard net.sf.oval.internal net.sf.oval.internal.util net.sf.oval.localization.context net.sf.oval.localization.message net.sf.oval.logging |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 7 | 4 | 25.0% | 36.0% | 39.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.collection.CollectionFactory |
net.sf.oval.collection.CollectionFactoryJDKImpl net.sf.oval.collection.CollectionFactoryJavalutionImpl net.sf.oval.collection.CollectionFactoryTroveImpl |
net.sf.oval net.sf.oval.configuration.annotation net.sf.oval.constraint net.sf.oval.guard net.sf.oval.internal net.sf.oval.internal.util net.sf.oval.localization.message |
gnu.trove java.lang java.util javolution.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 5 | 3 | 100.0% | 38.0% | 38.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.configuration.Configurer |
None | net.sf.oval net.sf.oval.configuration.annotation net.sf.oval.configuration.pojo net.sf.oval.configuration.xml net.sf.oval.guard |
java.lang net.sf.oval.configuration.pojo.elements net.sf.oval.exception |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 13 | 80.0% | 81.0% | 61.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.configuration.annotation.AbstractAnnotationCheck net.sf.oval.configuration.annotation.AbstractAnnotationCheckExclusion net.sf.oval.configuration.annotation.AnnotationCheck net.sf.oval.configuration.annotation.AnnotationCheckExclusion net.sf.oval.configuration.annotation.Constraint net.sf.oval.configuration.annotation.Constraints net.sf.oval.configuration.annotation.Exclusion net.sf.oval.configuration.annotation.IsInvariant |
net.sf.oval.configuration.annotation.AnnotationsConfigurer net.sf.oval.configuration.annotation.JPAAnnotationsConfigurer |
net.sf.oval net.sf.oval.constraint net.sf.oval.constraint.exclusion |
java.lang java.lang.annotation java.lang.reflect java.util javax.persistence net.sf.oval net.sf.oval.collection net.sf.oval.configuration net.sf.oval.configuration.pojo.elements net.sf.oval.constraint net.sf.oval.exception net.sf.oval.guard net.sf.oval.internal |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 5 | 0.0% | 83.0% | 17.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | net.sf.oval.configuration.pojo.POJOConfigurer |
net.sf.oval.configuration.xml |
java.io java.lang java.util net.sf.oval.configuration net.sf.oval.configuration.pojo.elements |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 5 | 3 | 0.0% | 38.0% | 62.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | net.sf.oval.configuration.pojo.elements.ClassConfiguration net.sf.oval.configuration.pojo.elements.ConfigurationElement net.sf.oval.configuration.pojo.elements.ConstraintSetConfiguration net.sf.oval.configuration.pojo.elements.ConstructorConfiguration net.sf.oval.configuration.pojo.elements.FieldConfiguration net.sf.oval.configuration.pojo.elements.MethodConfiguration net.sf.oval.configuration.pojo.elements.MethodPostExecutionConfiguration net.sf.oval.configuration.pojo.elements.MethodPreExecutionConfiguration net.sf.oval.configuration.pojo.elements.MethodReturnValueConfiguration net.sf.oval.configuration.pojo.elements.ObjectConfiguration net.sf.oval.configuration.pojo.elements.ParameterConfiguration |
net.sf.oval net.sf.oval.configuration net.sf.oval.configuration.annotation net.sf.oval.configuration.pojo net.sf.oval.configuration.xml |
java.io java.lang java.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 19 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | net.sf.oval.configuration.xml.XMLConfigurer net.sf.oval.configuration.xml.XMLConfigurer$AssertCheckConverter net.sf.oval.configuration.xml.XMLConfigurer$ListConverter |
None | com.thoughtworks.xstream com.thoughtworks.xstream.converters com.thoughtworks.xstream.converters.collections com.thoughtworks.xstream.io com.thoughtworks.xstream.io.xml com.thoughtworks.xstream.mapper java.io java.lang java.util java.util.regex net.sf.oval net.sf.oval.configuration net.sf.oval.configuration.pojo net.sf.oval.configuration.pojo.elements net.sf.oval.constraint net.sf.oval.constraint.exclusion net.sf.oval.exception net.sf.oval.guard net.sf.oval.internal.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 4 | 17 | 51.0% | 81.0% | 32.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.constraint.Assert net.sf.oval.constraint.AssertConstraintSet net.sf.oval.constraint.AssertFalse net.sf.oval.constraint.AssertFieldConstraints net.sf.oval.constraint.AssertTrue net.sf.oval.constraint.AssertURL net.sf.oval.constraint.AssertValid net.sf.oval.constraint.CheckWith net.sf.oval.constraint.CheckWithCheck$SimpleCheck net.sf.oval.constraint.CheckWithMultiple net.sf.oval.constraint.DateRange net.sf.oval.constraint.Email net.sf.oval.constraint.EqualToField net.sf.oval.constraint.Future net.sf.oval.constraint.HasSubstring net.sf.oval.constraint.InstanceOf net.sf.oval.constraint.InstanceOfAny net.sf.oval.constraint.Length net.sf.oval.constraint.MatchPattern net.sf.oval.constraint.Max net.sf.oval.constraint.MaxLength net.sf.oval.constraint.MaxSize net.sf.oval.constraint.MemberOf net.sf.oval.constraint.Min net.sf.oval.constraint.MinLength net.sf.oval.constraint.MinSize net.sf.oval.constraint.NoSelfReference net.sf.oval.constraint.NotBlank net.sf.oval.constraint.NotEmpty net.sf.oval.constraint.NotEqual net.sf.oval.constraint.NotEqualToField net.sf.oval.constraint.NotMatchPattern net.sf.oval.constraint.NotMemberOf net.sf.oval.constraint.NotNegative net.sf.oval.constraint.NotNull net.sf.oval.constraint.Past net.sf.oval.constraint.Range net.sf.oval.constraint.Size net.sf.oval.constraint.ValidateWithMethod |
net.sf.oval.constraint.AssertCheck net.sf.oval.constraint.AssertConstraintSetCheck net.sf.oval.constraint.AssertFalseCheck net.sf.oval.constraint.AssertFieldConstraintsCheck net.sf.oval.constraint.AssertTrueCheck net.sf.oval.constraint.AssertURLCheck net.sf.oval.constraint.AssertURLCheck$URIScheme net.sf.oval.constraint.AssertValidCheck net.sf.oval.constraint.CheckWithCheck net.sf.oval.constraint.DateRangeCheck net.sf.oval.constraint.EmailCheck net.sf.oval.constraint.EqualToFieldCheck net.sf.oval.constraint.FutureCheck net.sf.oval.constraint.HasSubstringCheck net.sf.oval.constraint.InstanceOfAnyCheck net.sf.oval.constraint.InstanceOfCheck net.sf.oval.constraint.LengthCheck net.sf.oval.constraint.MatchPatternCheck net.sf.oval.constraint.MaxCheck net.sf.oval.constraint.MaxLengthCheck net.sf.oval.constraint.MaxSizeCheck net.sf.oval.constraint.MemberOfCheck net.sf.oval.constraint.MinCheck net.sf.oval.constraint.MinLengthCheck net.sf.oval.constraint.MinSizeCheck net.sf.oval.constraint.NoSelfReferenceCheck net.sf.oval.constraint.NotBlankCheck net.sf.oval.constraint.NotEmptyCheck net.sf.oval.constraint.NotEqualCheck net.sf.oval.constraint.NotEqualToFieldCheck net.sf.oval.constraint.NotMatchPatternCheck net.sf.oval.constraint.NotMemberOfCheck net.sf.oval.constraint.NotNegativeCheck net.sf.oval.constraint.NotNullCheck net.sf.oval.constraint.PastCheck net.sf.oval.constraint.RangeCheck net.sf.oval.constraint.SizeCheck net.sf.oval.constraint.ValidateWithMethodCheck |
net.sf.oval net.sf.oval.configuration.annotation net.sf.oval.configuration.xml net.sf.oval.constraint.exclusion |
java.io java.lang java.lang.annotation java.lang.reflect java.math java.net java.text java.util java.util.regex net.sf.oval net.sf.oval.collection net.sf.oval.configuration.annotation net.sf.oval.context net.sf.oval.exception net.sf.oval.expression net.sf.oval.internal net.sf.oval.internal.util |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 7 | 50.0% | 88.0% | 38.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.constraint.exclusion.Nullable |
net.sf.oval.constraint.exclusion.NullableExclusion |
net.sf.oval.configuration.xml |
java.lang java.lang.annotation net.sf.oval net.sf.oval.configuration.annotation net.sf.oval.constraint net.sf.oval.context net.sf.oval.exception |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 8 | 6 | 11.0% | 43.0% | 46.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.context.OValContext |
net.sf.oval.context.ClassContext net.sf.oval.context.ConstraintSetContext net.sf.oval.context.ConstructorParameterContext net.sf.oval.context.FieldContext net.sf.oval.context.MethodEntryContext net.sf.oval.context.MethodExitContext net.sf.oval.context.MethodParameterContext net.sf.oval.context.MethodReturnValueContext |
net.sf.oval net.sf.oval.constraint net.sf.oval.constraint.exclusion net.sf.oval.exception net.sf.oval.guard net.sf.oval.integration.spring net.sf.oval.internal net.sf.oval.localization.context |
java.io java.lang java.lang.reflect net.sf.oval net.sf.oval.internal.util net.sf.oval.localization.message |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 11 | 5 | 7.0% | 31.0% | 62.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.exception.ExceptionTranslator |
net.sf.oval.exception.AccessingFieldValueFailedException net.sf.oval.exception.ConstraintSetAlreadyDefinedException net.sf.oval.exception.ConstraintsViolatedException net.sf.oval.exception.ExceptionTranslatorJDKExceptionsImpl net.sf.oval.exception.ExpressionEvaluationException net.sf.oval.exception.ExpressionLanguageNotAvailableException net.sf.oval.exception.FieldNotFoundException net.sf.oval.exception.InvalidConfigurationException net.sf.oval.exception.InvokingMethodFailedException net.sf.oval.exception.MethodNotFoundException net.sf.oval.exception.OValException net.sf.oval.exception.ReflectionException net.sf.oval.exception.UndefinedConstraintSetException net.sf.oval.exception.ValidationFailedException |
net.sf.oval net.sf.oval.configuration net.sf.oval.configuration.annotation net.sf.oval.configuration.xml net.sf.oval.constraint net.sf.oval.constraint.exclusion net.sf.oval.expression net.sf.oval.guard net.sf.oval.integration.spring net.sf.oval.internal net.sf.oval.internal.util |
java.lang java.util net.sf.oval net.sf.oval.context net.sf.oval.internal |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 14 | 12.0% | 82.0% | 5.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.expression.ExpressionLanguage |
net.sf.oval.expression.ExpressionLanguageBeanShellImpl net.sf.oval.expression.ExpressionLanguageGroovyImpl net.sf.oval.expression.ExpressionLanguageJEXLImpl net.sf.oval.expression.ExpressionLanguageJRubyImpl net.sf.oval.expression.ExpressionLanguageJavaScriptImpl net.sf.oval.expression.ExpressionLanguageMVELImpl net.sf.oval.expression.ExpressionLanguageOGNLImpl |
net.sf.oval net.sf.oval.constraint net.sf.oval.guard |
bsh groovy.lang java.lang java.util net.sf.oval.exception net.sf.oval.internal net.sf.oval.internal.util ognl org.apache.commons.jexl org.jruby org.jruby.internal.runtime org.jruby.javasupport org.mozilla.javascript org.mvel2 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 4 | 17 | 52.0% | 81.0% | 33.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.guard.ApiUsageAuditor net.sf.oval.guard.ApiUsageAuditor2 net.sf.oval.guard.ConstraintsViolatedListener net.sf.oval.guard.GuardAspect net.sf.oval.guard.GuardAspect2 net.sf.oval.guard.Guarded net.sf.oval.guard.IsGuarded net.sf.oval.guard.ParameterNameResolver net.sf.oval.guard.Post net.sf.oval.guard.PostValidateThis net.sf.oval.guard.Pre net.sf.oval.guard.PreValidateThis net.sf.oval.guard.SuppressOValWarnings |
net.sf.oval.guard.ConstraintsViolatedAdapter net.sf.oval.guard.Guard net.sf.oval.guard.Guard$GuardMethodPreResult net.sf.oval.guard.GuardAspect2$ProceedInvocable net.sf.oval.guard.GuardInterceptor net.sf.oval.guard.GuardInterceptor$MethodInvocable net.sf.oval.guard.ParameterNameResolverAspectJImpl net.sf.oval.guard.ParameterNameResolverEnumerationImpl net.sf.oval.guard.ParameterNameResolverParanamerImpl net.sf.oval.guard.PostCheck net.sf.oval.guard.PreCheck net.sf.oval.guard.ProbeModeListener |
net.sf.oval net.sf.oval.configuration.annotation net.sf.oval.configuration.xml net.sf.oval.internal |
com.thoughtworks.paranamer java.lang java.lang.annotation java.lang.reflect java.util net.sf.oval net.sf.oval.collection net.sf.oval.configuration net.sf.oval.context net.sf.oval.exception net.sf.oval.expression net.sf.oval.internal net.sf.oval.internal.util org.aopalliance.intercept org.aspectj.lang org.aspectj.lang.reflect org.aspectj.runtime.internal |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 10 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | net.sf.oval.integration.spring.SpringValidator |
None | java.lang java.lang.reflect java.util net.sf.oval net.sf.oval.context net.sf.oval.exception net.sf.oval.internal org.springframework.beans.factory org.springframework.util org.springframework.validation |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 9 | 11 | 0.0% | 55.0% | 45.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | net.sf.oval.internal.ClassChecks net.sf.oval.internal.ContextCache net.sf.oval.internal.Log net.sf.oval.internal.MessageRenderer net.sf.oval.internal.ParameterChecks |
net.sf.oval net.sf.oval.configuration.annotation net.sf.oval.constraint net.sf.oval.exception net.sf.oval.expression net.sf.oval.guard net.sf.oval.integration.spring net.sf.oval.internal.util net.sf.oval.localization.context |
java.lang java.lang.reflect java.util net.sf.oval net.sf.oval.collection net.sf.oval.context net.sf.oval.exception net.sf.oval.guard net.sf.oval.internal.util net.sf.oval.localization.message net.sf.oval.logging |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 8 | 10 | 5.0% | 56.0% | 40.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.internal.util.Invocable |
net.sf.oval.internal.util.ArrayUtils net.sf.oval.internal.util.Assert net.sf.oval.internal.util.IdentitySet net.sf.oval.internal.util.LinkedSet net.sf.oval.internal.util.MethodInvocationCommand net.sf.oval.internal.util.ObjectCache net.sf.oval.internal.util.ReflectionUtils net.sf.oval.internal.util.SerializableConstructor net.sf.oval.internal.util.SerializableField net.sf.oval.internal.util.SerializableMethod net.sf.oval.internal.util.SetAccessibleAction net.sf.oval.internal.util.StringUtils net.sf.oval.internal.util.ThreadLocalIdentitySet net.sf.oval.internal.util.ThreadLocalLinkedList net.sf.oval.internal.util.ThreadLocalList net.sf.oval.internal.util.ThreadLocalMap net.sf.oval.internal.util.ThreadLocalObjectCache net.sf.oval.internal.util.ThreadLocalWeakHashMap net.sf.oval.internal.util.ThreadLocalWeakHashSet net.sf.oval.internal.util.WeakHashSet |
net.sf.oval net.sf.oval.configuration.xml net.sf.oval.constraint net.sf.oval.context net.sf.oval.expression net.sf.oval.guard net.sf.oval.internal net.sf.oval.logging |
java.io java.lang java.lang.ref java.lang.reflect java.security java.util net.sf.oval net.sf.oval.collection net.sf.oval.exception net.sf.oval.internal |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 5 | 33.0% | 83.0% | 17.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.localization.context.OValContextRenderer |
net.sf.oval.localization.context.ResourceBundleValidationContextRenderer net.sf.oval.localization.context.ToStringValidationContextRenderer |
net.sf.oval |
java.lang java.lang.reflect java.util net.sf.oval.context net.sf.oval.internal |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 4 | 50.0% | 57.0% | 7.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.localization.message.MessageResolver |
net.sf.oval.localization.message.ResourceBundleMessageResolver |
net.sf.oval net.sf.oval.context net.sf.oval.internal |
java.lang java.util net.sf.oval net.sf.oval.collection |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 6 | 20.0% | 75.0% | 5.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| net.sf.oval.logging.Logger net.sf.oval.logging.LoggerFactory |
net.sf.oval.logging.LoggerFactoryJCLImpl net.sf.oval.logging.LoggerFactoryJDKImpl net.sf.oval.logging.LoggerFactoryL4JImpl net.sf.oval.logging.LoggerFactorySLF4JImpl net.sf.oval.logging.LoggerJCLImpl net.sf.oval.logging.LoggerJDKImpl net.sf.oval.logging.LoggerL4JImpl net.sf.oval.logging.LoggerSLF4JImpl |
net.sf.oval net.sf.oval.internal |
java.lang java.util.logging net.sf.oval.internal.util org.apache.commons.logging org.apache.log4j org.slf4j |
| Package | Package Dependencies |
|---|---|
| net.sf.oval | net.sf.oval.context net.sf.oval.localization.message net.sf.oval |
| net.sf.oval.configuration | net.sf.oval.exception net.sf.oval.context net.sf.oval.localization.message net.sf.oval net.sf.oval.context |
| net.sf.oval.configuration.annotation | net.sf.oval.internal net.sf.oval.internal.util net.sf.oval net.sf.oval.context net.sf.oval.localization.message net.sf.oval |
| net.sf.oval.configuration.pojo | net.sf.oval.configuration net.sf.oval.exception net.sf.oval.context net.sf.oval.localization.message net.sf.oval net.sf.oval.context |
| net.sf.oval.configuration.xml | net.sf.oval.constraint net.sf.oval net.sf.oval.context net.sf.oval.localization.message net.sf.oval |
| net.sf.oval.constraint | net.sf.oval net.sf.oval.context net.sf.oval.localization.message net.sf.oval |
| net.sf.oval.constraint.exclusion | net.sf.oval.context net.sf.oval.localization.message net.sf.oval net.sf.oval.context |
| net.sf.oval.context | net.sf.oval.localization.message net.sf.oval net.sf.oval.context |
| net.sf.oval.exception | net.sf.oval.context net.sf.oval.localization.message net.sf.oval net.sf.oval.context |
| net.sf.oval.expression | net.sf.oval.exception net.sf.oval.context net.sf.oval.localization.message net.sf.oval net.sf.oval.context |
| net.sf.oval.guard | net.sf.oval net.sf.oval.context net.sf.oval.localization.message net.sf.oval |
| net.sf.oval.integration.spring | net.sf.oval.context net.sf.oval.localization.message net.sf.oval net.sf.oval.context |
| net.sf.oval.internal | net.sf.oval.internal.util net.sf.oval net.sf.oval.context net.sf.oval.localization.message net.sf.oval |
| net.sf.oval.internal.util | net.sf.oval net.sf.oval.context net.sf.oval.localization.message net.sf.oval |
| net.sf.oval.localization.context | net.sf.oval.context net.sf.oval.localization.message net.sf.oval net.sf.oval.context |
| net.sf.oval.localization.message | net.sf.oval net.sf.oval.context net.sf.oval.localization.message |
| net.sf.oval.logging | net.sf.oval.internal.util net.sf.oval net.sf.oval.context net.sf.oval.localization.message net.sf.oval |
| 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. |