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
de.winkler.betoffice 1 1 0 0 6 0.0% 100.0% 0.0% 1
de.winkler.betoffice.dao 16 0 16 2 5 100.0% 71.0% 71.0% 1
de.winkler.betoffice.dao.hibernate 16 15 1 0 16 6.0% 100.0% 6.0% 1
de.winkler.betoffice.service 18 10 8 1 13 44.0% 93.0% 37.0% 1
de.winkler.betoffice.spring 1 1 0 1 5 0.0% 83.0% 17.0% 1
de.winkler.betoffice.storage 20 17 3 6 10 15.000001% 62.0% 23.0% 1
de.winkler.betoffice.storage.comparator 9 9 0 1 5 0.0% 83.0% 17.0% 1
de.winkler.betoffice.storage.enums 7 7 0 5 3 0.0% 38.0% 62.0% 1
de.winkler.betoffice.storage.exception 5 5 0 2 2 0.0% 50.0% 50.0% 1
de.winkler.betoffice.tippengine 4 3 1 1 8 25.0% 89.0% 14.0% 1
de.winkler.betoffice.util 1 1 0 6 2 0.0% 25.0% 75.0% 1
de.winkler.betoffice.validation 3 3 0 1 2 0.0% 67.0% 33.0% 1

Packages

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

de.winkler.betoffice

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.winkler.betoffice.BetofficeStore
None de.winkler.betoffice.service
de.winkler.betoffice.spring
de.winkler.betoffice.util
java.lang
java.util
org.slf4j

de.winkler.betoffice.dao

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 5 100.0% 71.0% 71.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.winkler.betoffice.dao.CommonDao
de.winkler.betoffice.dao.GameTippDao
de.winkler.betoffice.dao.GoalDao
de.winkler.betoffice.dao.GroupDao
de.winkler.betoffice.dao.GroupTypeDao
de.winkler.betoffice.dao.LocationDao
de.winkler.betoffice.dao.MaintenanceDao
de.winkler.betoffice.dao.MatchDao
de.winkler.betoffice.dao.PlayerDao
de.winkler.betoffice.dao.RoundDao
de.winkler.betoffice.dao.SeasonDao
de.winkler.betoffice.dao.SessionDao
de.winkler.betoffice.dao.TeamAliasDao
de.winkler.betoffice.dao.TeamDao
de.winkler.betoffice.dao.UserDao
de.winkler.betoffice.dao.UserSeasonDao
None de.winkler.betoffice.dao.hibernate
de.winkler.betoffice.service
de.winkler.betoffice.storage
de.winkler.betoffice.storage.enums
java.lang
java.util
org.joda.time

de.winkler.betoffice.dao.hibernate

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 16 6.0% 100.0% 6.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.winkler.betoffice.dao.hibernate.AbstractCommonDao
de.winkler.betoffice.dao.hibernate.GameTippDaoHibernate
de.winkler.betoffice.dao.hibernate.GoalDaoHibernate
de.winkler.betoffice.dao.hibernate.GroupDaoHibernate
de.winkler.betoffice.dao.hibernate.GroupTypeDaoHibernate
de.winkler.betoffice.dao.hibernate.LocationDaoHibernate
de.winkler.betoffice.dao.hibernate.MaintenanceDaoHibernate
de.winkler.betoffice.dao.hibernate.MatchDaoHibernate
de.winkler.betoffice.dao.hibernate.PlayerDaoHibernate
de.winkler.betoffice.dao.hibernate.RoundDaoHibernate
de.winkler.betoffice.dao.hibernate.SeasonDaoHibernate
de.winkler.betoffice.dao.hibernate.SessionDaoHibernate
de.winkler.betoffice.dao.hibernate.TeamAliasDaoHibernate
de.winkler.betoffice.dao.hibernate.TeamDaoHibernate
de.winkler.betoffice.dao.hibernate.UserDaoHibernate
de.winkler.betoffice.dao.hibernate.UserSeasonDaoHibernate
None de.winkler.betoffice.dao
de.winkler.betoffice.storage
de.winkler.betoffice.storage.comparator
de.winkler.betoffice.storage.enums
java.io
java.lang
java.math
java.util
javax.persistence
org.apache.commons.io
org.hibernate
org.hibernate.query
org.hibernate.type
org.joda.time
org.springframework.orm.hibernate5
org.springframework.orm.hibernate5.support

de.winkler.betoffice.service

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 13 44.0% 93.0% 37.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.winkler.betoffice.service.AbstractManagerService
de.winkler.betoffice.service.AuthService
de.winkler.betoffice.service.AutoTippService
de.winkler.betoffice.service.DatabaseMaintenanceService
de.winkler.betoffice.service.DateTimeProvider
de.winkler.betoffice.service.MasterDataManagerService
de.winkler.betoffice.service.SeasonManagerService
de.winkler.betoffice.service.TippService
de.winkler.betoffice.service.DefaultAuthService
de.winkler.betoffice.service.DefaultAutoTippService
de.winkler.betoffice.service.DefaultDatabaseMaintenanceService
de.winkler.betoffice.service.DefaultDateTimeProvider
de.winkler.betoffice.service.DefaultMasterDataManagerService
de.winkler.betoffice.service.DefaultTippService
de.winkler.betoffice.service.PerformanceMeasurement
de.winkler.betoffice.service.SecurityToken
de.winkler.betoffice.service.TippDto
de.winkler.betoffice.service.TippDto$GameTippDto
de.winkler.betoffice
de.winkler.betoffice.dao
de.winkler.betoffice.storage
de.winkler.betoffice.storage.enums
de.winkler.betoffice.storage.exception
de.winkler.betoffice.tippengine
de.winkler.betoffice.util
de.winkler.betoffice.validation
java.lang
java.util
org.apache.commons.lang
org.aspectj.lang
org.joda.time
org.slf4j

