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.andromda.core 3 3 0 1 9 0.0% 90.0% 10.0% 1
org.andromda.core.cartridge 3 3 0 2 13 0.0% 87.0% 13.0% 1
org.andromda.core.cartridge.template 6 6 0 1 8 0.0% 89.0% 11.0% 1
org.andromda.core.common 31 28 3 14 27 10.0% 66.0% 24.0% 1
org.andromda.core.configuration 14 13 1 10 12 7.0% 55.0% 38.0% 1
org.andromda.core.engine 7 7 0 2 14 0.0% 88.0% 12.0% 1
org.andromda.core.mapping 3 3 0 2 7 0.0% 78.0% 22.0% 1
org.andromda.core.metafacade 29 25 4 6 14 14.0% 70.0% 16.0% 1
org.andromda.core.namespace 8 6 2 7 10 25.0% 58.999996% 16.0% 1
org.andromda.core.profile 2 2 0 3 8 0.0% 73.0% 27.000002% 1
org.andromda.core.repository 5 4 1 1 10 20.0% 91.0% 11.0% 1
org.andromda.core.server 6 4 2 1 6 33.0% 86.0% 19.0% 1
org.andromda.core.templateengine 2 1 1 3 3 50.0% 50.0% 0.0% 1
org.andromda.core.transformation 4 3 1 1 9 25.0% 90.0% 15.000001% 1
org.andromda.core.translation 6 5 1 1 7 17.0% 88.0% 4.0% 1
org.andromda.core.translation.library 6 6 0 1 10 0.0% 91.0% 9.0% 1

Packages

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

org.andromda.core

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 9 0.0% 90.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.andromda.core.AndroMDA
org.andromda.core.AndroMDAServer
org.andromda.core.ModelValidationException
org.andromda.core.engine
java.io
java.lang
java.net
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.engine
org.andromda.core.metafacade
org.andromda.core.server
org.apache.log4j

org.andromda.core.cartridge

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 13 0.0% 87.0% 13.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.andromda.core.cartridge.Cartridge
org.andromda.core.cartridge.CartridgeException
org.andromda.core.cartridge.Resource
org.andromda.core.cartridge.template
org.andromda.core.engine
java.io
java.lang
java.net
java.text
java.util
org.andromda.core.cartridge.template
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.metafacade
org.andromda.core.templateengine
org.apache.commons.io
org.apache.commons.lang
org.apache.log4j

org.andromda.core.cartridge.template

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 0.0% 89.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.andromda.core.cartridge.template.ModelElement
org.andromda.core.cartridge.template.ModelElements
org.andromda.core.cartridge.template.Template
org.andromda.core.cartridge.template.TemplateException
org.andromda.core.cartridge.template.Type
org.andromda.core.cartridge.template.Type$Property
org.andromda.core.cartridge
java.io
java.lang
java.util
org.andromda.core.cartridge
org.andromda.core.common
org.andromda.core.metafacade
org.andromda.core.profile
org.apache.commons.lang

org.andromda.core.common

Afferent Couplings Efferent Couplings Abstractness Instability Distance
14 27 10.0% 66.0% 24.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.andromda.core.common.BasePlugin
org.andromda.core.common.Plugin
org.andromda.core.common.PostProcessor
org.andromda.core.common.AndroMDALogger
org.andromda.core.common.BuildInformation
org.andromda.core.common.ClassUtils
org.andromda.core.common.ClassUtilsException
org.andromda.core.common.ComponentContainer
org.andromda.core.common.ComponentContainerException
org.andromda.core.common.Constants
org.andromda.core.common.Converter
org.andromda.core.common.ExceptionRecorder
org.andromda.core.common.ExceptionUtils
org.andromda.core.common.ImportBeautifierPostProcessorImpl
org.andromda.core.common.Introspector
org.andromda.core.common.IntrospectorException
org.andromda.core.common.Merger
org.andromda.core.common.MergerException
org.andromda.core.common.Paragraph
org.andromda.core.common.PathMatcher
org.andromda.core.common.PluginException
org.andromda.core.common.ResourceFinder
org.andromda.core.common.ResourceFinderException
org.andromda.core.common.ResourceUtils
org.andromda.core.common.ResourceWriter
org.andromda.core.common.TemplateObject
org.andromda.core.common.TemplateObjectException
org.andromda.core.common.XmlObjectFactory
org.andromda.core.common.XmlObjectFactory$XmlObjectEntityResolver
org.andromda.core.common.XmlObjectFactory$XmlObjectValidator
org.andromda.core.common.XmlObjectFactoryException
org.andromda.core
org.andromda.core.cartridge
org.andromda.core.cartridge.template
org.andromda.core.configuration
org.andromda.core.engine
org.andromda.core.mapping
org.andromda.core.metafacade
org.andromda.core.namespace
org.andromda.core.profile
org.andromda.core.repository
org.andromda.core.server
org.andromda.core.transformation
org.andromda.core.translation
org.andromda.core.translation.library
de.plushnikov.doctorjim
de.plushnikov.doctorjim.javaparser
java.beans
java.io
java.lang
java.lang.reflect
java.net
java.text
java.util
java.util.regex
java.util.zip
javax.xml
org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.namespace
org.andromda.core.templateengine
org.apache.commons.collections
org.apache.commons.digester
org.apache.commons.digester.xmlrules
org.apache.commons.io
org.apache.commons.io.filefilter
org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.exception
org.apache.log4j
org.apache.log4j.xml
org.xml.sax

