JavaNCSS Metric Results

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

The following document contains the results of a JavaNCSS metric analysis, using JavaNCSS version 32.53.
JavaNCSS web site.

Packages

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

Packages sorted by NCSS.

PackageClassesMethodsNCSSJavadocsJavadoc linesSingle lines commentMulti lines comment
org.slasoi.businessManager.reporting.store1111463075278223141
org.slasoi.businessManager.reporting.schedule8335314018116854
org.slasoi.businessManager.reporting.aggregator.temporal17422675722614761
org.slasoi.businessManager.reporting.utils41421615705412
org.slasoi.businessManager.reporting.parser420189241055815
org.slasoi.businessManager.reporting.delivery729186351407118
org.slasoi.businessManager.reporting.report51617021974815
org.slasoi.businessManager.reporting.core31316716785511
org.slasoi.businessManager.reporting.communication311791246379
org.slasoi.businessManager.reporting.aggregator.functional554810413615
org.slasoi.businessManager.reporting.impl14375221131
org.slasoi.businessManager.reporting.service1310435031
org.slasoi.businessManager.reporting.aggregator1021503
Classes totalMethods totalNCSS totalJavadocsJavadoc linesSingle lines commentMulti lines comment
7030425323151324908416

Objects

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

TOP 30 classes containing the most NCSS.

ObjectNCSSMethodsClassesJavadocs
org.slasoi.businessManager.reporting.store.MonitoringResultMySQLEntityManager19421016
org.slasoi.businessManager.reporting.schedule.CreateReportJob128819
org.slasoi.businessManager.reporting.aggregator.temporal.TemporalAggregatorFactory108506
org.slasoi.businessManager.reporting.delivery.EmailReportDeliverer887110
org.slasoi.businessManager.reporting.store.MonitoringResultRAMEntityManager8324016
org.slasoi.businessManager.reporting.store.ReportMySQLEntityManager831106
org.slasoi.businessManager.reporting.schedule.TriggerFactory82203
org.slasoi.businessManager.reporting.utils.MonitoringEventGenerator76605
org.slasoi.businessManager.reporting.schedule.JobScheduler72607
org.slasoi.businessManager.reporting.core.FrameworkContext69627
org.slasoi.businessManager.reporting.store.ReportingPolicyMySQLEntityManager661006
org.slasoi.businessManager.reporting.parser.ReportingPolicyParser64405
org.slasoi.businessManager.reporting.store.MonitoringResult5312012
org.slasoi.businessManager.reporting.utils.XMLUtils52405
org.slasoi.businessManager.reporting.schedule.DeliverReportJob49213
org.slasoi.businessManager.reporting.parser.ReportingPolicyUtils42304
org.slasoi.businessManager.reporting.core.ReportingCoordinator38506
org.slasoi.businessManager.reporting.schedule.FetchMonitoringResultsJob36314
org.slasoi.businessManager.reporting.report.PDFReportMaker32304
org.slasoi.businessManager.reporting.utils.MonitoringEventUtils32304
org.slasoi.businessManager.reporting.parser.ReportingPolicy30708
org.slasoi.businessManager.reporting.store.ReportRAMEntityManager301405
org.slasoi.businessManager.reporting.communication.MonitoringResultEventSubscriber26304
org.slasoi.businessManager.reporting.delivery.Actor269010
org.slasoi.businessManager.reporting.impl.BSLAMReportingManagerServiceImpl25405
org.slasoi.businessManager.reporting.report.XMLReportMaker24102
org.slasoi.businessManager.reporting.core.FrameworkContextManager23203
org.slasoi.businessManager.reporting.report.ReportMaker23405
org.slasoi.businessManager.reporting.store.JobResultRAMEntityManager23304
org.slasoi.businessManager.reporting.report.Report22607

TOP 30 classes containing the most methods.

ObjectNCSSMethodsClassesJavadocs
org.slasoi.businessManager.reporting.store.MonitoringResultRAMEntityManager8324016
org.slasoi.businessManager.reporting.store.MonitoringResultMySQLEntityManager19421016
org.slasoi.businessManager.reporting.store.MonitoringResultEntityManager151402
org.slasoi.businessManager.reporting.store.ReportRAMEntityManager301405
org.slasoi.businessManager.reporting.store.MonitoringResult5312012
org.slasoi.businessManager.reporting.store.ReportMySQLEntityManager831106
org.slasoi.businessManager.reporting.store.ReportingPolicyMySQLEntityManager661006
org.slasoi.businessManager.reporting.delivery.Actor269010
org.slasoi.businessManager.reporting.schedule.CreateReportJob128819
org.slasoi.businessManager.reporting.delivery.EmailReportDeliverer887110
org.slasoi.businessManager.reporting.parser.ReportingPolicy30708
org.slasoi.businessManager.reporting.communication.MonitoringEventServiceStub18605
org.slasoi.businessManager.reporting.core.FrameworkContext69627
org.slasoi.businessManager.reporting.parser.ReportingTarget20607
org.slasoi.businessManager.reporting.report.Report22607
org.slasoi.businessManager.reporting.schedule.FunctionalAggregatorResult22607
org.slasoi.businessManager.reporting.schedule.JobResult20607
org.slasoi.businessManager.reporting.schedule.JobScheduler72607
org.slasoi.businessManager.reporting.utils.MonitoringEventGenerator76605
org.slasoi.businessManager.reporting.aggregator.temporal.TemporalAggregatorFactory108506
org.slasoi.businessManager.reporting.core.ReportingCoordinator38506
org.slasoi.businessManager.reporting.delivery.Envelope18506
org.slasoi.businessManager.reporting.aggregator.temporal.Monthly13405
org.slasoi.businessManager.reporting.aggregator.temporal.Weekly16405
org.slasoi.businessManager.reporting.impl.BSLAMReportingManagerServiceImpl25405
org.slasoi.businessManager.reporting.parser.ReportingPolicyParser64405
org.slasoi.businessManager.reporting.report.ReportMaker23405
org.slasoi.businessManager.reporting.utils.XMLUtils52405
org.slasoi.businessManager.reporting.aggregator.temporal.Daily9304
org.slasoi.businessManager.reporting.aggregator.temporal.EndsAfterOccurrences8304

