JavaNCSS Metric Results

[ package ] [ object ] [ method ] [ explanation ]

The following document contains the results of a JavaNCSS metric analysis.
JavaNCSS web site.

Packages

[ package ] [ object ] [ method ] [ explanation ]

Packages sorted by NCSS.

PackageClassesMethodsNCSSJavadocsJavadoc linesSingle lines commentMulti lines comment
org.fosstrak.ale.server111481473150883226278
org.fosstrak.ale.server.readers5714707242051127
org.fosstrak.ale.server.readers.rp2303522916245101
org.fosstrak.ale.server.readers.llrp325315151082817
org.fosstrak.ale.server.readers.hal21723115792940
org.fosstrak.ale.wsdl.alelr.epcglobal11414016040
org.fosstrak.ale.server.readers.gen52091201743093
org.fosstrak.ale.server.readers.test110831521
org.fosstrak.ale.wsdl.ale.epcglobal1138016037
Classes totalMethods totalNCSS totalJavadocsJavadoc linesSingle lines commentMulti lines comment
3134832353041843411734

Objects

[ package ] [ object ] [ method ] [ explanation ]

TOP 30 classes containing the most NCSS.

ObjectNCSSMethodsClassesJavadocs
org.fosstrak.ale.server.Report23814015
org.fosstrak.ale.server.ReportsGenerator21520021
org.fosstrak.ale.server.EventCycle19719020
org.fosstrak.ale.server.readers.LogicalReaderManager19621021
org.fosstrak.ale.server.readers.rp.RPAdaptor16424017
org.fosstrak.ale.server.Tag16335031
org.fosstrak.ale.server.Subscriber15114015
org.fosstrak.ale.server.readers.llrp.LLRPAdaptor1441203
org.fosstrak.ale.server.readers.hal.HALAdaptor1431305
org.fosstrak.ale.server.readers.rp.InputGenerator1436112
org.fosstrak.ale.wsdl.alelr.epcglobal.ALELRServicePortTypeImpl1351401
org.fosstrak.ale.server.PatternDataField11111012
org.fosstrak.ale.server.Pattern11014015
org.fosstrak.ale.server.ALE10118018
org.fosstrak.ale.server.readers.llrp.LLRPManager9910110
org.fosstrak.ale.server.readers.test.TestAdaptor701011
org.fosstrak.ale.wsdl.ale.epcglobal.ALEServicePortTypeImpl691301
org.fosstrak.ale.server.readers.LogicalReader6515016
org.fosstrak.ale.server.readers.hal.HALManager644110
org.fosstrak.ale.server.readers.CompositeReader63907
org.fosstrak.ale.server.readers.IdentifyThread6112013
org.fosstrak.ale.server.PatternType34303
org.fosstrak.ale.server.readers.BaseReader2114015
org.fosstrak.ale.server.readers.gen.LRSpec21606
org.fosstrak.ale.server.readers.llrp.Callback13302
org.fosstrak.ale.server.readers.gen.LogicalReader11404
org.fosstrak.ale.server.readers.gen.LRProperty11404
org.fosstrak.ale.server.readers.gen.ObjectFactory10505
org.fosstrak.ale.server.readers.gen.LogicalReaders6101
org.fosstrak.ale.server.PatternUsage1000

TOP 30 classes containing the most methods.

ObjectNCSSMethodsClassesJavadocs
org.fosstrak.ale.server.Tag16335031
org.fosstrak.ale.server.readers.rp.RPAdaptor16424017
org.fosstrak.ale.server.readers.LogicalReaderManager19621021
org.fosstrak.ale.server.ReportsGenerator21520021
org.fosstrak.ale.server.EventCycle19719020
org.fosstrak.ale.server.ALE10118018
org.fosstrak.ale.server.readers.LogicalReader6515016
org.fosstrak.ale.server.Pattern11014015
org.fosstrak.ale.server.readers.BaseReader2114015
org.fosstrak.ale.server.Report23814015
org.fosstrak.ale.server.Subscriber15114015
org.fosstrak.ale.wsdl.alelr.epcglobal.ALELRServicePortTypeImpl1351401
org.fosstrak.ale.server.readers.hal.HALAdaptor1431305
org.fosstrak.ale.wsdl.ale.epcglobal.ALEServicePortTypeImpl691301
org.fosstrak.ale.server.readers.IdentifyThread6112013
org.fosstrak.ale.server.readers.llrp.LLRPAdaptor1441203
org.fosstrak.ale.server.PatternDataField11111012
org.fosstrak.ale.server.readers.llrp.LLRPManager9910110
org.fosstrak.ale.server.readers.test.TestAdaptor701011
org.fosstrak.ale.server.readers.CompositeReader63907
org.fosstrak.ale.server.readers.gen.LRSpec21606
org.fosstrak.ale.server.readers.rp.InputGenerator1436112
org.fosstrak.ale.server.readers.gen.ObjectFactory10505
org.fosstrak.ale.server.readers.gen.LogicalReader11404
org.fosstrak.ale.server.readers.gen.LRProperty11404
org.fosstrak.ale.server.readers.hal.HALManager644110
org.fosstrak.ale.server.PatternType34303
org.fosstrak.ale.server.readers.llrp.Callback13302
org.fosstrak.ale.server.readers.gen.LogicalReaders6101
org.fosstrak.ale.server.PatternUsage1000

