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
mobisnap 4 0 4 2 2 0 50% 50%
mobi snap.common 7 3 4 1 3 0,43 75% 18%
mobisnap.common.msql 3 0 3 0 3 0 100% 0%
mobisnap.common.reservation 10 2 8 1 8 0,2 89% 9%
mobisnap.mobile_trx 175 8 167 2 11 0,05 85% 11%
nmp.dbms 2 0 2 4 5 0 56% 44%
nmp.dbms.JDBC 4 0 4 4 7 0 64% 36%
nmp.dbms.util 14 0 14 0 10 0 100% 0%
nmp.dbms.win32.MSAccess 2 0 2 0 1 0 100% 0%
nmp.debug 1 0 1 0 2 0 100% 0%
nmp.file_utils 6 0 6 0 5 0 100% 0%
nmp.io 4 0 4 1 5 0 83% 17%
nmp.util 16 1 15 2 5 0,06 71% 22%
replica.command 8 4 4 7 3 0,5 30% 20%
replica.command.beans 2 0 2 1 4 0 80% 20%
replica.command.xml 3 1 2 0 6 0,33 100% 33%
replica.core 4 1 3 6 10 0,25 62% 12%
replica.database.commands 7 2 5 2 7 0,29 78% 6%
replica.database.commands.plsql 1 0 1 0 7 0 100% 0%
replica.database.commands.sql 3 0 3 0 4 0 100% 0%
replica.group 4 2 2 6 4 0,5 40% 10%
replica.group.event 6 2 4 3 3 0,33 50% 17%
replica.group.jgroups 3 0 3 0 9 0 100% 0%
replica.server 4 0 4 3 12 0 80% 20%
replica.server.commands 5 1 4 2 8 0,2 80% 0%
replica.server.commands.plsql 2 0 2 0 8 0 100% 0%
replica.server.commands.sql 3 1 2 0 6 0,33 100% 33%
replica.server.mvc 2 1 1 1 3 0,5 75% 25%
replica.session 2 2 0 6 1 1 14% 14%
replica.session.support 2 0 2 0 4 0 100% 0%
replica.textui 2 0 2 0 5 0 100% 0%
replica.utils 2 1 1 2 5 0,5 71% 21%

Packages

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

mobisnap

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 2 0% 50% 50%
Abstract Classes Concrete Classes Used by Packages Uses Packages
MobisnapConstants

MobisnapException

MobisnapLoginException

MobisnapPinException

mobisnap.common.reservation

mobisnap.mobile_trx

java.io

java.lang

mobisnap.common

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 3 43% 75% 18%
Abstract Classes Concrete Classes Used by Packages Uses Packages
MobisnapFactory

MobisnapUID

UIDFactory

LoginRequest

LoginResponse

MessageWraper

ReservationInfo

mobisnap.mobile_trx

java.io

java.lang

java.util

mobisnap.common.msql

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 3 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
MobileTrx

MobileTrxResult

MobileTrxWraper

java.io

java.lang

java.util

mobisnap.mobile_trx

Afferent Couplings Efferent Couplings Abstractness Insta bility Distance
2 11 5% 85% 11%
Abstract Classes Concrete Classes Used by Packages Uses Packages
ColumnCondition

MSQLTFunction

MSQLTName

MSQLTVariable

MobisnapSQLConstants

MobisnapSQLTreeConstants

MobisnapSQLVisitor

Node

ASTArguments

ASTAssignmentStatement

ASTBasicDataTypeDeclaration

ASTBeginEndBlock

ASTCloseStatement

ASTClusterIdStatement

ASTColumnValues

ASTCommitStatement

ASTCompilationUnit

ASTConnectClause

ASTConstantDeclaration

ASTCreateMonitor

ASTCreateSnapshot

ASTCreateTable

ASTCursorDeclaration

ASTCursorForLoop

ASTDDLStatement

ASTDatabaseDefinition

ASTDeclarationSection

ASTDeclarations

ASTDeleteStatement

ASTDropTable

ASTExceptionBlock

ASTExceptionDeclaration

ASTExceptionHandler

ASTExistsClause

ASTExitStatement

ASTFetchStatement

ASTFieldConstraint

ASTFieldDefinition

ASTFieldList

ASTForLoop

ASTForUpdateClause

ASTFromClause

ASTFromItem

ASTFunctionCall

ASTGetEscrowReservation

ASTGetReservation

ASTGetReservation$Column

ASTGetSlotReservation

