| Package | TC | CC | AC | Ca | Ce | A | I | D | V |
|---|---|---|---|---|---|---|---|---|---|
| org.apache.commons.scxml | 18 | 11 | 7 | 10 | 12 | 39.0% | 55.0% | 7.0% | 1 |
| org.apache.commons.scxml.env | 13 | 11 | 2 | 6 | 11 | 15.000001% | 65.0% | 20.0% | 1 |
| org.apache.commons.scxml.env.faces | 1 | 1 | 0 | 0 | 5 | 0.0% | 100.0% | 0.0% | 1 |
| org.apache.commons.scxml.env.jexl | 2 | 2 | 0 | 2 | 8 | 0.0% | 80.0% | 20.0% | 1 |
| org.apache.commons.scxml.env.jsp | 5 | 5 | 0 | 1 | 11 | 0.0% | 92.0% | 8.0% | 1 |
| org.apache.commons.scxml.env.servlet | 1 | 1 | 0 | 0 | 3 | 0.0% | 100.0% | 0.0% | 1 |
| org.apache.commons.scxml.invoke | 4 | 3 | 1 | 2 | 10 | 25.0% | 83.0% | 8.0% | 1 |
| org.apache.commons.scxml.io | 24 | 24 | 0 | 3 | 16 | 0.0% | 84.0% | 16.0% | 1 |
| org.apache.commons.scxml.model | 33 | 27 | 6 | 6 | 7 | 18.0% | 54.000004% | 28.0% | 1 |
| org.apache.commons.scxml.semantics | 3 | 3 | 0 | 1 | 7 | 0.0% | 88.0% | 12.0% | 1 |
| org.apache.commons.scxml.test | 3 | 3 | 0 | 0 | 11 | 0.0% | 100.0% | 0.0% | 1 |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 10 | 12 | 39.0% | 55.0% | 7.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.apache.commons.scxml.Context org.apache.commons.scxml.ErrorReporter org.apache.commons.scxml.Evaluator org.apache.commons.scxml.EventDispatcher org.apache.commons.scxml.PathResolver org.apache.commons.scxml.SCXMLListener org.apache.commons.scxml.SCXMLSemantics |
org.apache.commons.scxml.Builtin org.apache.commons.scxml.Builtin$1 org.apache.commons.scxml.Builtin$DataPrefixResolver org.apache.commons.scxml.NotificationRegistry org.apache.commons.scxml.SCInstance org.apache.commons.scxml.SCXMLExecutor org.apache.commons.scxml.SCXMLExpressionException org.apache.commons.scxml.SCXMLHelper org.apache.commons.scxml.Status org.apache.commons.scxml.Step org.apache.commons.scxml.TriggerEvent |
org.apache.commons.scxml.env org.apache.commons.scxml.env.faces org.apache.commons.scxml.env.jexl org.apache.commons.scxml.env.jsp org.apache.commons.scxml.env.servlet org.apache.commons.scxml.invoke org.apache.commons.scxml.io org.apache.commons.scxml.model org.apache.commons.scxml.semantics org.apache.commons.scxml.test |
java.io java.lang java.util javax.xml.transform org.apache.commons.logging org.apache.commons.scxml.invoke org.apache.commons.scxml.model org.apache.commons.scxml.semantics org.apache.xml.utils org.apache.xpath org.apache.xpath.objects org.w3c.dom |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 6 | 11 | 15.000001% | 65.0% | 20.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.apache.commons.scxml.env.AbstractSCXMLListener org.apache.commons.scxml.env.AbstractStateMachine |
org.apache.commons.scxml.env.AbstractStateMachine$EntryListener org.apache.commons.scxml.env.LogUtils org.apache.commons.scxml.env.SimpleContext org.apache.commons.scxml.env.SimpleDispatcher org.apache.commons.scxml.env.SimpleErrorHandler org.apache.commons.scxml.env.SimpleErrorReporter org.apache.commons.scxml.env.SimpleSCXMLListener org.apache.commons.scxml.env.SimpleScheduler org.apache.commons.scxml.env.SimpleScheduler$DelayedEventTask org.apache.commons.scxml.env.Tracer org.apache.commons.scxml.env.URLResolver |
org.apache.commons.scxml.env.faces org.apache.commons.scxml.env.jexl org.apache.commons.scxml.env.jsp org.apache.commons.scxml.invoke org.apache.commons.scxml.io org.apache.commons.scxml.test |
java.io java.lang java.lang.reflect java.net java.util org.apache.commons.logging org.apache.commons.scxml org.apache.commons.scxml.env.jexl org.apache.commons.scxml.io org.apache.commons.scxml.model org.xml.sax |
| 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.commons.scxml.env.faces.SessionContext |
None | java.lang java.util javax.faces.context org.apache.commons.scxml org.apache.commons.scxml.env |
| 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.scxml.env.jexl.JexlContext org.apache.commons.scxml.env.jexl.JexlEvaluator |
org.apache.commons.scxml.env org.apache.commons.scxml.test |
java.io java.lang java.util java.util.regex org.apache.commons.jexl org.apache.commons.scxml org.apache.commons.scxml.env org.w3c.dom |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 11 | 0.0% | 92.0% | 8.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.apache.commons.scxml.env.jsp.ELContext org.apache.commons.scxml.env.jsp.ELEvaluator org.apache.commons.scxml.env.jsp.ELEvaluator$BuiltinFunctionMapper org.apache.commons.scxml.env.jsp.ELEvaluator$ContextWrapper org.apache.commons.scxml.env.jsp.RootContext |
org.apache.commons.scxml.test |
java.io java.lang java.lang.reflect java.util.regex javax.servlet.jsp javax.servlet.jsp.el org.apache.commons.el org.apache.commons.logging org.apache.commons.scxml org.apache.commons.scxml.env org.w3c.dom |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 0 | 3 | 0.0% | 100.0% | 0.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.apache.commons.scxml.env.servlet.ServletContextResolver |
None | java.lang javax.servlet org.apache.commons.scxml |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 2 | 10 | 25.0% | 83.0% | 8.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.apache.commons.scxml.invoke.Invoker |
org.apache.commons.scxml.invoke.AsyncTrigger org.apache.commons.scxml.invoke.InvokerException org.apache.commons.scxml.invoke.SimpleSCXMLInvoker |
org.apache.commons.scxml org.apache.commons.scxml.semantics |
java.io java.lang java.net java.util org.apache.commons.logging org.apache.commons.scxml org.apache.commons.scxml.env org.apache.commons.scxml.io org.apache.commons.scxml.model org.xml.sax |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 3 | 16 | 0.0% | 84.0% | 16.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.apache.commons.scxml.io.ModelUpdater org.apache.commons.scxml.io.SCXMLDigester org.apache.commons.scxml.io.SCXMLDigester$1 org.apache.commons.scxml.io.SCXMLDigester$2 org.apache.commons.scxml.io.SCXMLDigester$DigestSrcAttributeRule org.apache.commons.scxml.io.SCXMLDigester$ParseDataRule org.apache.commons.scxml.io.SCXMLDigester$ParseExternalContentRule org.apache.commons.scxml.io.SCXMLDigester$SetCurrentNamespacesRule org.apache.commons.scxml.io.SCXMLDigester$SetExecutableParentRule org.apache.commons.scxml.io.SCXMLDigester$SetPathResolverRule org.apache.commons.scxml.io.SCXMLDigester$UpdateFinalizeRule org.apache.commons.scxml.io.SCXMLDigester$UpdateModelRule org.apache.commons.scxml.io.SCXMLParser org.apache.commons.scxml.io.SCXMLParser$1 org.apache.commons.scxml.io.SCXMLParser$DigestSrcAttributeRule org.apache.commons.scxml.io.SCXMLParser$IgnoredElementRule org.apache.commons.scxml.io.SCXMLParser$ParseDataRule org.apache.commons.scxml.io.SCXMLParser$ParseExternalContentRule org.apache.commons.scxml.io.SCXMLParser$SetCurrentNamespacesRule org.apache.commons.scxml.io.SCXMLParser$SetExecutableParentRule org.apache.commons.scxml.io.SCXMLParser$SetPathResolverRule org.apache.commons.scxml.io.SCXMLParser$UpdateFinalizeRule org.apache.commons.scxml.io.SCXMLParser$UpdateModelRule org.apache.commons.scxml.io.SCXMLSerializer |
org.apache.commons.scxml.env org.apache.commons.scxml.invoke org.apache.commons.scxml.test |
java.io java.lang java.net java.text java.util javax.xml.parsers javax.xml.transform javax.xml.transform.dom javax.xml.transform.stream org.apache.commons.digester org.apache.commons.logging org.apache.commons.scxml org.apache.commons.scxml.env org.apache.commons.scxml.model org.w3c.dom org.xml.sax |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 6 | 7 | 18.0% | 54.000004% | 28.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| org.apache.commons.scxml.model.Action org.apache.commons.scxml.model.Executable org.apache.commons.scxml.model.ExternalContent org.apache.commons.scxml.model.NamespacePrefixesHolder org.apache.commons.scxml.model.PathResolverHolder org.apache.commons.scxml.model.TransitionTarget |
org.apache.commons.scxml.model.Assign org.apache.commons.scxml.model.Cancel org.apache.commons.scxml.model.CustomAction org.apache.commons.scxml.model.Data org.apache.commons.scxml.model.Datamodel org.apache.commons.scxml.model.Else org.apache.commons.scxml.model.ElseIf org.apache.commons.scxml.model.Event org.apache.commons.scxml.model.Exit org.apache.commons.scxml.model.Final org.apache.commons.scxml.model.Finalize org.apache.commons.scxml.model.History org.apache.commons.scxml.model.If org.apache.commons.scxml.model.Initial org.apache.commons.scxml.model.Invoke org.apache.commons.scxml.model.Log org.apache.commons.scxml.model.ModelException org.apache.commons.scxml.model.OnEntry org.apache.commons.scxml.model.OnExit org.apache.commons.scxml.model.Parallel org.apache.commons.scxml.model.Param org.apache.commons.scxml.model.Path org.apache.commons.scxml.model.SCXML org.apache.commons.scxml.model.Send org.apache.commons.scxml.model.State org.apache.commons.scxml.model.Transition org.apache.commons.scxml.model.Var |
org.apache.commons.scxml org.apache.commons.scxml.env org.apache.commons.scxml.invoke org.apache.commons.scxml.io org.apache.commons.scxml.semantics org.apache.commons.scxml.test |
java.io java.lang java.util javax.xml.parsers org.apache.commons.logging org.apache.commons.scxml org.w3c.dom |
| Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
|---|---|---|---|---|
| 1 | 7 | 0.0% | 88.0% | 12.0% |
| Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
|---|---|---|---|
| None | org.apache.commons.scxml.semantics.ErrorConstants org.apache.commons.scxml.semantics.SCXMLSemanticsImpl org.apache.commons.scxml.semantics.TransitionTargetComparator |
org.apache.commons.scxml |
java.io java.lang java.util org.apache.commons.logging org.apache.commons.scxml org.apache.commons.scxml.invoke org.apache.commons.scxml.model |
| 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.commons.scxml.test.StandaloneElExpressions org.apache.commons.scxml.test.StandaloneJexlExpressions org.apache.commons.scxml.test.StandaloneUtils |
None | java.io java.lang java.net java.util org.apache.commons.scxml org.apache.commons.scxml.env org.apache.commons.scxml.env.jexl org.apache.commons.scxml.env.jsp org.apache.commons.scxml.io org.apache.commons.scxml.model org.xml.sax |
| Package | Package Dependencies |
|---|---|
| org.apache.commons.scxml | org.apache.commons.scxml.model org.apache.commons.scxml |
| org.apache.commons.scxml.env | org.apache.commons.scxml.model org.apache.commons.scxml org.apache.commons.scxml.model |
| org.apache.commons.scxml.env.faces | org.apache.commons.scxml.env org.apache.commons.scxml.model org.apache.commons.scxml org.apache.commons.scxml.model |
| org.apache.commons.scxml.env.jexl | org.apache.commons.scxml.env org.apache.commons.scxml.model org.apache.commons.scxml org.apache.commons.scxml.model |
| org.apache.commons.scxml.env.jsp | org.apache.commons.scxml.env org.apache.commons.scxml.model org.apache.commons.scxml org.apache.commons.scxml.model |
| org.apache.commons.scxml.env.servlet | org.apache.commons.scxml org.apache.commons.scxml.model org.apache.commons.scxml |
| org.apache.commons.scxml.invoke | org.apache.commons.scxml.model org.apache.commons.scxml org.apache.commons.scxml.model |
| org.apache.commons.scxml.io | org.apache.commons.scxml.model org.apache.commons.scxml org.apache.commons.scxml.model |
| org.apache.commons.scxml.model | org.apache.commons.scxml org.apache.commons.scxml.model |
| org.apache.commons.scxml.semantics | org.apache.commons.scxml.model org.apache.commons.scxml org.apache.commons.scxml.model |
| org.apache.commons.scxml.test | org.apache.commons.scxml.env.jsp org.apache.commons.scxml.env org.apache.commons.scxml.model org.apache.commons.scxml org.apache.commons.scxml.model |
| 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. |