BCEL
Front Page
News and Status
Distributions
Documentation
Manual
FAQ
Get Involved
Projects
Project Documentation
Front Page
Project Info
Project Reports
Task List
Change Log
Developer Activity
File Activity
Metric Results
Checkstyle Report
Javadoc Report
JavaDocs
Source XReference
Development Process

### 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 | Total Classes | Abstract Classes | Concrete Classes | Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | --- | --- | --- | --- | ---
org.apache.bcel | 3 | 3 | 0 | 6 | 4 | 1 | 40% | 40%
org.apache.bcel.classfile | 48 | 10 | 38 | 6 | 8 | 0,21 | 57% | 22%
org.apache.bcel.generic | 216 | 44 | 172 | 5 | 7 | 0,2 | 58% | 21%
org.apache.bcel.util | 19 | 1 | 18 | 3 | 9 | 0,05 | 75% | 20%
org.apache.bcel.verifier | 11 | 3 | 8 | 2 | 12 | 0,27 | 86% | 13%
org.apache.bcel.verifier.exc | 14 | 4 | 10 | 2 | 2 | 0,29 | 50% | 21%
org.apache.bcel.verifier.statics | 9 | 0 | 9 | 1 | 7 | 0 | 88% | 12%
org.apache.bcel.verifier.structurals | 14 | 2 | 12 | 1 | 9 | 0,14 | 90% | 4%

### Packages

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

#### org.apache.bcel

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
6 | 4 | 100% | 40% | 40%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
Constants ExceptionConstants Repository |  | org.apache.bcel.classfile org.apache.bcel.generic org.apache.bcel.util org.apache.bcel.verifier org.apache.bcel.verifier.statics org.apache.bcel.verifier.structurals | java.io java.lang org.apache.bcel.classfile org.apache.bcel.util

#### org.apache.bcel.classfile

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
6 | 8 | 21% | 57% | 22%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---

AccessFlags
Attribute
AttributeReader
Constant
ConstantCP
ConstantObject
FieldOrMethod
Node
Utility
Visitor

ClassFormatException
ClassParser
Code
CodeException
ConstantClass
ConstantDouble
ConstantFieldref
ConstantFloat
ConstantInteger
ConstantInterfaceMethodref
ConstantLong
ConstantMethodref
ConstantNameAndType
ConstantPool
ConstantString
ConstantUtf8
ConstantValue
Deprecated
DescendingVisitor
EmptyVisitor
ExceptionTable
Field
InnerClass
InnerClasses
JavaClass
LineNumber
LineNumberTable
LocalVariable
LocalVariableTable
Method
PMGClass
Signature
SourceFile
StackMap
StackMapEntry
StackMapType
Synthetic
Unknown

org.apache.bcel
org.apache.bcel.generic
org.apache.bcel.util
org.apache.bcel.verifier
org.apache.bcel.verifier.statics
org.apache.bcel.verifier.structurals

java.io
java.lang
java.lang.reflect
java.util
java.util.zip
org.apache.bcel
org.apache.bcel.generic
org.apache.bcel.util

#### org.apache.bcel.generic

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
5 | 7 | 20% | 58% | 21%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---

AllocationInstruction
ArithmeticInstruction
ArrayInstruction
BranchInstruction
CPInstruction
ClassObserver
CompoundInstruction
ConstantPushInstruction
ConversionInstruction
EmptyVisitor
ExceptionThrower
FieldGenOrMethodGen
FieldInstruction
FieldObserver
FieldOrMethod
GotoInstruction
IfInstruction
IndexedInstruction
Instruction
InstructionComparator
InstructionConstants
InstructionListObserver
InstructionTargeter
InvokeInstruction
JsrInstruction
LoadClass
LoadInstruction
LocalVariableInstruction
MethodObserver
NamedAndTyped
PopInstruction
PushInstruction
ReferenceType
ReturnInstruction
Select
StackConsumer
StackInstruction
StackProducer
StoreInstruction
Type
TypedInstruction
UnconditionalBranch
VariableLengthInstruction
Visitor

AALOAD
AASTORE
ACONST_NULL
ALOAD
ANEWARRAY
ARETURN
ARRAYLENGTH
ASTORE
ATHROW
ArrayType
BALOAD
BASTORE
BIPUSH
BREAKPOINT
BasicType
BranchHandle
CALOAD
CASTORE
CHECKCAST
ClassGen
ClassGenException
CodeExceptionGen
ConstantPoolGen
D2F
D2I
D2L
DADD
DALOAD
DASTORE
DCMPG
DCMPL
DCONST
DDIV
DLOAD
DMUL
DNEG
DREM
DRETURN
DSTORE
DSUB
DUP
DUP2
DUP2_X1
DUP2_X2
DUP_X1
DUP_X2
F2D
F2I
F2L
FADD
FALOAD
FASTORE
FCMPG
FCMPL
FCONST
FDIV
FLOAD
FMUL
FNEG
FREM
FRETURN
FSTORE
FSUB
FieldGen
GETFIELD
GETSTATIC
GOTO
GOTO_W
I2B
I2C
I2D
I2F
I2L
I2S
IADD
IALOAD
IAND
IASTORE
ICONST
IDIV
IFEQ
IFGE
IFGT
IFLE
IFLT
IFNE
IFNONNULL
IFNULL
IF_ACMPEQ
IF_ACMPNE
IF_ICMPEQ
IF_ICMPGE
IF_ICMPGT
IF_ICMPLE
IF_ICMPLT
IF_ICMPNE
IINC
ILOAD
IMPDEP1
IMPDEP2
IMUL
INEG
INSTANCEOF
INVOKEINTERFACE
INVOKESPECIAL
INVOKESTATIC
INVOKEVIRTUAL
IOR
IREM
IRETURN
ISHL
ISHR
ISTORE
ISUB
IUSHR
IXOR
InstructionFactory
InstructionHandle
InstructionList
JSR
JSR_W
L2D
L2F
L2I
LADD
LALOAD
LAND
LASTORE
LCMP
LCONST
LDC
LDC2_W
LDC_W
LDIV
LLOAD
LMUL
LNEG
LOOKUPSWITCH
LOR
LREM
LRETURN
LSHL
LSHR
LSTORE
LSUB
LUSHR
LXOR
LineNumberGen
LocalVariableGen
MONITORENTER
MONITOREXIT
MULTIANEWARRAY
MethodGen
NEW
NEWARRAY
NOP
ObjectType
POP
POP2
PUSH
PUTFIELD
PUTSTATIC
RET
RETURN
ReturnaddressType
SALOAD
SASTORE
SIPUSH
SWAP
SWITCH
TABLESWITCH
TargetLostException

