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.apache.shiro 3 2 1 17 4 33.0% 19.0% 48.0% 1
org.apache.shiro.aop 7 1 6 1 5 86.0% 83.0% 69.0% 1
org.apache.shiro.authc 24 13 11 10 8 46.0% 44.0% 10.0% 1
org.apache.shiro.authc.credential 14 11 3 2 8 21.0% 80.0% 1.0% 1
org.apache.shiro.authc.pam 7 5 2 1 7 29.0% 88.0% 16.0% 1
org.apache.shiro.authz 10 7 3 12 7 30.000002% 37.0% 33.0% 1
org.apache.shiro.authz.annotation 6 1 5 1 2 83.0% 67.0% 50.0% 1
org.apache.shiro.authz.aop 14 10 4 0 7 29.0% 100.0% 29.0% 1
org.apache.shiro.authz.permission 9 5 4 3 6 44.0% 67.0% 11.0% 1
org.apache.shiro.cache 7 3 4 4 5 57.0% 56.0% 13.0% 1
org.apache.shiro.codec 5 4 1 5 4 20.0% 44.0% 36.0% 1
org.apache.shiro.concurrent 3 3 0 0 5 0.0% 100.0% 0.0% 1
org.apache.shiro.config 15 12 3 2 16 20.0% 89.0% 9.0% 1
org.apache.shiro.config.event 8 5 3 1 4 38.0% 80.0% 17.0% 1
org.apache.shiro.crypto 12 8 4 2 9 33.0% 82.0% 15.000001% 1
org.apache.shiro.crypto.hash 15 10 5 2 7 33.0% 78.0% 11.0% 1
org.apache.shiro.crypto.hash.format 9 5 4 1 5 44.0% 83.0% 28.0% 1
org.apache.shiro.dao 2 1 1 1 2 50.0% 67.0% 17.0% 1
org.apache.shiro.env 5 3 2 0 6 40.0% 100.0% 40.0% 1
org.apache.shiro.event 4 0 4 5 3 100.0% 38.0% 38.0% 1
org.apache.shiro.event.support 9 6 3 2 7 33.0% 78.0% 11.0% 1
org.apache.shiro.functor 1 0 1 0 1 100.0% 100.0% 100.0% 1
org.apache.shiro.io 6 5 1 3 7 17.0% 70.0% 13.0% 1
org.apache.shiro.jndi 8 7 1 1 5 12.0% 83.0% 4.0% 1
org.apache.shiro.ldap 1 1 0 1 2 0.0% 67.0% 33.0% 1
org.apache.shiro.mgt 15 4 11 6 20 73.0% 77.0% 50.0% 1
org.apache.shiro.realm 6 1 5 8 12 83.0% 60.000004% 43.0% 1
org.apache.shiro.realm.activedirectory 1 1 0 0 10 0.0% 100.0% 0.0% 1
org.apache.shiro.realm.jdbc 3 3 0 0 11 0.0% 100.0% 0.0% 1
org.apache.shiro.realm.jndi 1 1 0 0 5 0.0% 100.0% 0.0% 1
org.apache.shiro.realm.ldap 7 5 2 1 13 29.0% 93.0% 21.0% 1
org.apache.shiro.realm.text 3 3 0 1 13 0.0% 93.0% 7.0% 1
org.apache.shiro.session 9 7 2 5 4 22.0% 44.0% 33.0% 1
org.apache.shiro.session.mgt 20 9 11 3 13 55.0% 81.0% 36.0% 1
org.apache.shiro.session.mgt.eis 9 5 4 1 10 44.0% 91.0% 35.0% 1
org.apache.shiro.subject 9 4 5 14 11 56.0% 44.0% 0.0% 1
org.apache.shiro.subject.support 8 8 0 2 13 0.0% 87.0% 13.0% 1
org.apache.shiro.util 37 23 14 25 16 38.0% 39.0% 23.0% 1

Packages

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

org.apache.shiro

Afferent Couplings Efferent Couplings Abstractness Instability Distance
17 4 33.0% 19.0% 48.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.SecurityUtils
org.apache.shiro.ShiroException
org.apache.shiro.UnavailableSecurityManagerException
org.apache.shiro.aop
org.apache.shiro.authc
org.apache.shiro.authz
org.apache.shiro.authz.permission
org.apache.shiro.cache
org.apache.shiro.codec
org.apache.shiro.concurrent
org.apache.shiro.config
org.apache.shiro.crypto
org.apache.shiro.dao
org.apache.shiro.env
org.apache.shiro.io
org.apache.shiro.realm.text
org.apache.shiro.session
org.apache.shiro.subject
org.apache.shiro.subject.support
org.apache.shiro.util
java.lang
org.apache.shiro.mgt
org.apache.shiro.subject
org.apache.shiro.util