org.andromda.core.configuration

Afferent Couplings Efferent Couplings Abstractness Instability Distance
10 12 7.0% 55.0% 38.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.andromda.core.configuration.NamespaceProperties
org.andromda.core.configuration.Configuration
org.andromda.core.configuration.ConfigurationException
org.andromda.core.configuration.Filter
org.andromda.core.configuration.Filters
org.andromda.core.configuration.Location
org.andromda.core.configuration.Model
org.andromda.core.configuration.Namespace
org.andromda.core.configuration.Namespaces
org.andromda.core.configuration.NamespacesException
org.andromda.core.configuration.Property
org.andromda.core.configuration.Repository
org.andromda.core.configuration.Server
org.andromda.core.configuration.Transformation
org.andromda.core
org.andromda.core.cartridge
org.andromda.core.common
org.andromda.core.engine
org.andromda.core.metafacade
org.andromda.core.namespace
org.andromda.core.profile
org.andromda.core.repository
org.andromda.core.server
org.andromda.core.transformation
java.io
java.lang
java.net
java.util
java.util.regex
org.andromda.core.common
org.andromda.core.mapping
org.andromda.core.metafacade
org.andromda.core.namespace
org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.log4j

org.andromda.core.engine

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 14 0.0% 88.0% 12.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.andromda.core.engine.Engine
org.andromda.core.engine.ModelProcessor
org.andromda.core.engine.ModelProcessor$1
org.andromda.core.engine.ModelProcessor$2
org.andromda.core.engine.ModelProcessor$ValidationMessageNameComparator
org.andromda.core.engine.ModelProcessor$ValidationMessageTypeComparator
org.andromda.core.engine.ModelProcessorException
org.andromda.core
org.andromda.core.server
java.lang
java.text
java.util
org.andromda.core
org.andromda.core.cartridge
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.metafacade
org.andromda.core.namespace
org.andromda.core.repository
org.apache.commons.collections
org.apache.commons.collections.comparators
org.apache.commons.lang
org.apache.log4j

org.andromda.core.mapping

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.andromda.core.mapping.Mapping
org.andromda.core.mapping.Mappings
org.andromda.core.mapping.MappingsException
org.andromda.core.common
org.andromda.core.configuration
java.io
java.lang
java.net
java.util
org.andromda.core.common
org.apache.commons.lang
org.apache.commons.lang.builder

org.andromda.core.metafacade

Afferent Couplings Efferent Couplings Abstractness Instability Distance
6 14 14.0% 70.0% 16.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.andromda.core.metafacade.MetafacadeConstants
org.andromda.core.metafacade.MetafacadeMappings$Condition
org.andromda.core.metafacade.MetafacadeProperties
org.andromda.core.metafacade.ModelAccessFacade
org.andromda.core.metafacade.MetafacadeBase
org.andromda.core.metafacade.MetafacadeCache
org.andromda.core.metafacade.MetafacadeException
org.andromda.core.metafacade.MetafacadeFactory
org.andromda.core.metafacade.MetafacadeFactoryException
org.andromda.core.metafacade.MetafacadeImpls
org.andromda.core.metafacade.MetafacadeImpls$MetafacadeClasses
org.andromda.core.metafacade.MetafacadeImplsException
org.andromda.core.metafacade.MetafacadeMapping
org.andromda.core.metafacade.MetafacadeMapping$Property
org.andromda.core.metafacade.MetafacadeMapping$PropertyGroup
org.andromda.core.metafacade.MetafacadeMappings
org.andromda.core.metafacade.MetafacadeMappings$1
org.andromda.core.metafacade.MetafacadeMappings$2
org.andromda.core.metafacade.MetafacadeMappings$3
org.andromda.core.metafacade.MetafacadeMappings$4
org.andromda.core.metafacade.MetafacadeMappings$5
org.andromda.core.metafacade.MetafacadeMappings$6
org.andromda.core.metafacade.MetafacadeMappings$7
org.andromda.core.metafacade.MetafacadeMappings$8
org.andromda.core.metafacade.MetafacadeMappingsException
org.andromda.core.metafacade.MetafacadeUtils
org.andromda.core.metafacade.MetafacadeUtils$1
org.andromda.core.metafacade.MetafacadeUtils$2
org.andromda.core.metafacade.ModelValidationMessage
org.andromda.core
org.andromda.core.cartridge
org.andromda.core.cartridge.template
org.andromda.core.configuration
org.andromda.core.engine
org.andromda.core.repository
java.io
java.lang
java.lang.reflect
java.net
java.util
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.namespace
org.andromda.core.profile
org.apache.commons.collections
org.apache.commons.collections.keyvalue
org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.log4j