Averages.

NCSS averageProgram NCSSClasses averageMethods averageJavadocs average
29.202,532.000.094.344.53

Methods

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

TOP 30 Methods containing the most NCSS.

MethodsNCSSCCNJavadocs
org.slasoi.businessManager.reporting.schedule.TriggerFactory.createTrigger(String,String,TemporalAggregator)72181
org.slasoi.businessManager.reporting.aggregator.temporal.TemporalAggregatorFactory.create(PeriodicFrequencyType)60101
org.slasoi.businessManager.reporting.schedule.DeliverReportJob.execute(JobExecutionContext)4171
org.slasoi.businessManager.reporting.delivery.EmailReportDeliverer.postMail(Envelope)3861
org.slasoi.businessManager.reporting.parser.ReportingPolicyParser.parseSLA(SLA,String)3371
org.slasoi.businessManager.reporting.schedule.CreateReportJob.execute(JobExecutionContext)3181
org.slasoi.businessManager.reporting.schedule.CreateReportJob.parseToPostSaleReport(JobResult)2851
org.slasoi.businessManager.reporting.parser.ReportingPolicyUtils.getPeriodicFrequencyType(PeriodicScheduleType)26171
org.slasoi.businessManager.reporting.report.PDFReportMaker.createReport(JasperReport,String)2631
org.slasoi.businessManager.reporting.schedule.FetchMonitoringResultsJob.execute(JobExecutionContext)2631
org.slasoi.businessManager.reporting.store.MonitoringResultMySQLEntityManager.select(String,String,String,Date,Date)2660
org.slasoi.businessManager.reporting.store.ReportMySQLEntityManager.selectBySlaId(String,String,Date,Date,String)2661
org.slasoi.businessManager.reporting.schedule.JobScheduler.addCreateReportJob(ReportingPolicy,String)2541
org.slasoi.businessManager.reporting.store.MonitoringResultMySQLEntityManager.select(String,String,Date,Date)2561
org.slasoi.businessManager.reporting.store.ReportingPolicyMySQLEntityManager.selectBySlaIdAndReportingPolicyId(String,String)2561
org.slasoi.businessManager.reporting.store.MonitoringResultMySQLEntityManager.select(String,String,String)2461
org.slasoi.businessManager.reporting.store.MonitoringResultMySQLEntityManager.select(String,Date,Date)2461
org.slasoi.businessManager.reporting.aggregator.temporal.TemporalAggregatorFactory.parseWeekday(WeekdaysType)2381
org.slasoi.businessManager.reporting.schedule.JobScheduler.addDeliverReportJob(ReportingPolicy)2341
org.slasoi.businessManager.reporting.store.MonitoringResultMySQLEntityManager.select(String,String)2361
org.slasoi.businessManager.reporting.report.XMLReportMaker.createReport(JasperReport,String)2231
org.slasoi.businessManager.reporting.store.MonitoringResultMySQLEntityManager.select(String)2261
org.slasoi.businessManager.reporting.store.ReportingPolicyMySQLEntityManager.insert(ReportingPolicy)2231
org.slasoi.businessManager.reporting.utils.MonitoringEventGenerator.saveMonitoringEvents(EventInstance,String)2151
org.slasoi.businessManager.reporting.utils.MonitoringEventGenerator.createEventInstance(Date)2041
org.slasoi.businessManager.reporting.store.MonitoringResultMySQLEntityManager.insert(MonitoringResult)1931
org.slasoi.businessManager.reporting.store.ReportMySQLEntityManager.insert(Report)1931
org.slasoi.businessManager.reporting.store.ReportMySQLEntityManager.countBySlaId(String,String,Date,Date)1841
org.slasoi.businessManager.reporting.impl.BSLAMReportingManagerServiceImpl.BSLAMReportingManagerServiceImpl()1681
org.slasoi.businessManager.reporting.utils.XMLUtils.saveToFile(Object,String)1631

Averages.

Program NCSSNCSS averageCCN averageJavadocs average
2,532.005.801.910.79

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).