org.apache.shiro.aop

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 86.0% 83.0% 69.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.aop.AnnotationHandler
org.apache.shiro.aop.AnnotationMethodInterceptor
org.apache.shiro.aop.AnnotationResolver
org.apache.shiro.aop.MethodInterceptor
org.apache.shiro.aop.MethodInterceptorSupport
org.apache.shiro.aop.MethodInvocation
org.apache.shiro.aop.DefaultAnnotationResolver
org.apache.shiro.authz.aop
java.lang
java.lang.annotation
java.lang.reflect
org.apache.shiro
org.apache.shiro.subject

org.apache.shiro.authc

Afferent Couplings Efferent Couplings Abstractness Instability Distance
10 8 46.0% 44.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.authc.AbstractAuthenticator
org.apache.shiro.authc.Account
org.apache.shiro.authc.AuthenticationInfo
org.apache.shiro.authc.AuthenticationListener
org.apache.shiro.authc.AuthenticationToken
org.apache.shiro.authc.Authenticator
org.apache.shiro.authc.HostAuthenticationToken
org.apache.shiro.authc.LogoutAware
org.apache.shiro.authc.MergableAuthenticationInfo
org.apache.shiro.authc.RememberMeAuthenticationToken
org.apache.shiro.authc.SaltedAuthenticationInfo
org.apache.shiro.authc.AccountException
org.apache.shiro.authc.AuthenticationException
org.apache.shiro.authc.ConcurrentAccessException
org.apache.shiro.authc.CredentialsException
org.apache.shiro.authc.DisabledAccountException
org.apache.shiro.authc.ExcessiveAttemptsException
org.apache.shiro.authc.ExpiredCredentialsException
org.apache.shiro.authc.IncorrectCredentialsException
org.apache.shiro.authc.LockedAccountException
org.apache.shiro.authc.SimpleAccount
org.apache.shiro.authc.SimpleAuthenticationInfo
org.apache.shiro.authc.UnknownAccountException
org.apache.shiro.authc.UsernamePasswordToken
org.apache.shiro.authc.credential
org.apache.shiro.authc.pam
org.apache.shiro.mgt
org.apache.shiro.realm
org.apache.shiro.realm.activedirectory
org.apache.shiro.realm.jdbc
org.apache.shiro.realm.ldap
org.apache.shiro.realm.text
org.apache.shiro.subject
org.apache.shiro.subject.support
java.io
java.lang
java.util
org.apache.shiro
org.apache.shiro.authz
org.apache.shiro.subject
org.apache.shiro.util
org.slf4j

org.apache.shiro.authc.credential

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 8 21.0% 80.0% 1.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.authc.credential.CredentialsMatcher
org.apache.shiro.authc.credential.HashingPasswordService
org.apache.shiro.authc.credential.PasswordService
org.apache.shiro.authc.credential.AllowAllCredentialsMatcher
org.apache.shiro.authc.credential.DefaultPasswordService
org.apache.shiro.authc.credential.HashedCredentialsMatcher
org.apache.shiro.authc.credential.Md2CredentialsMatcher
org.apache.shiro.authc.credential.Md5CredentialsMatcher
org.apache.shiro.authc.credential.PasswordMatcher
org.apache.shiro.authc.credential.Sha1CredentialsMatcher
org.apache.shiro.authc.credential.Sha256CredentialsMatcher
org.apache.shiro.authc.credential.Sha384CredentialsMatcher
org.apache.shiro.authc.credential.Sha512CredentialsMatcher
org.apache.shiro.authc.credential.SimpleCredentialsMatcher
org.apache.shiro.realm
org.apache.shiro.realm.ldap
java.lang
java.security
org.apache.shiro.authc
org.apache.shiro.codec
org.apache.shiro.crypto.hash
org.apache.shiro.crypto.hash.format
org.apache.shiro.util
org.slf4j

org.apache.shiro.authc.pam

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 29.0% 88.0% 16.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.authc.pam.AbstractAuthenticationStrategy
org.apache.shiro.authc.pam.AuthenticationStrategy
org.apache.shiro.authc.pam.AllSuccessfulStrategy
org.apache.shiro.authc.pam.AtLeastOneSuccessfulStrategy
org.apache.shiro.authc.pam.FirstSuccessfulStrategy
org.apache.shiro.authc.pam.ModularRealmAuthenticator
org.apache.shiro.authc.pam.UnsupportedTokenException
org.apache.shiro.mgt
java.lang
java.util
org.apache.shiro.authc
org.apache.shiro.realm
org.apache.shiro.subject
org.apache.shiro.util
org.slf4j

org.apache.shiro.authz