org.andromda.core.namespace

Afferent Couplings Efferent Couplings Abstractness Instability Distance
7 10 25.0% 58.999996% 16.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.andromda.core.namespace.BaseNamespaceComponent
org.andromda.core.namespace.NamespaceComponent
org.andromda.core.namespace.Component
org.andromda.core.namespace.NamespaceComponents
org.andromda.core.namespace.NamespaceComponents$NamespaceRegistryComparator
org.andromda.core.namespace.NamespaceComponentsException
org.andromda.core.namespace.NamespaceRegistry
org.andromda.core.namespace.PropertyDefinition
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.engine
org.andromda.core.metafacade
org.andromda.core.profile
org.andromda.core.repository
org.andromda.core.translation
java.io
java.lang
java.net
java.text
java.util
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.profile
org.apache.commons.io
org.apache.commons.lang

org.andromda.core.profile

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 8 0.0% 73.0% 27.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.andromda.core.profile.Profile
org.andromda.core.profile.ProfileException
org.andromda.core.cartridge.template
org.andromda.core.metafacade
org.andromda.core.namespace
java.io
java.lang
java.net
java.util
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.namespace
org.apache.commons.lang

org.andromda.core.repository

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 10 20.0% 91.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.andromda.core.repository.RepositoryFacade
org.andromda.core.repository.Repositories
org.andromda.core.repository.Repository
org.andromda.core.repository.RepositoryException
org.andromda.core.repository.RepositoryFacadeException
org.andromda.core.engine
java.io
java.lang
java.util
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.metafacade
org.andromda.core.namespace
org.andromda.core.transformation
org.apache.commons.io
org.apache.commons.lang

org.andromda.core.server

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 33.0% 86.0% 19.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.andromda.core.server.Client
org.andromda.core.server.Server
org.andromda.core.server.ClientException
org.andromda.core.server.DefaultClient
org.andromda.core.server.DefaultServer
org.andromda.core.server.ServerException
org.andromda.core
java.io
java.lang
java.net
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.engine

org.andromda.core.templateengine

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 3 50.0% 50.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.andromda.core.templateengine.TemplateEngine
org.andromda.core.templateengine.TemplateEngineException
org.andromda.core.cartridge
org.andromda.core.common
org.andromda.core.translation.library
java.io
java.lang
java.util

org.andromda.core.transformation

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 9 25.0% 90.0% 15.000001%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.andromda.core.transformation.Transformer
org.andromda.core.transformation.XslTransformer
org.andromda.core.transformation.XslTransformer$TransformerURIResolver
org.andromda.core.transformation.XslTransformerException
org.andromda.core.repository
java.io
java.lang
java.net
java.util
javax.xml.transform
javax.xml.transform.stream
org.andromda.core.common
org.andromda.core.configuration
org.apache.commons.lang

org.andromda.core.translation

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 17.0% 88.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.andromda.core.translation.Translator
org.andromda.core.translation.Expression
org.andromda.core.translation.ExpressionException
org.andromda.core.translation.ExpressionTranslator
org.andromda.core.translation.TranslationUtils
org.andromda.core.translation.TranslatorException
org.andromda.core.translation.library
java.lang
org.andromda.core.common
org.andromda.core.namespace
org.andromda.core.translation.library
org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.log4j

org.andromda.core.translation.library

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 10 0.0% 91.0% 9.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.andromda.core.translation.library.Fragment
org.andromda.core.translation.library.Library
org.andromda.core.translation.library.LibraryException
org.andromda.core.translation.library.LibraryTranslation
org.andromda.core.translation.library.LibraryTranslationFinder
org.andromda.core.translation.library.Translation
org.andromda.core.translation
java.io
java.lang
java.lang.reflect
java.util
org.andromda.core.common
org.andromda.core.templateengine
org.andromda.core.translation
org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.log4j

Cycles

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

Package Package Dependencies
org.andromda.core org.andromda.core.server
org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.cartridge org.andromda.core.cartridge.template
org.andromda.core.profile
org.andromda.core.namespace
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.cartridge.template org.andromda.core.profile
org.andromda.core.namespace
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.common org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.configuration org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.engine org.andromda.core.metafacade
org.andromda.core.profile
org.andromda.core.namespace
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.mapping org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.metafacade org.andromda.core.profile
org.andromda.core.namespace
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.namespace org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.profile org.andromda.core.namespace
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.repository org.andromda.core.namespace
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.server org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.transformation org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.translation org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common
org.andromda.core.translation.library org.andromda.core.common
org.andromda.core.configuration
org.andromda.core.mapping
org.andromda.core.common

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.