org.apache.bcel.classfile
org.apache.bcel.util
org.apache.bcel.verifier
org.apache.bcel.verifier.statics
org.apache.bcel.verifier.structurals

java.io
java.lang
java.lang.reflect
java.util
org.apache.bcel
org.apache.bcel.classfile
org.apache.bcel.util

#### org.apache.bcel.util

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
3 | 9 | 5% | 75% | 20%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---

Repository

AttributeHTML
BCELFactory
BCELifier
ByteSequence
Class2HTML
ClassLoader
ClassLoaderRepository
ClassPath
ClassQueue
ClassSet
ClassStack
ClassVector
CodeHTML
ConstantHTML
InstructionFinder
JavaWrapper
MethodHTML
SyntheticRepository

org.apache.bcel
org.apache.bcel.classfile
org.apache.bcel.generic

java.io
java.lang
java.lang.reflect
java.util
java.util.zip
org.apache.bcel
org.apache.bcel.classfile
org.apache.bcel.generic
org.apache.regexp

#### org.apache.bcel.verifier

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
2 | 12 | 27% | 86% | 13%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---

NativeVerifier
PassVerifier
VerifierFactoryObserver

GraphicalVerifier
TransitiveHull
VerificationResult
Verifier
VerifierAppFrame
VerifierFactory
VerifierFactoryListModel
VerifyDialog

org.apache.bcel.verifier.statics
org.apache.bcel.verifier.structurals

java.awt
java.awt.event
java.io
java.lang
java.util
javax.swing
javax.swing.event
org.apache.bcel
org.apache.bcel.classfile
org.apache.bcel.generic
org.apache.bcel.verifier.statics
org.apache.bcel.verifier.structurals

#### org.apache.bcel.verifier.exc

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
2 | 2 | 29% | 50% | 21%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---

CodeConstraintException
StaticCodeConstraintException
VerificationException
VerifierConstraintViolatedException

AssertionViolatedException
ClassConstraintException
InvalidMethodException
LinkingConstraintException
LoadingException
LocalVariableInfoInconsistentException
StaticCodeInstructionConstraintException
StaticCodeInstructionOperandConstraintException
StructuralCodeConstraintException
Utility

org.apache.bcel.verifier.statics
org.apache.bcel.verifier.structurals

java.io
java.lang

#### org.apache.bcel.verifier.statics

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 7 | 0% | 88% | 12%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
| DOUBLE_Upper IntList LONG_Upper LocalVariableInfo LocalVariablesInfo Pass1Verifier Pass2Verifier Pass3aVerifier StringRepresentation | org.apache.bcel.verifier | java.lang java.util org.apache.bcel org.apache.bcel.classfile org.apache.bcel.generic org.apache.bcel.verifier org.apache.bcel.verifier.exc

#### org.apache.bcel.verifier.structurals

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 9 | 14% | 90% | 4%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---

InstructionContext
Subroutine

ControlFlowGraph
ExceptionHandler
ExceptionHandlers
ExecutionVisitor
Frame
GenericArray
InstConstraintVisitor
LocalVariables
OperandStack
Pass3bVerifier
Subroutines
UninitializedObjectType

org.apache.bcel.verifier

java.awt
java.io
java.lang
java.util
org.apache.bcel
org.apache.bcel.classfile
org.apache.bcel.generic
org.apache.bcel.verifier
org.apache.bcel.verifier.exc

### Cycles

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

Package | Cyclic Dependencies
--- | ---
org.apache.bcel | org.apache.bcel.classfile org.apache.bcel
org.apache.bcel.classfile | org.apache.bcel org.apache.bcel.classfile
org.apache.bcel.generic | org.apache.bcel org.apache.bcel.classfile org.apache.bcel
org.apache.bcel.util | org.apache.bcel org.apache.bcel.classfile org.apache.bcel
org.apache.bcel.verifier | org.apache.bcel.generic org.apache.bcel org.apache.bcel.classfile org.apache.bcel
org.apache.bcel.verifier.statics | org.apache.bcel.generic org.apache.bcel org.apache.bcel.classfile org.apache.bcel
org.apache.bcel.verifier.structurals | org.apache.bcel.generic org.apache.bcel org.apache.bcel.classfile org.apache.bcel

### Explanations

[ 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.