Afferent Couplings Efferent Couplings Abstractness Instability Distance
12 7 30.000002% 37.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.authz.AuthorizationInfo
org.apache.shiro.authz.Authorizer
org.apache.shiro.authz.Permission
org.apache.shiro.authz.AuthorizationException
org.apache.shiro.authz.HostUnauthorizedException
org.apache.shiro.authz.ModularRealmAuthorizer
org.apache.shiro.authz.SimpleAuthorizationInfo
org.apache.shiro.authz.SimpleRole
org.apache.shiro.authz.UnauthenticatedException
org.apache.shiro.authz.UnauthorizedException
org.apache.shiro.authc
org.apache.shiro.authz.aop
org.apache.shiro.authz.permission
org.apache.shiro.mgt
org.apache.shiro.realm
org.apache.shiro.realm.activedirectory
org.apache.shiro.realm.jdbc
org.apache.shiro.realm.ldap
org.apache.shiro.realm.text
org.apache.shiro.session.mgt
org.apache.shiro.subject
org.apache.shiro.subject.support
java.io
java.lang
java.util
org.apache.shiro
org.apache.shiro.authz.permission
org.apache.shiro.realm
org.apache.shiro.subject

org.apache.shiro.authz.annotation

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 83.0% 67.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.authz.annotation.RequiresAuthentication
org.apache.shiro.authz.annotation.RequiresGuest
org.apache.shiro.authz.annotation.RequiresPermissions
org.apache.shiro.authz.annotation.RequiresRoles
org.apache.shiro.authz.annotation.RequiresUser
org.apache.shiro.authz.annotation.Logical
org.apache.shiro.authz.aop
java.lang
java.lang.annotation

org.apache.shiro.authz.aop

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 29.0% 100.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.authz.aop.AnnotationsAuthorizingMethodInterceptor
org.apache.shiro.authz.aop.AuthorizingAnnotationHandler
org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor
org.apache.shiro.authz.aop.AuthorizingMethodInterceptor
org.apache.shiro.authz.aop.AuthenticatedAnnotationHandler
org.apache.shiro.authz.aop.AuthenticatedAnnotationMethodInterceptor
org.apache.shiro.authz.aop.GuestAnnotationHandler
org.apache.shiro.authz.aop.GuestAnnotationMethodInterceptor
org.apache.shiro.authz.aop.PermissionAnnotationHandler
org.apache.shiro.authz.aop.PermissionAnnotationMethodInterceptor
org.apache.shiro.authz.aop.RoleAnnotationHandler
org.apache.shiro.authz.aop.RoleAnnotationMethodInterceptor
org.apache.shiro.authz.aop.UserAnnotationHandler
org.apache.shiro.authz.aop.UserAnnotationMethodInterceptor
None java.lang
java.lang.annotation
java.util
org.apache.shiro.aop
org.apache.shiro.authz
org.apache.shiro.authz.annotation
org.apache.shiro.subject

org.apache.shiro.authz.permission

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 6 44.0% 67.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.authz.permission.PermissionResolver
org.apache.shiro.authz.permission.PermissionResolverAware
org.apache.shiro.authz.permission.RolePermissionResolver
org.apache.shiro.authz.permission.RolePermissionResolverAware
org.apache.shiro.authz.permission.AllPermission
org.apache.shiro.authz.permission.DomainPermission
org.apache.shiro.authz.permission.InvalidPermissionStringException
org.apache.shiro.authz.permission.WildcardPermission
org.apache.shiro.authz.permission.WildcardPermissionResolver
org.apache.shiro.authz
org.apache.shiro.realm
org.apache.shiro.util
java.io
java.lang
java.util
org.apache.shiro
org.apache.shiro.authz
org.apache.shiro.util

org.apache.shiro.cache

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 5 57.0% 56.0% 13.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.cache.AbstractCacheManager
org.apache.shiro.cache.Cache
org.apache.shiro.cache.CacheManager
org.apache.shiro.cache.CacheManagerAware
org.apache.shiro.cache.CacheException
org.apache.shiro.cache.MapCache
org.apache.shiro.cache.MemoryConstrainedCacheManager
org.apache.shiro.mgt
org.apache.shiro.realm
org.apache.shiro.session.mgt
org.apache.shiro.session.mgt.eis
java.lang
java.util
java.util.concurrent
org.apache.shiro
org.apache.shiro.util

org.apache.shiro.codec

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 4 20.0% 44.0% 36.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.codec.CodecSupport
org.apache.shiro.codec.Base64
org.apache.shiro.codec.CodecException
org.apache.shiro.codec.H64
org.apache.shiro.codec.Hex
org.apache.shiro.authc.credential
org.apache.shiro.config
org.apache.shiro.crypto.hash
org.apache.shiro.crypto.hash.format
org.apache.shiro.util
java.io
java.lang
org.apache.shiro
org.apache.shiro.util

