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.argouml.language.csharp.generator 3 3 0 0 14 0.0% 100.0% 0.0% 1
org.argouml.language.csharp.importer 3 3 0 0 17 0.0% 100.0% 0.0% 1
org.argouml.language.csharp.importer.bridge 1 1 0 1 1 0.0% 50.0% 50.0% 1
org.argouml.language.csharp.importer.csparser.collections 5 5 0 7 6 0.0% 46.0% 54.000004% 1
org.argouml.language.csharp.importer.csparser.enums 6 6 0 5 1 0.0% 17.0% 83.0% 1
org.argouml.language.csharp.importer.csparser.interfaces 3 0 3 4 2 100.0% 33.0% 33.0% 1
org.argouml.language.csharp.importer.csparser.main 5 5 0 2 14 0.0% 88.0% 12.0% 1
org.argouml.language.csharp.importer.csparser.members 16 15 1 4 5 6.0% 56.0% 38.0% 1
org.argouml.language.csharp.importer.csparser.nodes.expressions 30 28 2 9 5 7.0% 36.0% 58.0% 1
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive 10 9 1 1 4 10.0% 80.0% 10.0% 1
org.argouml.language.csharp.importer.csparser.preprocessornodes 4 4 0 1 1 0.0% 50.0% 50.0% 1
org.argouml.language.csharp.importer.csparser.statements 24 24 0 2 6 0.0% 75.0% 25.0% 1
org.argouml.language.csharp.importer.csparser.structural 5 5 0 2 5 0.0% 71.0% 29.0% 1
org.argouml.language.csharp.importer.csparser.types 5 5 0 2 5 0.0% 71.0% 29.0% 1
org.argouml.language.csharp.importer.csparser.util 1 1 0 1 1 0.0% 50.0% 50.0% 1

Packages

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

org.argouml.language.csharp.generator

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 14 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.argouml.language.csharp.generator.GeneratorCSharp
org.argouml.language.csharp.generator.GeneratorCSharp$1TagExtractor
org.argouml.language.csharp.generator.Section
None java.io
java.lang
java.util
org.apache.log4j
org.argouml.application.helpers
org.argouml.model
org.argouml.moduleloader
org.argouml.ocl
org.argouml.uml
org.argouml.uml.generator
tudresden.ocl
tudresden.ocl.check.types
tudresden.ocl.parser.analysis
tudresden.ocl.parser.node

org.argouml.language.csharp.importer

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 17 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.argouml.language.csharp.importer.CSModeller
org.argouml.language.csharp.importer.CSharpConstants
org.argouml.language.csharp.importer.CSharpImport
None java.io
java.lang
java.util
org.apache.log4j
org.argouml.i18n
org.argouml.kernel
org.argouml.language.csharp.importer.bridge
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.main
org.argouml.language.csharp.importer.csparser.members
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.structural
org.argouml.language.csharp.importer.csparser.types
org.argouml.model
org.argouml.taskmgmt
org.argouml.uml.reveng
org.argouml.util

org.argouml.language.csharp.importer.bridge

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 1 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.argouml.language.csharp.importer.bridge.ModifierMap
org.argouml.language.csharp.importer
java.lang

org.argouml.language.csharp.importer.csparser.collections

Afferent Couplings Efferent Couplings Abstractness Instability Distance
7 6 0.0% 46.0% 54.000004%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.argouml.language.csharp.importer.csparser.collections.ExpressionList
org.argouml.language.csharp.importer.csparser.collections.NodeCollection
org.argouml.language.csharp.importer.csparser.collections.ParseStateCollection
org.argouml.language.csharp.importer.csparser.collections.Stack
org.argouml.language.csharp.importer.csparser.collections.TokenCollection
org.argouml.language.csharp.importer
org.argouml.language.csharp.importer.csparser.main
org.argouml.language.csharp.importer.csparser.members
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.statements
org.argouml.language.csharp.importer.csparser.structural
org.argouml.language.csharp.importer.csparser.types
java.lang
java.util
org.argouml.language.csharp.importer.csparser.enums
org.argouml.language.csharp.importer.csparser.interfaces
org.argouml.language.csharp.importer.csparser.main
org.argouml.language.csharp.importer.csparser.nodes.expressions

org.argouml.language.csharp.importer.csparser.enums

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 1 0.0% 17.0% 83.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.argouml.language.csharp.importer.csparser.enums.IntegralType
org.argouml.language.csharp.importer.csparser.enums.Modifier
org.argouml.language.csharp.importer.csparser.enums.NumberStyles
org.argouml.language.csharp.importer.csparser.enums.ParseState
org.argouml.language.csharp.importer.csparser.enums.PreprocessorID
org.argouml.language.csharp.importer.csparser.enums.TokenID
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.main
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive
org.argouml.language.csharp.importer.csparser.structural
java.lang