ASTGetValueChangeReservation

ASTGetValueUseReservation

ASTGotoStatement

ASTGroupByClause

ASTIdentifierDeclaration

ASTIfStatement

ASTIfStatement$Alternatives

ASTInsertStatement

ASTIntoClause

ASTIntoItem

ASTIsNullClause

ASTLabelDeclaration

ASTLockMode

ASTLockTableStatement

ASTLoopStatement

ASTMonitorName

ASTMonitorQueryStatement

ASTNormalLoop

ASTNullStatement

ASTNumericForLoop

ASTNumericForLoopLookahead

ASTOnCommitBlock

ASTOnRollbackBlock

ASTOpenStatement

ASTOracleObjectName

ASTOrderByClause

ASTOuterJoinExpression

ASTPLSQLBlockStatement

ASTPLSQLStatement

ASTPlSqlAndExpression

ASTPlSqlBetweenClause

ASTPlSqlExpotentExpression

ASTPlSqlExpression

ASTPlSqlExpressionList

ASTPlSqlInClause

ASTPlSqlLikeClause

ASTPlSqlMultiplicativeExpression

ASTPlSqlMultiplicativeExpression$term

ASTPlSqlPrimaryExpression

ASTPlSqlRelationalExpression

ASTPlSqlSimpleExpression

ASTPlSqlSimpleExpression$term

ASTPlSqlUnaryExpression

ASTPlSqlUnaryLogicalExpression

ASTQueryStatement

ASTRaiseStatement

ASTRelop

ASTReturnStatement

ASTRollbackStatement

ASTRowSpecSlot

ASTRowSpecification

ASTSQLAndExpression

ASTSQLArguments

ASTSQLBetweenClause

ASTSQLExpotentExpression

ASTSQLExpression

ASTSQLExpressionList

ASTSQLInClause

ASTSQLLikeClause

ASTSQLMultiplicativeExpression

ASTSQLMultiplicativeExpression$term

ASTSQLPrimaryExpression

ASTSQLRelationalExpression

ASTSQLRelationalOperatorExpression

ASTSQLSimpleExpression

ASTSQLSimpleExpression$term

ASTSQLStatement

ASTSQLUnaryExpression

ASTSQLUnaryLogicalExpression

ASTSavepointStatement

ASTSelectItem

ASTSelectList

ASTSelectStatement

ASTSelectWithoutOrder

ASTSequenceOfStatements

ASTSetClause

ASTSetTransactionStatement

ASTSubQuery

ASTSubroutineCall

ASTTableColumn

ASTTableConstraint

ASTTableReference

ASTTypeDeclaration

ASTUpdateSnapshot

ASTUpdateStatement

ASTUpdateStatement$update

ASTUpdatedValue

ASTVariableDeclaration

ASTWhereClause

ASTWhileLoop

CommitException

JJTMobisnapSQLState

JavaCharStream

MSQLNames

MSQLTBinInt

MSQLTBoolean

MSQLTChar

MSQLTDate

MSQLTFloat

MSQLTFunNot ify

MSQLTFunPrint

MSQLTInteger

MSQLTNumber

MSQLTReal

MSQLTVarChar

MSQLTVarChar2

MSQLTable

MSQLTableConstraint

MSQLTableField

MSQLTypeUtil

MobisnapInterpreter

MobisnapSQL

MobisnapSQL$JJCalls

MobisnapSQLTokenManager

NoReservationException

ParseException

RelopCondition

RollbackException

SQLNull

SimpleMobisnapInterpreter

SimpleNode

SimpleNodeAux

SimpleNodeValue

Token

TokenMgrError

UnknownException

UnknownValueException

mobisnap.common.reservation

replica.database.commands.plsql

java.io

java.lang

java.math

java.sql

java.text

java.util

mobisnap

mobisnap.common

mobisnap.common.reservation

nmp.dbms

nmp.dbms.JDBC

nmp.dbms

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 5 0% 56% 44%
Abstract Classes Concrete Classes Used by Packages Uses Packages
ExtSQLVectorResult

SQLVectorResult

mobisnap.common.reservation

mobisnap.mobile_trx

nm p.dbms.JDBC

nmp.dbms.util

java.io

java.lang

java.sql

java.util

nmp.dbms.JDBC

nmp.dbms.win32.MSAccess

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 1 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
DBIntFactory

DBIntMSAccess

java.lang

nmp.debug

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
SystemProperties

java.lang

java.util

