Package | TC | CC | AC | Ca | Ce | A | I | D | V |
---|---|---|---|---|---|---|---|---|---|
org.apache.commons.workflow | 17 | 5 | 12 | 6 | 3 | 71.0% | 33.0% | 4.0% | 1 |
org.apache.commons.workflow.base | 10 | 7 | 3 | 4 | 7 | 30.000002% | 64.0% | 6.0% | 1 |
org.apache.commons.workflow.core | 29 | 29 | 0 | 2 | 6 | 0.0% | 75.0% | 25.0% | 1 |
org.apache.commons.workflow.demo | 1 | 1 | 0 | 0 | 7 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.workflow.io | 6 | 6 | 0 | 2 | 8 | 0.0% | 80.0% | 20.0% | 1 |
org.apache.commons.workflow.util | 4 | 4 | 0 | 3 | 3 | 0.0% | 50.0% | 50.0% | 1 |
org.apache.commons.workflow.web | 12 | 12 | 0 | 0 | 12 | 0.0% | 100.0% | 0.0% | 1 |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
6 | 3 | 71.0% | 33.0% | 4.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.workflow.Activity org.apache.commons.workflow.Block org.apache.commons.workflow.Context org.apache.commons.workflow.ContextListener org.apache.commons.workflow.Descriptor org.apache.commons.workflow.Descriptors org.apache.commons.workflow.Iterator org.apache.commons.workflow.Owner org.apache.commons.workflow.Registry org.apache.commons.workflow.Scope org.apache.commons.workflow.ScopeListener org.apache.commons.workflow.Step |
org.apache.commons.workflow.BlockState org.apache.commons.workflow.ContextEvent org.apache.commons.workflow.ScopeEvent org.apache.commons.workflow.StepException org.apache.commons.workflow.WorkflowException |
org.apache.commons.workflow.base org.apache.commons.workflow.core org.apache.commons.workflow.demo org.apache.commons.workflow.io org.apache.commons.workflow.util org.apache.commons.workflow.web |
java.lang java.util org.apache.commons.jxpath |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
4 | 7 | 30.000002% | 64.0% | 6.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.workflow.base.BaseBlock org.apache.commons.workflow.base.BaseStep org.apache.commons.workflow.base.DescriptorStep |
org.apache.commons.workflow.base.BaseActivity org.apache.commons.workflow.base.BaseContext org.apache.commons.workflow.base.BaseContextBean org.apache.commons.workflow.base.BaseDescriptor org.apache.commons.workflow.base.BaseRegistry org.apache.commons.workflow.base.BaseRuleSet org.apache.commons.workflow.base.BaseScope |
org.apache.commons.workflow.core org.apache.commons.workflow.demo org.apache.commons.workflow.io org.apache.commons.workflow.web |
java.lang java.util org.apache.commons.collections org.apache.commons.digester org.apache.commons.jxpath org.apache.commons.workflow org.apache.commons.workflow.util |
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.apache.commons.workflow.core.AndStep org.apache.commons.workflow.core.BreakStep org.apache.commons.workflow.core.CallStep org.apache.commons.workflow.core.ConstructStep org.apache.commons.workflow.core.ContinueStep org.apache.commons.workflow.core.CoreRuleSet org.apache.commons.workflow.core.DuplicateStep org.apache.commons.workflow.core.ExitStep org.apache.commons.workflow.core.GetStep org.apache.commons.workflow.core.GotoStep org.apache.commons.workflow.core.IfAnyStep org.apache.commons.workflow.core.IfNotAnyStep org.apache.commons.workflow.core.IfNotStep org.apache.commons.workflow.core.IfStep org.apache.commons.workflow.core.InvokeStep org.apache.commons.workflow.core.LoadStep org.apache.commons.workflow.core.NotAndStep org.apache.commons.workflow.core.NotOrStep org.apache.commons.workflow.core.OrStep org.apache.commons.workflow.core.PopStep org.apache.commons.workflow.core.PutStep org.apache.commons.workflow.core.RemoveStep org.apache.commons.workflow.core.StringStep org.apache.commons.workflow.core.SuspendStep org.apache.commons.workflow.core.SwapStep org.apache.commons.workflow.core.WhileAnyStep org.apache.commons.workflow.core.WhileNotAnyStep org.apache.commons.workflow.core.WhileNotStep org.apache.commons.workflow.core.WhileStep |
org.apache.commons.workflow.demo org.apache.commons.workflow.web |
java.lang java.lang.reflect java.util org.apache.commons.digester org.apache.commons.workflow org.apache.commons.workflow.base |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 7 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.workflow.demo.Main |
None | java.io java.lang org.apache.commons.digester org.apache.commons.workflow org.apache.commons.workflow.base org.apache.commons.workflow.core org.apache.commons.workflow.io |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 8 | 0.0% | 80.0% | 20.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.workflow.io.DisplayStep org.apache.commons.workflow.io.GetStep org.apache.commons.workflow.io.IoRuleSet org.apache.commons.workflow.io.PeekStep org.apache.commons.workflow.io.ReadStep org.apache.commons.workflow.io.WriteStep |
org.apache.commons.workflow.demo org.apache.commons.workflow.web |
java.io java.lang java.net java.util org.apache.commons.digester org.apache.commons.workflow org.apache.commons.workflow.base org.apache.commons.workflow.util |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 3 | 0.0% | 50.0% | 50.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.workflow.util.ContextSupport org.apache.commons.workflow.util.MapEntry org.apache.commons.workflow.util.ScopeSupport org.apache.commons.workflow.util.WorkflowUtils |
org.apache.commons.workflow.base org.apache.commons.workflow.io org.apache.commons.workflow.web |
java.lang java.util org.apache.commons.workflow |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 12 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.workflow.web.ActivityServlet org.apache.commons.workflow.web.DemoBean org.apache.commons.workflow.web.ForwardStep org.apache.commons.workflow.web.GotoStep org.apache.commons.workflow.web.HttpSessionScope org.apache.commons.workflow.web.IncludeResponse23 org.apache.commons.workflow.web.IncludeStep23 org.apache.commons.workflow.web.PopulateStep org.apache.commons.workflow.web.ServletContextScope org.apache.commons.workflow.web.ServletRequestScope org.apache.commons.workflow.web.WebContext org.apache.commons.workflow.web.WebRuleSet |
None | java.io java.lang java.util javax.servlet javax.servlet.http org.apache.commons.beanutils org.apache.commons.digester org.apache.commons.workflow org.apache.commons.workflow.base org.apache.commons.workflow.core org.apache.commons.workflow.io org.apache.commons.workflow.util |
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. |