org.argouml.language.csharp.importer.csparser.interfaces

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 2 100.0% 33.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.argouml.language.csharp.importer.csparser.interfaces.IMemberAccessible
org.argouml.language.csharp.importer.csparser.interfaces.ISourceCode
org.argouml.language.csharp.importer.csparser.interfaces.IType
None org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.main
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.statements
java.lang
java.util

org.argouml.language.csharp.importer.csparser.main

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.argouml.language.csharp.importer.csparser.main.FeatureNotSupportedException
org.argouml.language.csharp.importer.csparser.main.Lexer
org.argouml.language.csharp.importer.csparser.main.Parser
org.argouml.language.csharp.importer.csparser.main.Test
org.argouml.language.csharp.importer.csparser.main.Token
org.argouml.language.csharp.importer
org.argouml.language.csharp.importer.csparser.collections
java.io
java.lang
java.util
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.enums
org.argouml.language.csharp.importer.csparser.interfaces
org.argouml.language.csharp.importer.csparser.members
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive
org.argouml.language.csharp.importer.csparser.preprocessornodes
org.argouml.language.csharp.importer.csparser.statements
org.argouml.language.csharp.importer.csparser.structural
org.argouml.language.csharp.importer.csparser.types
org.argouml.uml.reveng

org.argouml.language.csharp.importer.csparser.members

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 5 6.0% 56.0% 38.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.argouml.language.csharp.importer.csparser.members.MemberNode
org.argouml.language.csharp.importer.csparser.members.AccessorNode
org.argouml.language.csharp.importer.csparser.members.ConstantNode
org.argouml.language.csharp.importer.csparser.members.ConstructorNode
org.argouml.language.csharp.importer.csparser.members.DestructorNode
org.argouml.language.csharp.importer.csparser.members.EventNode
org.argouml.language.csharp.importer.csparser.members.FieldNode
org.argouml.language.csharp.importer.csparser.members.IndexerNode
org.argouml.language.csharp.importer.csparser.members.InterfaceEventNode
org.argouml.language.csharp.importer.csparser.members.InterfaceIndexerNode
org.argouml.language.csharp.importer.csparser.members.InterfaceMethodNode
org.argouml.language.csharp.importer.csparser.members.InterfacePropertyNode
org.argouml.language.csharp.importer.csparser.members.MethodNode
org.argouml.language.csharp.importer.csparser.members.OperatorNode
org.argouml.language.csharp.importer.csparser.members.ParamDeclNode
org.argouml.language.csharp.importer.csparser.members.PropertyNode
org.argouml.language.csharp.importer
org.argouml.language.csharp.importer.csparser.main
org.argouml.language.csharp.importer.csparser.statements
org.argouml.language.csharp.importer.csparser.types
java.lang
java.util
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.statements

org.argouml.language.csharp.importer.csparser.nodes.expressions

Afferent Couplings Efferent Couplings Abstractness Instability Distance
9 5 7.0% 36.0% 58.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.argouml.language.csharp.importer.csparser.nodes.expressions.BaseNode
org.argouml.language.csharp.importer.csparser.nodes.expressions.ExpressionNode
org.argouml.language.csharp.importer.csparser.nodes.expressions.ArgumentNode
org.argouml.language.csharp.importer.csparser.nodes.expressions.ArrayCreationExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.ArrayInitializerExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.AssignmentExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.BaseAccessExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.BinaryExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.CheckedExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.ConditionalExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.ConstantExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.DelegateCreationExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.ElementAccessExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.IdentifierExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.InvocationExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.MemberAccessExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.ObjectCreationExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.OutNode
org.argouml.language.csharp.importer.csparser.nodes.expressions.ParenthesizedExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.PostDecrementExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.PostIncrementExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.PredefinedTypeNode
org.argouml.language.csharp.importer.csparser.nodes.expressions.PrimaryExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.RefNode
org.argouml.language.csharp.importer.csparser.nodes.expressions.ThisAccessExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.TypeNode
org.argouml.language.csharp.importer.csparser.nodes.expressions.TypeOfExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.UnaryCastExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.UnaryExpression
org.argouml.language.csharp.importer.csparser.nodes.expressions.UncheckedExpression
org.argouml.language.csharp.importer
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.main
org.argouml.language.csharp.importer.csparser.members
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive
org.argouml.language.csharp.importer.csparser.preprocessornodes
org.argouml.language.csharp.importer.csparser.statements
org.argouml.language.csharp.importer.csparser.structural
org.argouml.language.csharp.importer.csparser.types
java.lang
java.util
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.enums
org.argouml.language.csharp.importer.csparser.interfaces