org.apache.shiro.concurrent

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.shiro.concurrent.SubjectAwareExecutor
org.apache.shiro.concurrent.SubjectAwareExecutorService
org.apache.shiro.concurrent.SubjectAwareScheduledExecutorService
None java.lang
java.util
java.util.concurrent
org.apache.shiro
org.apache.shiro.subject

org.apache.shiro.config

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 16 20.0% 89.0% 9.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.config.IniFactorySupport
org.apache.shiro.config.ReflectionBuilder$Statement
org.apache.shiro.config.ResourceConfigurable
org.apache.shiro.config.ConfigurationException
org.apache.shiro.config.Ini
org.apache.shiro.config.Ini$1
org.apache.shiro.config.Ini$Section
org.apache.shiro.config.IniSecurityManagerFactory
org.apache.shiro.config.ReflectionBuilder
org.apache.shiro.config.ReflectionBuilder$1
org.apache.shiro.config.ReflectionBuilder$AssignmentStatement
org.apache.shiro.config.ReflectionBuilder$BeanConfiguration
org.apache.shiro.config.ReflectionBuilder$BeanConfigurationProcessor
org.apache.shiro.config.ReflectionBuilder$InstantiationStatement
org.apache.shiro.config.UnresolveableReferenceException
org.apache.shiro.realm.jdbc
org.apache.shiro.realm.text
java.beans
java.io
java.lang
java.util
org.apache.commons.beanutils
org.apache.shiro
org.apache.shiro.codec
org.apache.shiro.config.event
org.apache.shiro.event
org.apache.shiro.event.support
org.apache.shiro.io
org.apache.shiro.mgt
org.apache.shiro.realm
org.apache.shiro.realm.text
org.apache.shiro.util
org.slf4j

org.apache.shiro.config.event

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 38.0% 80.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.config.event.BeanEvent
org.apache.shiro.config.event.BeanListener
org.apache.shiro.config.event.BeanListenerSupport
org.apache.shiro.config.event.ConfiguredBeanEvent
org.apache.shiro.config.event.DestroyedBeanEvent
org.apache.shiro.config.event.InitializedBeanEvent
org.apache.shiro.config.event.InstantiatedBeanEvent
org.apache.shiro.config.event.LoggingBeanEventListener
org.apache.shiro.config
java.lang
java.util
org.apache.shiro.event
org.slf4j

org.apache.shiro.crypto

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 9 33.0% 82.0% 15.000001%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.crypto.AbstractSymmetricCipherService
org.apache.shiro.crypto.CipherService
org.apache.shiro.crypto.JcaCipherService
org.apache.shiro.crypto.RandomNumberGenerator
org.apache.shiro.crypto.AesCipherService
org.apache.shiro.crypto.BlowfishCipherService
org.apache.shiro.crypto.CryptoException
org.apache.shiro.crypto.DefaultBlockCipherService
org.apache.shiro.crypto.OperationMode
org.apache.shiro.crypto.PaddingScheme
org.apache.shiro.crypto.SecureRandomNumberGenerator
org.apache.shiro.crypto.UnknownAlgorithmException
org.apache.shiro.crypto.hash
org.apache.shiro.mgt
java.io
java.lang
java.security
java.security.spec
javax.crypto
javax.crypto.spec
org.apache.shiro
org.apache.shiro.util
org.slf4j

org.apache.shiro.crypto.hash

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 7 33.0% 78.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.crypto.hash.AbstractHash
org.apache.shiro.crypto.hash.ConfigurableHashService
org.apache.shiro.crypto.hash.Hash
org.apache.shiro.crypto.hash.HashRequest
org.apache.shiro.crypto.hash.HashService
org.apache.shiro.crypto.hash.DefaultHashService
org.apache.shiro.crypto.hash.HashRequest$Builder
org.apache.shiro.crypto.hash.Md2Hash
org.apache.shiro.crypto.hash.Md5Hash
org.apache.shiro.crypto.hash.Sha1Hash
org.apache.shiro.crypto.hash.Sha256Hash
org.apache.shiro.crypto.hash.Sha384Hash
org.apache.shiro.crypto.hash.Sha512Hash
org.apache.shiro.crypto.hash.SimpleHash
org.apache.shiro.crypto.hash.SimpleHashRequest
org.apache.shiro.authc.credential
org.apache.shiro.crypto.hash.format
java.io
java.lang
java.security
java.util
org.apache.shiro.codec
org.apache.shiro.crypto
org.apache.shiro.util