de.winkler.betoffice.spring

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 de.winkler.betoffice.spring.SpringBeans
de.winkler.betoffice
de.winkler.betoffice.util
java.lang
org.slf4j
org.springframework.beans
org.springframework.context.support

de.winkler.betoffice.storage

Afferent Couplings Efferent Couplings Abstractness Instability Distance
6 10 15.000001% 62.0% 23.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.winkler.betoffice.storage.AbstractStorageObject
de.winkler.betoffice.storage.StorageConst
de.winkler.betoffice.storage.StorageObject
de.winkler.betoffice.storage.ChampionshipConfiguration
de.winkler.betoffice.storage.GameResult
de.winkler.betoffice.storage.GameTipp
de.winkler.betoffice.storage.Goal
de.winkler.betoffice.storage.Group
de.winkler.betoffice.storage.GroupType
de.winkler.betoffice.storage.Location
de.winkler.betoffice.storage.Player
de.winkler.betoffice.storage.Season
de.winkler.betoffice.storage.Session
de.winkler.betoffice.storage.Team
de.winkler.betoffice.storage.TeamAlias
de.winkler.betoffice.storage.TeamResult
de.winkler.betoffice.storage.User
de.winkler.betoffice.storage.UserResult
de.winkler.betoffice.storage.UserResultOfDay
de.winkler.betoffice.storage.UserSeason
de.winkler.betoffice.dao
de.winkler.betoffice.dao.hibernate
de.winkler.betoffice.service
de.winkler.betoffice.storage.comparator
de.winkler.betoffice.storage.exception
de.winkler.betoffice.tippengine
de.winkler.betoffice.storage.enums
de.winkler.betoffice.util
java.io
java.lang
java.util
java.util.function
java.util.stream
org.apache.commons.lang
org.joda.time
org.slf4j

de.winkler.betoffice.storage.comparator

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 de.winkler.betoffice.storage.comparator.GameDayComparator
de.winkler.betoffice.storage.comparator.GroupNameComparator
de.winkler.betoffice.storage.comparator.GroupTypeNameComparator
de.winkler.betoffice.storage.comparator.TeamAliasNameComparator
de.winkler.betoffice.storage.comparator.TeamNameComparator
de.winkler.betoffice.storage.comparator.TeamPointsComparator
de.winkler.betoffice.storage.comparator.UserNameComparator
de.winkler.betoffice.storage.comparator.UserPointsComparator
de.winkler.betoffice.storage.comparator.UserResultOfDayComparator
de.winkler.betoffice.dao.hibernate
de.winkler.betoffice.storage
de.winkler.betoffice.util
java.lang
java.util
org.slf4j

de.winkler.betoffice.storage.enums

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 de.winkler.betoffice.storage.enums.GoalType
de.winkler.betoffice.storage.enums.RoleType
de.winkler.betoffice.storage.enums.SeasonType
de.winkler.betoffice.storage.enums.TeamType
de.winkler.betoffice.storage.enums.TippStatusType
de.winkler.betoffice.storage.enums.Toto
de.winkler.betoffice.storage.enums.TotoResult
de.winkler.betoffice.dao
de.winkler.betoffice.dao.hibernate
de.winkler.betoffice.service
de.winkler.betoffice.storage
de.winkler.betoffice.tippengine
java.io
java.lang
java.util

de.winkler.betoffice.storage.exception

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 2 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.winkler.betoffice.storage.exception.StorageException
de.winkler.betoffice.storage.exception.StorageObjectExistsException
de.winkler.betoffice.storage.exception.StorageObjectNotFoundException
de.winkler.betoffice.storage.exception.StorageObjectNotValidException
de.winkler.betoffice.storage.exception.StorageRuntimeException
de.winkler.betoffice.service
de.winkler.betoffice.tippengine
de.winkler.betoffice.storage
java.lang

de.winkler.betoffice.tippengine

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 25.0% 89.0% 14.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.winkler.betoffice.tippengine.TippGenerator
de.winkler.betoffice.tippengine.InfoCenter
de.winkler.betoffice.tippengine.MediumTippGenerator
de.winkler.betoffice.tippengine.MinTippGenerator
de.winkler.betoffice.service
de.winkler.betoffice.storage
de.winkler.betoffice.storage.enums
de.winkler.betoffice.storage.exception
de.winkler.betoffice.util
java.lang
java.util
org.apache.commons.lang
org.slf4j

de.winkler.betoffice.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
6 2 0.0% 25.0% 75.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.winkler.betoffice.util.LoggerFactory
de.winkler.betoffice
de.winkler.betoffice.service
de.winkler.betoffice.spring
de.winkler.betoffice.storage
de.winkler.betoffice.storage.comparator
de.winkler.betoffice.tippengine
java.lang
org.slf4j

de.winkler.betoffice.validation

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 0.0% 67.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.winkler.betoffice.validation.BetofficeValidationException
de.winkler.betoffice.validation.BetofficeValidationMessage
de.winkler.betoffice.validation.BetofficeValidationMessage$Severity
de.winkler.betoffice.service
java.lang
java.util

Cycles

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

There are no cyclic dependencies.

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.