Averages.

NCSS averageProgram NCSSClasses averageMethods averageJavadocs average
91.323,235.000.1311.239.81

Methods

[ package ] [ object ] [ method ] [ explanation ]

TOP 30 Methods containing the most NCSS.

MethodsNCSSCCNJavadocs
org.fosstrak.ale.server.Report.addTagToReportGroup(Tag)83301
org.fosstrak.ale.server.ReportsGenerator.validateSpec(ECSpec)53491
org.fosstrak.ale.server.EventCycle.run()48121
org.fosstrak.ale.server.readers.llrp.LLRPAdaptor.initialize(String,LRSpec)46171
org.fosstrak.ale.server.Subscriber.Subscriber(String)46291
org.fosstrak.ale.server.readers.rp.InputGenerator.Initializer.initialize()4531
org.fosstrak.ale.server.readers.llrp.LLRPAdaptor.notify(byte[],String)44150
org.fosstrak.ale.server.PatternDataField.PatternDataField(String,PatternUsage)39241
org.fosstrak.ale.server.ReportsGenerator.run()38201
org.fosstrak.ale.server.readers.LogicalReaderManager.storeToFile(String)3781
org.fosstrak.ale.server.readers.rp.RPAdaptor.extractConnectionSettings()36111
org.fosstrak.ale.server.Report.getECReport()35161
org.fosstrak.ale.server.readers.hal.HALAdaptor.identify(String[])34150
org.fosstrak.ale.server.readers.hal.HALManager.define(String,String,String)33131
org.fosstrak.ale.server.PatternDataField.isDisjoint(PatternDataField)29291
org.fosstrak.ale.server.readers.llrp.LLRPManager.registerRepository(Properties)2971
org.fosstrak.ale.server.readers.rp.InputGenerator.poll()29111
org.fosstrak.ale.server.ALE.initialize(String)28101
org.fosstrak.ale.server.readers.LogicalReader.createReader(String,LRSpec)28131
org.fosstrak.ale.server.EventCycle.EventCycle(ReportsGenerator)2761
org.fosstrak.ale.server.readers.LogicalReaderManager.initializeFromFile(String)2661
org.fosstrak.ale.server.Tag.equalsTag(Tag)26291
org.fosstrak.ale.server.readers.llrp.LLRPManager.initialize()2391
org.fosstrak.ale.server.readers.rp.InputGenerator.remove()2371
org.fosstrak.ale.server.EventCycle.update(Observable,Object)22101
org.fosstrak.ale.server.readers.hal.HALAdaptor.initialize(String,LRSpec)2141
org.fosstrak.ale.server.readers.IdentifyThread.run()2171
org.fosstrak.ale.server.readers.hal.HALAdaptor.start()2080
org.fosstrak.ale.server.Subscriber.getPostRequest(ECReports)2011
org.fosstrak.ale.server.Pattern.Pattern(String,PatternUsage)1991

Averages.

Program NCSSNCSS averageCCN averageJavadocs average
3,235.007.293.300.78

Explanations

[ package ] [ object ] [ method ] [ explanation ]

Non Commenting Source Statements (NCSS)

Statements for JavaNCSS are not statements as specified in the Java Language Specification but include all kinds of declarations too. Roughly spoken, NCSS is approximately equivalent to counting ';' and '{' characters in Java source files.

Not counted are empty statements, empty blocks or semicolons after closing brackets. Of course, comments don't get counted too. Closing brackets also never get counted, the same applies to blocks in general.

Examples
Package declarationpackage java.lang;
Import declarationimport java.awt.*;
Class declaration
  • public class Foo {
  • public class Foo extends Bla {
Interface declarationpublic interface Able ; {
Field declaration
  • int a;
  • int a, b, c = 5, d = 6;
Method declaration
  • public void cry();
  • public void gib() throws DeadException {
Constructor declarationpublic Foo() {
Constructor invocation
  • this();
  • super();
Statement declaration
  • i = 0;
  • if (ok)
  • if (exit) {
  • if (3 == 4);
  • if (4 == 4) { ;
  • } else {
Label declarationfine :
In some cases consecutive semicolons are illegal according to the JLS but JavaNCSS still tolerates them (thought JavaNCSS is still more strict as 'javac'). Nevertheless they are never counted as two statements.Cyclomatic Complexity Number (CCN)CCN is also know as McCabe Metric. There exists a much hyped theory behind it based on graph theory, but it all comes down to simply counting 'if', 'for', 'while' statements etc. in a method. Whenever the control flow of a method splits, the "CCN counter" gets incremented by one.Each method has a minimum value of 1 per default. For each of the following Java keywords/statements this value gets incremented by one:
  • if
  • for
  • while
  • case
  • catch
Also if the control flow of a method returns abortively the CCNvalue will be incremented by one:
  • if
  • for
An ordinary return at the end of method will not be counted.Note that 'else', 'default', and 'finally' don't increment the CCN value any further. On the other hand, a simple method with a 'switch' statement and a huge block of 'case' statements can have a surprisingly high CCN value (still it has the same value when converting a 'switch' block to an equivalent sequence of 'if' statements).