org.apache.shiro.crypto.hash.format

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 44.0% 83.0% 28.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.crypto.hash.format.HashFormat
org.apache.shiro.crypto.hash.format.HashFormatFactory
org.apache.shiro.crypto.hash.format.ModularCryptFormat
org.apache.shiro.crypto.hash.format.ParsableHashFormat
org.apache.shiro.crypto.hash.format.Base64Format
org.apache.shiro.crypto.hash.format.DefaultHashFormatFactory
org.apache.shiro.crypto.hash.format.HexFormat
org.apache.shiro.crypto.hash.format.ProvidedHashFormat
org.apache.shiro.crypto.hash.format.Shiro1CryptFormat
org.apache.shiro.authc.credential
java.lang
java.util
org.apache.shiro.codec
org.apache.shiro.crypto.hash
org.apache.shiro.util

org.apache.shiro.dao

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 50.0% 67.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.dao.DataAccessException
org.apache.shiro.dao.InvalidResourceUsageException
org.apache.shiro.ldap
java.lang
org.apache.shiro

org.apache.shiro.env

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 40.0% 100.0% 40.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.env.Environment
org.apache.shiro.env.NamedObjectEnvironment
org.apache.shiro.env.DefaultEnvironment
org.apache.shiro.env.EnvironmentException
org.apache.shiro.env.RequiredTypeException
None java.lang
java.util
java.util.concurrent
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.util

org.apache.shiro.event

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 3 100.0% 38.0% 38.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.event.Event
org.apache.shiro.event.EventBus
org.apache.shiro.event.EventBusAware
org.apache.shiro.event.Subscribe
None org.apache.shiro.config
org.apache.shiro.config.event
org.apache.shiro.event.support
org.apache.shiro.mgt
org.apache.shiro.session.mgt
java.lang
java.lang.annotation
java.util

org.apache.shiro.event.support

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 7 33.0% 78.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.event.support.EventListener
org.apache.shiro.event.support.EventListenerResolver
org.apache.shiro.event.support.TypedEventListener
org.apache.shiro.event.support.AnnotationEventListenerResolver
org.apache.shiro.event.support.DefaultEventBus
org.apache.shiro.event.support.DefaultEventBus$Subscription
org.apache.shiro.event.support.EventClassComparator
org.apache.shiro.event.support.EventListenerComparator
org.apache.shiro.event.support.SingleArgumentMethodEventListener
org.apache.shiro.config
org.apache.shiro.mgt
java.lang
java.lang.reflect
java.util
java.util.concurrent.locks
org.apache.shiro.event
org.apache.shiro.util
org.slf4j

org.apache.shiro.functor

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 1 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.functor.Translator
None None java.lang

org.apache.shiro.io

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 7 17.0% 70.0% 13.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.io.Serializer
org.apache.shiro.io.ClassResolvingObjectInputStream
org.apache.shiro.io.DefaultSerializer
org.apache.shiro.io.ResourceUtils
org.apache.shiro.io.SerializationException
org.apache.shiro.io.XmlSerializer
org.apache.shiro.config
org.apache.shiro.mgt
org.apache.shiro.realm.text
java.beans
java.io
java.lang
java.net
org.apache.shiro
org.apache.shiro.util
org.slf4j

org.apache.shiro.jndi

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 12.0% 83.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.jndi.JndiCallback
org.apache.shiro.jndi.JndiLocator
org.apache.shiro.jndi.JndiObjectFactory
org.apache.shiro.jndi.JndiTemplate
org.apache.shiro.jndi.JndiTemplate$1
org.apache.shiro.jndi.JndiTemplate$2
org.apache.shiro.jndi.JndiTemplate$3
org.apache.shiro.jndi.JndiTemplate$4
org.apache.shiro.realm.jndi
java.lang
java.util
javax.naming
org.apache.shiro.util
org.slf4j

org.apache.shiro.ldap

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 org.apache.shiro.ldap.UnsupportedAuthenticationMechanismException
org.apache.shiro.realm.ldap
java.lang
org.apache.shiro.dao

org.apache.shiro.mgt

Afferent Couplings Efferent Couplings Abstractness Instability Distance
6 20 73.0% 77.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.mgt.AbstractRememberMeManager
org.apache.shiro.mgt.AuthenticatingSecurityManager
org.apache.shiro.mgt.AuthorizingSecurityManager
org.apache.shiro.mgt.CachingSecurityManager
org.apache.shiro.mgt.RealmSecurityManager
org.apache.shiro.mgt.RememberMeManager
org.apache.shiro.mgt.SecurityManager
org.apache.shiro.mgt.SessionStorageEvaluator
org.apache.shiro.mgt.SessionsSecurityManager
org.apache.shiro.mgt.SubjectDAO
org.apache.shiro.mgt.SubjectFactory
org.apache.shiro.mgt.DefaultSecurityManager
org.apache.shiro.mgt.DefaultSessionStorageEvaluator
org.apache.shiro.mgt.DefaultSubjectDAO
org.apache.shiro.mgt.DefaultSubjectFactory
org.apache.shiro
org.apache.shiro.config
org.apache.shiro.env
org.apache.shiro.subject
org.apache.shiro.subject.support
org.apache.shiro.util
java.io
java.lang
java.lang.reflect
java.security
java.util
org.apache.shiro.authc
org.apache.shiro.authc.pam
org.apache.shiro.authz
org.apache.shiro.cache
org.apache.shiro.crypto
org.apache.shiro.event
org.apache.shiro.event.support
org.apache.shiro.io
org.apache.shiro.realm
org.apache.shiro.session
org.apache.shiro.session.mgt
org.apache.shiro.subject
org.apache.shiro.subject.support
org.apache.shiro.util
org.slf4j