org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 10.0% 80.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive.LiteralNode
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive.BooleanPrimitive
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive.CharPrimitive
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive.DecimalPrimitive
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive.IntegralPrimitive
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive.IntegralPrimitive$1
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive.NullPrimitive
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive.RealPrimitive
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive.StringPrimitive
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive.VoidPrimitive
org.argouml.language.csharp.importer.csparser.main
java.lang
org.argouml.language.csharp.importer.csparser.enums
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.util

org.argouml.language.csharp.importer.csparser.preprocessornodes

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 1 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.argouml.language.csharp.importer.csparser.preprocessornodes.PPDefineNode
org.argouml.language.csharp.importer.csparser.preprocessornodes.PPEndIfNode
org.argouml.language.csharp.importer.csparser.preprocessornodes.PPIfNode
org.argouml.language.csharp.importer.csparser.preprocessornodes.PPNode
org.argouml.language.csharp.importer.csparser.main
org.argouml.language.csharp.importer.csparser.nodes.expressions

org.argouml.language.csharp.importer.csparser.statements

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 6 0.0% 75.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.argouml.language.csharp.importer.csparser.statements.BlockStatement
org.argouml.language.csharp.importer.csparser.statements.BreakStatement
org.argouml.language.csharp.importer.csparser.statements.CaseNode
org.argouml.language.csharp.importer.csparser.statements.CatchNode
org.argouml.language.csharp.importer.csparser.statements.CheckedStatement
org.argouml.language.csharp.importer.csparser.statements.ContinueStatement
org.argouml.language.csharp.importer.csparser.statements.DoStatement
org.argouml.language.csharp.importer.csparser.statements.ExpressionStatement
org.argouml.language.csharp.importer.csparser.statements.FinallyNode
org.argouml.language.csharp.importer.csparser.statements.ForEachStatement
org.argouml.language.csharp.importer.csparser.statements.ForStatement
org.argouml.language.csharp.importer.csparser.statements.GotoStatement
org.argouml.language.csharp.importer.csparser.statements.IfStatement
org.argouml.language.csharp.importer.csparser.statements.LabeledStatement
org.argouml.language.csharp.importer.csparser.statements.LocalDeclarationStatement
org.argouml.language.csharp.importer.csparser.statements.LockStatement
org.argouml.language.csharp.importer.csparser.statements.ReturnStatement
org.argouml.language.csharp.importer.csparser.statements.StatementNode
org.argouml.language.csharp.importer.csparser.statements.SwitchStatement
org.argouml.language.csharp.importer.csparser.statements.ThrowNode
org.argouml.language.csharp.importer.csparser.statements.TryStatement
org.argouml.language.csharp.importer.csparser.statements.UncheckedStatement
org.argouml.language.csharp.importer.csparser.statements.UsingStatement
org.argouml.language.csharp.importer.csparser.statements.WhileStatement
org.argouml.language.csharp.importer.csparser.main
org.argouml.language.csharp.importer.csparser.members
java.lang
java.util
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.interfaces
org.argouml.language.csharp.importer.csparser.members
org.argouml.language.csharp.importer.csparser.nodes.expressions

org.argouml.language.csharp.importer.csparser.structural

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 5 0.0% 71.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.argouml.language.csharp.importer.csparser.structural.AttributeArgumentNode
org.argouml.language.csharp.importer.csparser.structural.AttributeNode
org.argouml.language.csharp.importer.csparser.structural.CompilationUnitNode
org.argouml.language.csharp.importer.csparser.structural.NamespaceNode
org.argouml.language.csharp.importer.csparser.structural.UsingDirectiveNode
org.argouml.language.csharp.importer
org.argouml.language.csharp.importer.csparser.main
java.lang
java.util
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.enums
org.argouml.language.csharp.importer.csparser.nodes.expressions

org.argouml.language.csharp.importer.csparser.types

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 5 0.0% 71.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.argouml.language.csharp.importer.csparser.types.ClassNode
org.argouml.language.csharp.importer.csparser.types.DelegateNode
org.argouml.language.csharp.importer.csparser.types.EnumNode
org.argouml.language.csharp.importer.csparser.types.InterfaceNode
org.argouml.language.csharp.importer.csparser.types.StructNode
org.argouml.language.csharp.importer
org.argouml.language.csharp.importer.csparser.main
java.lang
java.util
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.members
org.argouml.language.csharp.importer.csparser.nodes.expressions

org.argouml.language.csharp.importer.csparser.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 1 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.argouml.language.csharp.importer.csparser.util.StringUtil
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive
java.lang

Cycles

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

Package Package Dependencies
org.argouml.language.csharp.importer org.argouml.language.csharp.importer.csparser.structural
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.collections org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.main org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.members org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.nodes.expressions org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.nodes.expressions.primitive org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.preprocessornodes org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.statements org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.structural org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.types org.argouml.language.csharp.importer.csparser.nodes.expressions
org.argouml.language.csharp.importer.csparser.collections
org.argouml.language.csharp.importer.csparser.nodes.expressions

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.