nmp.file_utils

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
DeleteFiles

DumpTree

ExtensionFileFilter

LogExecute

LogSysExecute

SimpleFilenameFilter

java.io

java.lang

java.lang.reflect

java.util

javax.swing.filechooser

nmp.io

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 0% 83% 17%
Abstract Classes Concrete Classes Used by Packages Uses Packages
DumpOutputStream

DuoOutputStream

MergeFiles

Utilities

nmp.dbms.JDBC

java.io

java.lang

java.text

java.util

nmp.util

replica.command.beans

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 0% 80% 20%
Abstract Classes Concrete Classes Used by Packages Uses Packages
BeansCommandProcessor

BeansMappings

replica.core

java.lang

java.util

org.springframework.context

replica.command

replica.command.xml

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 33% 100% 33%
Abstract Classes Concrete Classes Used by Packages Uses Packages
XmlConstants

XmlCommandProcessor

XmlHashtableMappings

java.io

java.lang

java.util

javax.xml.parsers

org.w3c.dom

replica.command

replica.database.commands.plsql

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
PlsqlDbCommand

java.io

java.lang

java.sql

java.util.logging

mobisnap.mobile_trx

org.springframework.jdbc.datasource

replica.database.commands

replica.database.commands.sql

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
CallDbCommand

QueryDbCommand

UpdateDbCommand

java.lang

java.sql

replica.core

replica.database.commands

replica.group.event

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 3 33% 50% 17%
Abstract Classes Concrete Classes Used by Packages Uses Packages
GroupListener

MessageListener

GroupEvent

MessageEvent

SuspectEvent

ViewEvent

replica.core

replica.group

replica.group.jgroups

java.lang

java.util

replica.group

replica.server.commands.plsql

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 8 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
PlsqlCommandProcessor

StartPlsqlCommand

java.lang

java.util

replica.command

replica.core

replica.group

replica.server

replica.server.commands

replica.session

replica.server.commands.sql

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 33% 100% 33%
Abstract Classes Concrete Classes Used by Packages Uses Packages
SqlCommand

ReplicatedCommand

SelectCommand

java.lang

replica.command

replica.core

replica.group

replica.server.commands

replica.server.mvc

replica.server.mvc

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 3 50% 75% 25%
Abstract Classes Concrete Classes Used by Packages Uses Packages
View

TableView

replica.server.commands.sql

java.lang

java.sql

java.util.logging

replica.session

Afferent Couplings Efferent Couplings Abstractness Instability Distance
6 1 100% 14% 14%
Abstract Classes Concrete Classes Used by Packages Uses Packages
Session

SessionManager

replica.core

replica.database.commands

replica.server

replica.server.commands

replica.server.commands.plsql

replica.session.support

java.lang

replica.session.support

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
SessionImpl

SimpleSessionManager

java.lang

java.util

java.util.logging

replica.session

replica.textui

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 0% 100% 0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
SimpleInterface

SimpleInterface$ReturnListener

java.io

java.lang

java.net

java.util

replica.utils

replica.utils

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 5 50% 71% 21%
Abstract Classes Concrete Classes Used by Packages Uses Packages
BeanUtils

UncheckedBeansException

replica.command

replica.textui

java.beans

java.lang

java.lang.reflect

java.util

java.util.logging

Cycles

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

Package Cyclic Dependencies
mobisnap.common.reservation nmp.dbms.JDBC

nmp.dbms

nmp.dbms.JDBC

mobisnap.mobile_trx nmp.dbms.JDBC

nmp.dbms

nmp.dbms.JDBC

nmp.dbms nmp.dbms.JDBC

nmp.dbms

nmp.dbms.JDBC nmp.dbms

nmp.dbms.JDBC

nmp.dbms.util nmp.dbms.JDBC

nmp.dbms

nmp.dbms.JDBC

replica.core replica.server

replica.core

replica.database.commands replica.core

replica.server

replica.core

replica.database.commands.plsql replica.database.commands

replica.core

replica.server

replica.core

replica.database.commands.sql replica.database.commands

replica.core

replica.server

replica.core

replica.group replica.group.event

replica.group

replica.group.event replica.group

replica.group.event

replica.group.jgroups replica.group

replica.group.event

replica.group

replica.server replica.core

replica.server

replica.server.commands replica.core

replica.server

replica.core

replica.server.commands.plsql replica.core

replica.server

replica.core

replica.server.commands.sql replica.server.commands

replica.core

replica.server

replica.core

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.