org.apache.shiro.realm

Afferent Couplings Efferent Couplings Abstractness Instability Distance
8 12 83.0% 60.000004% 43.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.realm.AuthenticatingRealm
org.apache.shiro.realm.AuthorizingRealm
org.apache.shiro.realm.CachingRealm
org.apache.shiro.realm.Realm
org.apache.shiro.realm.RealmFactory
org.apache.shiro.realm.SimpleAccountRealm
org.apache.shiro.authc.pam
org.apache.shiro.authz
org.apache.shiro.config
org.apache.shiro.mgt
org.apache.shiro.realm.jdbc
org.apache.shiro.realm.jndi
org.apache.shiro.realm.ldap
org.apache.shiro.realm.text
java.lang
java.util
java.util.concurrent.atomic
java.util.concurrent.locks
org.apache.shiro.authc
org.apache.shiro.authc.credential
org.apache.shiro.authz
org.apache.shiro.authz.permission
org.apache.shiro.cache
org.apache.shiro.subject
org.apache.shiro.util
org.slf4j

org.apache.shiro.realm.activedirectory

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 10 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.shiro.realm.activedirectory.ActiveDirectoryRealm
None java.lang
java.util
javax.naming
javax.naming.directory
javax.naming.ldap
org.apache.shiro.authc
org.apache.shiro.authz
org.apache.shiro.realm.ldap
org.apache.shiro.subject
org.slf4j

org.apache.shiro.realm.jdbc

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 11 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.shiro.realm.jdbc.JdbcRealm
org.apache.shiro.realm.jdbc.JdbcRealm$1
org.apache.shiro.realm.jdbc.JdbcRealm$SaltStyle
None java.lang
java.sql
java.util
javax.sql
org.apache.shiro.authc
org.apache.shiro.authz
org.apache.shiro.config
org.apache.shiro.realm
org.apache.shiro.subject
org.apache.shiro.util
org.slf4j

org.apache.shiro.realm.jndi

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.shiro.realm.jndi.JndiRealmFactory
None java.lang
java.util
org.apache.shiro.jndi
org.apache.shiro.realm
org.apache.shiro.util

org.apache.shiro.realm.ldap

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 13 29.0% 93.0% 21.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.realm.ldap.AbstractLdapRealm
org.apache.shiro.realm.ldap.LdapContextFactory
org.apache.shiro.realm.ldap.DefaultLdapContextFactory
org.apache.shiro.realm.ldap.DefaultLdapRealm
org.apache.shiro.realm.ldap.JndiLdapContextFactory
org.apache.shiro.realm.ldap.JndiLdapRealm
org.apache.shiro.realm.ldap.LdapUtils
org.apache.shiro.realm.activedirectory
java.lang
java.util
javax.naming
javax.naming.directory
javax.naming.ldap
org.apache.shiro.authc
org.apache.shiro.authc.credential
org.apache.shiro.authz
org.apache.shiro.ldap
org.apache.shiro.realm
org.apache.shiro.subject
org.apache.shiro.util
org.slf4j

org.apache.shiro.realm.text

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 13 0.0% 93.0% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.shiro.realm.text.IniRealm
org.apache.shiro.realm.text.PropertiesRealm
org.apache.shiro.realm.text.TextConfigurationRealm
org.apache.shiro.config
java.io
java.lang
java.text
java.util
java.util.concurrent
org.apache.shiro
org.apache.shiro.authc
org.apache.shiro.authz
org.apache.shiro.config
org.apache.shiro.io
org.apache.shiro.realm
org.apache.shiro.util
org.slf4j

