http://xradar.sourceforge.net


Statics Report - System: 1.0, Version: 0, Date: TodayDesigned for use with Checkstyle, CKJM, FindBugs, JavaNCSS, JDepend, Macaron, PMD, PMD-CPD, Java2HTML and Ant.

[Statics] code

[scorecard] [analysis] [explanations]
{overview} {architecture} {design} {code} {test} {source control} {system specific}

Code Metrics

For each histogram column, you can roll over the diagrams to get details on the contents on which subsystem the column relates to. Click on it to go to a detailed view. On the bottom of the screen the data is presented in tabular form.
Code MetricsTotal PackagesTotal ClassesBC ClassesSource StatementsCyclomatic ComplexityCmplx. per Stmnt.Cmplx. per Meth.Violations/ Source Stmts.Style errors/ Source Stmts.Duplicated Tokens / Source Stmts.
Total1211054105443812187890.433.570.010.140.86
Ant1553231080.332.3500.130
CPD1777718005480.33.0800.140
DCD3222211534750.412.9900.210.25
renderers118189092140.242.2300.10
language definition module5460360334775158550.463.770.010.151.07
stat12261180.31.1200.310
util10888829338450.293.1200.120.03
Not Classified00000 0 0 NaNNaNNaN

Duplications

The matrix below presents in what way and to what degree code duplications are found in the modules in the analysed system. Each dot represents a duplication between two classes. The size of the dots represents the number of duplications the two classes are involved in between each other. Dots on the diagonal represent duplications within a class. Notice that each side of the diagonal is equal. This is no coincidence since they are each others mirror image.

By pointing your mouse over the dots you will see the details of that duplication. Click to go to the class.


Pareto Principle

Theory
The Pareto Principle states that a minority of input produces the majority of results. This principle is often called the 80%:20% rule. The principle originates from economics, but is often just as applicable to other types of systems such as software. In the following graphs Aggregated Source Statements and Aggregated Cyclomatic Complexity per package is plotted.
Needed Actions
According to the theroy the aggregated results will in most cases go though the 80:20 / 70:30 box. That is not necessarily assert a bad design. Still, it proves the point that most of the logics and development effort in the system is focused on a limited number of packages. You may in such cases consider to split up the main packages or pull together the smallest packages to get the curve to go below the 80:20 / 70:30 box. That will probably make the package structure more balanced. Note that if all the packages are of equal size, the curve will be linear (y=x).

See the explanations for Source Statements and Cyclomatic Complexity for more on their definitions.

#PackageSource Statements
1net.sourceforge.pmd.lang.java.ast12726
2net.sourceforge.pmd.lang.jsp.ast4895
3net.sourceforge.pmd1858
4net.sourceforge.pmd.cpd1800
5net.sourceforge.pmd.lang.java.rule.design1661
6net.sourceforge.pmd.lang.cpp.ast1578
7net.sourceforge.pmd.lang.ecmascript.ast1123
8net.sourceforge.pmd.util.designer1081
9net.sourceforge.pmd.util924
10net.sourceforge.pmd.lang.java.symboltable915
11net.sourceforge.pmd.renderers909
12net.sourceforge.pmd.lang.rule.properties901
13net.sourceforge.pmd.lang.ast872
14net.sourceforge.pmd.lang.java.rule.strings777
15net.sourceforge.pmd.lang.rule705
16net.sourceforge.pmd.dcd.graph645
17net.sourceforge.pmd.lang.java.rule.basic600
18net.sourceforge.pmd.lang.dfa558
19net.sourceforge.pmd.lang.java.rule547
20net.sourceforge.pmd.lang.java.rule.codesize515

#PackageCyclomatic Complexity
1net.sourceforge.pmd.lang.java.ast6616
2net.sourceforge.pmd.lang.jsp.ast2102
3net.sourceforge.pmd.lang.cpp.ast892
4net.sourceforge.pmd726
5net.sourceforge.pmd.lang.java.rule.design662
6net.sourceforge.pmd.cpd548
7net.sourceforge.pmd.lang.rule.properties440
8net.sourceforge.pmd.lang.ecmascript.ast437
9net.sourceforge.pmd.lang.java.symboltable373
10net.sourceforge.pmd.lang.ast368
11net.sourceforge.pmd.util342
12net.sourceforge.pmd.lang.java.rule.strings314
13net.sourceforge.pmd.lang.rule302
14net.sourceforge.pmd.lang.java.rule.basic283
15net.sourceforge.pmd.util.designer259
16net.sourceforge.pmd.dcd.graph258
17net.sourceforge.pmd.lang.java.rule230
18net.sourceforge.pmd.renderers214
19net.sourceforge.pmd.lang.dfa172
20net.sourceforge.pmd.lang.java.typeresolution171