org.apache.shiro.session

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 4 22.0% 44.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.session.Session
org.apache.shiro.session.SessionListener
org.apache.shiro.session.ExpiredSessionException
org.apache.shiro.session.InvalidSessionException
org.apache.shiro.session.ProxiedSession
org.apache.shiro.session.SessionException
org.apache.shiro.session.SessionListenerAdapter
org.apache.shiro.session.StoppedSessionException
org.apache.shiro.session.UnknownSessionException
org.apache.shiro.mgt
org.apache.shiro.session.mgt
org.apache.shiro.session.mgt.eis
org.apache.shiro.subject
org.apache.shiro.subject.support
java.io
java.lang
java.util
org.apache.shiro

org.apache.shiro.session.mgt

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 13 55.0% 81.0% 36.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.session.mgt.AbstractNativeSessionManager
org.apache.shiro.session.mgt.AbstractSessionManager
org.apache.shiro.session.mgt.AbstractValidatingSessionManager
org.apache.shiro.session.mgt.NativeSessionManager
org.apache.shiro.session.mgt.SessionContext
org.apache.shiro.session.mgt.SessionFactory
org.apache.shiro.session.mgt.SessionKey
org.apache.shiro.session.mgt.SessionManager
org.apache.shiro.session.mgt.SessionValidationScheduler
org.apache.shiro.session.mgt.ValidatingSession
org.apache.shiro.session.mgt.ValidatingSessionManager
org.apache.shiro.session.mgt.DefaultSessionContext
org.apache.shiro.session.mgt.DefaultSessionKey
org.apache.shiro.session.mgt.DefaultSessionManager
org.apache.shiro.session.mgt.DelegatingSession
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler$1
org.apache.shiro.session.mgt.ImmutableProxiedSession
org.apache.shiro.session.mgt.SimpleSession
org.apache.shiro.session.mgt.SimpleSessionFactory
org.apache.shiro.mgt
org.apache.shiro.session.mgt.eis
org.apache.shiro.subject.support
java.io
java.lang
java.text
java.util
java.util.concurrent
java.util.concurrent.atomic
org.apache.shiro.authz
org.apache.shiro.cache
org.apache.shiro.event
org.apache.shiro.session
org.apache.shiro.session.mgt.eis
org.apache.shiro.util
org.slf4j

org.apache.shiro.session.mgt.eis

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 10 44.0% 91.0% 35.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.session.mgt.eis.AbstractSessionDAO
org.apache.shiro.session.mgt.eis.CachingSessionDAO
org.apache.shiro.session.mgt.eis.SessionDAO
org.apache.shiro.session.mgt.eis.SessionIdGenerator
org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO
org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO$1
org.apache.shiro.session.mgt.eis.JavaUuidSessionIdGenerator
org.apache.shiro.session.mgt.eis.MemorySessionDAO
org.apache.shiro.session.mgt.eis.RandomSessionIdGenerator
org.apache.shiro.session.mgt
java.io
java.lang
java.security
java.util
java.util.concurrent
org.apache.shiro.cache
org.apache.shiro.session
org.apache.shiro.session.mgt
org.apache.shiro.util
org.slf4j

org.apache.shiro.subject

Afferent Couplings Efferent Couplings Abstractness Instability Distance
14 11 56.0% 44.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.subject.MutablePrincipalCollection
org.apache.shiro.subject.PrincipalCollection
org.apache.shiro.subject.PrincipalMap
org.apache.shiro.subject.Subject
org.apache.shiro.subject.SubjectContext
org.apache.shiro.subject.ExecutionException
org.apache.shiro.subject.SimplePrincipalCollection
org.apache.shiro.subject.SimplePrincipalMap
org.apache.shiro.subject.Subject$Builder
org.apache.shiro
org.apache.shiro.aop
org.apache.shiro.authc
org.apache.shiro.authc.pam
org.apache.shiro.authz
org.apache.shiro.authz.aop
org.apache.shiro.concurrent
org.apache.shiro.mgt
org.apache.shiro.realm
org.apache.shiro.realm.activedirectory
org.apache.shiro.realm.jdbc
org.apache.shiro.realm.ldap
org.apache.shiro.subject.support
org.apache.shiro.util
java.io
java.lang
java.util
java.util.concurrent
org.apache.shiro
org.apache.shiro.authc
org.apache.shiro.authz
org.apache.shiro.mgt
org.apache.shiro.session
org.apache.shiro.subject.support
org.apache.shiro.util

org.apache.shiro.subject.support

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.apache.shiro.subject.support.DefaultSubjectContext
org.apache.shiro.subject.support.DelegatingSubject
org.apache.shiro.subject.support.DelegatingSubject$1
org.apache.shiro.subject.support.DelegatingSubject$StoppingAwareProxiedSession
org.apache.shiro.subject.support.DisabledSessionException
org.apache.shiro.subject.support.SubjectCallable
org.apache.shiro.subject.support.SubjectRunnable
org.apache.shiro.subject.support.SubjectThreadState
org.apache.shiro.mgt
org.apache.shiro.subject
java.io
java.lang
java.util
java.util.concurrent
org.apache.shiro
org.apache.shiro.authc
org.apache.shiro.authz
org.apache.shiro.mgt
org.apache.shiro.session
org.apache.shiro.session.mgt
org.apache.shiro.subject
org.apache.shiro.util
org.slf4j

org.apache.shiro.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
25 16 38.0% 39.0% 23.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shiro.util.AbstractFactory
org.apache.shiro.util.Assert
org.apache.shiro.util.ByteSource
org.apache.shiro.util.ClassUtils$ClassLoaderAccessor
org.apache.shiro.util.ClassUtils$ExceptionIgnoringAccessor
org.apache.shiro.util.Destroyable
org.apache.shiro.util.Factory
org.apache.shiro.util.Initializable
org.apache.shiro.util.JavaEnvironment
org.apache.shiro.util.LifecycleUtils
org.apache.shiro.util.Nameable
org.apache.shiro.util.PatternMatcher
org.apache.shiro.util.ThreadContext
org.apache.shiro.util.ThreadState
org.apache.shiro.util.AntPathMatcher
org.apache.shiro.util.ByteSource$Util
org.apache.shiro.util.ClassUtils
org.apache.shiro.util.ClassUtils$1
org.apache.shiro.util.ClassUtils$2
org.apache.shiro.util.ClassUtils$3
org.apache.shiro.util.CollectionUtils
org.apache.shiro.util.InstantiationException
org.apache.shiro.util.JdbcUtils
org.apache.shiro.util.MapContext
org.apache.shiro.util.PermissionUtils
org.apache.shiro.util.RegExPatternMatcher
org.apache.shiro.util.SimpleByteSource
org.apache.shiro.util.SimpleByteSource$1
org.apache.shiro.util.SimpleByteSource$BytesHelper
org.apache.shiro.util.SoftHashMap
org.apache.shiro.util.SoftHashMap$1
org.apache.shiro.util.SoftHashMap$SoftValue
org.apache.shiro.util.StringUtils
org.apache.shiro.util.ThreadContext$1
org.apache.shiro.util.ThreadContext$InheritableThreadLocalMap
org.apache.shiro.util.UnavailableConstructorException
org.apache.shiro.util.UnknownClassException
org.apache.shiro
org.apache.shiro.authc
org.apache.shiro.authc.credential
org.apache.shiro.authc.pam
org.apache.shiro.authz.permission
org.apache.shiro.cache
org.apache.shiro.codec
org.apache.shiro.config
org.apache.shiro.crypto
org.apache.shiro.crypto.hash
org.apache.shiro.crypto.hash.format
org.apache.shiro.env
org.apache.shiro.event.support
org.apache.shiro.io
org.apache.shiro.jndi
org.apache.shiro.mgt
org.apache.shiro.realm
org.apache.shiro.realm.jdbc
org.apache.shiro.realm.jndi
org.apache.shiro.realm.ldap
org.apache.shiro.realm.text
org.apache.shiro.session.mgt
org.apache.shiro.session.mgt.eis
org.apache.shiro.subject
org.apache.shiro.subject.support
java.io
java.lang
java.lang.ref
java.lang.reflect
java.sql
java.text
java.util
java.util.concurrent
java.util.concurrent.locks
java.util.regex
org.apache.shiro
org.apache.shiro.authz.permission
org.apache.shiro.codec
org.apache.shiro.mgt
org.apache.shiro.subject
org.slf4j

Cycles

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

Package Package Dependencies
org.apache.shiro org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.aop org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.authc org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro.authc.credential org.apache.shiro.authc
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro.authc.pam org.apache.shiro.authc
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro.authz org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.authz.aop org.apache.shiro.authz
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.authz.permission org.apache.shiro.authz
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.cache org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.codec org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.concurrent org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.config org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.crypto org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.crypto.hash org.apache.shiro.codec
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.crypto.hash.format org.apache.shiro.crypto.hash
org.apache.shiro.codec
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.dao org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.env org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.event.support org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.io org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.jndi org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.ldap org.apache.shiro.dao
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.realm org.apache.shiro.cache
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.realm.activedirectory org.apache.shiro.authz
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.realm.jdbc org.apache.shiro.authz
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.realm.jndi org.apache.shiro.realm
org.apache.shiro.cache
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.realm.ldap org.apache.shiro.authz
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.realm.text org.apache.shiro.config
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.session org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.session.mgt org.apache.shiro.authz
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.session.mgt.eis org.apache.shiro.session.mgt
org.apache.shiro.authz
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.subject org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro.subject.support org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util
org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.util org.apache.shiro.subject
org.apache.shiro
org.apache.shiro.mgt
org.apache.shiro.io
org.apache.shiro.util

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.