Fork me on GitHub

JavaNCSS Metric Results

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

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

Packages

Packages

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

Packages sorted by NCSS.

Package Classes Methods NCSS Javadocs Javadoc lines Single lines comment Multi lines comment
org.miloss.fgsms.services.interfaces.policyconfiguration 206 1379 5171 1172 11780 1 242
org.miloss.fgsms.services.interfaces.dataaccessservice 158 1410 4793 1131 10560 1 75
org.miloss.fgsms.services.interfaces.automatedreportingservice 41 260 1008 211 2064 1 54
org.oasis_open.docs.wsdm.muws2_2 55 165 863 220 2250 1 1064
org.oasis_open.docs.wsdm.mows_2 33 167 768 189 1852 1 694
org.miloss.fgsms.services.interfaces.datacollector 22 229 759 173 1520 1 36
org.miloss.fgsms.services.interfaces.common 19 182 629 194 1782 0 35
org.oasis_open.docs.wsrf.rp_2 35 106 552 145 1489 0 684
org.miloss.fgsms.services.interfaces.status 26 127 516 147 1341 1 33
org.miloss.fgsms.services.interfaces.reportingservice 18 74 332 82 746 1 76
org.oasis_open.docs.wsdm.muws1_2 5 61 252 66 766 0 114
org.miloss.fgsms.services.interfaces.agentcallbackservice 7 33 135 32 255 0 152
org.oasis_open.docs.wsrf.bf_2 2 17 103 32 367 0 57
org.miloss.fgsms.plugins.sla 4 24 87 27 443 0 118
org.miloss.fgsms.services.interfaces.faults 4 11 51 11 99 0 54
org.oasis_open.docs.wsrf.r_2 3 5 30 8 66 0 76
us.gov.ic.ism.v2 2 4 18 2 18 0 36
org.miloss.fgsms.plugins.agents 1 11 15 1 4 0 19
org.miloss.fgsms.plugins.federation 1 2 11 3 31 0 19
org.miloss.fgsms.plugins 1 5 10 6 41 0 19
org.miloss.fgsms.plugins.reporting 1 1 10 2 27 0 19
org.miloss.fgsms.plugins.status 1 0 3 1 4 0 19
Classes total Methods total NCSS total Javadocs Javadoc lines Single lines comment Multi lines comment
645 4273 16116 3855 37505 8 3695

Objects

Objects

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

TOP 30 classes containing the most NCSS.

Object NCSS Methods Classes Javadocs
org.miloss.fgsms.services.interfaces.policyconfiguration.ObjectFactory 654 283 0 284
org.miloss.fgsms.services.interfaces.dataaccessservice.ObjectFactory 370 174 0 175
org.oasis_open.docs.wsdm.muws2_2.ObjectFactory 185 80 0 81
org.miloss.fgsms.services.interfaces.dataaccessservice.GetMessageTransactionLogDetailsResponseMsg 169 69 0 44
org.miloss.fgsms.services.interfaces.datacollector.AddDataRequestMsg 148 60 0 38
org.miloss.fgsms.services.interfaces.dataaccessservice.QuickStatData 142 60 0 41
org.oasis_open.docs.wsrf.rp_2.ObjectFactory 132 56 0 57
org.oasis_open.docs.wsdm.muws1_2.ManagementEventType 124 38 0 39
org.miloss.fgsms.services.interfaces.policyconfiguration.ServicePolicy 121 51 0 35
org.oasis_open.docs.wsdm.mows_2.ObjectFactory 114 48 0 49
org.miloss.fgsms.services.interfaces.dataaccessservice.TransactionLog 109 45 0 30
org.miloss.fgsms.services.interfaces.dataaccessservice.BrokerDetails 100 42 0 29
org.miloss.fgsms.services.interfaces.dataaccessservice.QueueORtopicDetails 100 42 0 29
org.miloss.fgsms.services.interfaces.datacollector.BrokerData 86 36 0 25
org.miloss.fgsms.services.interfaces.dataaccessservice.GetHistoricalBrokerDetailsResponseMsg 79 33 0 23
org.miloss.fgsms.services.interfaces.automatedreportingservice.ReportDefinition 76 30 0 19
org.miloss.fgsms.services.interfaces.automatedreportingservice.ObjectFactory 75 36 0 37
org.miloss.fgsms.services.interfaces.dataaccessservice.GetMessageLogsRequestMsg 72 30 0 21
org.miloss.fgsms.services.interfaces.policyconfiguration.MachineInformation 71 27 0 16
org.oasis_open.docs.wsdm.mows_2.OperationMetricType 69 26 0 27
org.miloss.fgsms.services.interfaces.dataaccessservice.GetRecentMessageLogsRequestMsg 65 27 0 19
org.oasis_open.docs.wsrf.bf_2.BaseFaultType 65 11 3 25
org.miloss.fgsms.services.interfaces.datacollector.AddStatisticalDataRequestMsg 60 24 0 16
org.miloss.fgsms.services.interfaces.dataaccessservice.GetPerformanceAverageStatsResponseMsg 58 24 0 17
org.miloss.fgsms.services.interfaces.policyconfiguration.TransactionalWebServicePolicy 58 24 0 17
org.miloss.fgsms.services.interfaces.common.DriveInformation 57 22 0 23
org.miloss.fgsms.services.interfaces.common.MachinePerformanceData 57 20 0 21
org.miloss.fgsms.services.interfaces.dataaccessservice.ServiceType 53 21 0 14
org.miloss.fgsms.services.interfaces.datacollector.AddMachineAndProcessDataRequestMsg 53 21 0 14
org.miloss.fgsms.services.interfaces.common.ProcessPerformanceData 52 20 0 21

TOP 30 classes containing the most methods.

Object NCSS Methods Classes Javadocs
org.miloss.fgsms.services.interfaces.policyconfiguration.ObjectFactory 654 283 0 284
org.miloss.fgsms.services.interfaces.dataaccessservice.ObjectFactory 370 174 0 175
org.oasis_open.docs.wsdm.muws2_2.ObjectFactory 185 80 0 81
org.miloss.fgsms.services.interfaces.dataaccessservice.GetMessageTransactionLogDetailsResponseMsg 169 69 0 44
org.miloss.fgsms.services.interfaces.dataaccessservice.QuickStatData 142 60 0 41
org.miloss.fgsms.services.interfaces.datacollector.AddDataRequestMsg 148 60 0 38
org.oasis_open.docs.wsrf.rp_2.ObjectFactory 132 56 0 57
org.miloss.fgsms.services.interfaces.policyconfiguration.ServicePolicy 121 51 0 35
org.oasis_open.docs.wsdm.mows_2.ObjectFactory 114 48 0 49
org.miloss.fgsms.services.interfaces.dataaccessservice.TransactionLog 109 45 0 30
org.miloss.fgsms.services.interfaces.dataaccessservice.BrokerDetails 100 42 0 29
org.miloss.fgsms.services.interfaces.dataaccessservice.QueueORtopicDetails 100 42 0 29
org.miloss.fgsms.services.interfaces.policyconfiguration.PCS 40 39 0 40
org.oasis_open.docs.wsdm.muws1_2.ManagementEventType 124 38 0 39
org.miloss.fgsms.services.interfaces.automatedreportingservice.ObjectFactory 75 36 0 37
org.miloss.fgsms.services.interfaces.datacollector.BrokerData 86 36 0 25
org.miloss.fgsms.services.interfaces.dataaccessservice.DataAccessService 35 34 0 35
org.miloss.fgsms.services.interfaces.dataaccessservice.GetHistoricalBrokerDetailsResponseMsg 79 33 0 23
org.miloss.fgsms.services.interfaces.automatedreportingservice.ReportDefinition 76 30 0 19
org.miloss.fgsms.services.interfaces.dataaccessservice.GetMessageLogsRequestMsg 72 30 0 21
org.miloss.fgsms.services.interfaces.dataaccessservice.GetRecentMessageLogsRequestMsg 65 27 0 19
org.miloss.fgsms.services.interfaces.policyconfiguration.MachineInformation 71 27 0 16
org.oasis_open.docs.wsdm.mows_2.OperationMetricType 69 26 0 27
org.miloss.fgsms.services.interfaces.dataaccessservice.GetPerformanceAverageStatsResponseMsg 58 24 0 17
org.miloss.fgsms.services.interfaces.datacollector.AddStatisticalDataRequestMsg 60 24 0 16
org.miloss.fgsms.services.interfaces.policyconfiguration.TransactionalWebServicePolicy 58 24 0 17
org.miloss.fgsms.services.interfaces.status.ObjectFactory 52 24 0 25
org.miloss.fgsms.services.interfaces.common.DriveInformation 57 22 0 23
org.miloss.fgsms.services.interfaces.dataaccessservice.AuditLog 51 21 0 15
org.miloss.fgsms.services.interfaces.dataaccessservice.ServiceType 53 21 0 14

Averages.

NCSS average Program NCSS Classes average Methods average Javadocs average
17.78 16,116.00 0.01 6.62 5.98

Methods

Methods

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

TOP 30 Methods containing the most NCSS.

Methods NCSS CCN Javadocs
org.miloss.fgsms.plugins.sla.AlertContainer.AlertContainer(String,String,String,String,long,String,boolean,boolean,SLAAction,String,ServicePolicy,SituationCategoryType) 13 1 1
org.miloss.fgsms.services.interfaces.automatedreportingservice.GetMyScheduledReportsResponseMsg.findJobWithIdOf(String) 7 4 0
org.miloss.fgsms.services.interfaces.automatedreportingservice.Daynames.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.automatedreportingservice.Monthnames.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.common.AgentActionStatus.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.common.NameValuePair.NameValuePair(String,String,boolean,boolean) 5 1 0
org.miloss.fgsms.services.interfaces.common.PolicyType.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.dataaccessservice.AlertType.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.datacollector.DataResponseStatus.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.faults.ServiceUnavailableFaultCodes.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.policyconfiguration.JoiningType.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.policyconfiguration.MessageChoice.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.policyconfiguration.RightEnum.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.policyconfiguration.RunAtLocation.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.reportingservice.ExportRecordsEnum.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.reportingservice.ReportType.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.status.SetResponseStatus.fromValue(String) 5 5 0
org.oasis_open.docs.wsdm.mows_2.MessageSizeUnitType.fromValue(String) 5 5 0
org.oasis_open.docs.wsdm.mows_2.TcpIpDirectionType.fromValue(String) 5 5 0
us.gov.ic.ism.v2.ClassificationType.fromValue(String) 5 5 0
org.miloss.fgsms.services.interfaces.automatedreportingservice.AddOrUpdateScheduledReportRequestMsg.getJobs() 4 2 1
org.miloss.fgsms.services.interfaces.automatedreportingservice.AddOrUpdateScheduledReportResponseMsg.getJobs() 4 2 1
org.miloss.fgsms.services.interfaces.automatedreportingservice.ExistingReportDefitions.getReports() 4 2 1
org.miloss.fgsms.services.interfaces.automatedreportingservice.ExportCSVDataRequestMsg.getURLs() 4 2 1
org.miloss.fgsms.services.interfaces.automatedreportingservice.ExportDataRequestMsg.getURLs() 4 2 1
org.miloss.fgsms.services.interfaces.automatedreportingservice.GetMyScheduledReportsResponseMsg.getCompletedJobs() 4 2 1
org.miloss.fgsms.services.interfaces.automatedreportingservice.MonthlySchedule.getMonthNameIs() 4 2 1
org.miloss.fgsms.services.interfaces.automatedreportingservice.MonthlySchedule.getDayOfTheMonthIs() 4 2 1
org.miloss.fgsms.services.interfaces.automatedreportingservice.ReportDefinition.getNotifications() 4 2 1
org.miloss.fgsms.services.interfaces.automatedreportingservice.ReportDefinition.getAdditionalReaders() 4 2 1

Averages.

Program NCSS NCSS average CCN average Javadocs average
16,116.00 2.07 1.08 0.75

Explanations

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 declaration package java.lang;
Import declaration import java.awt.*;
Class declaration
  • public class Foo {
  • public class Foo extends Bla {
Interface declaration public interface Able ; {
Field declaration
  • int a;
  • int a, b, c = 5, d = 6;
Method declaration
  • public void cry();
  • public void gib() throws DeadException {
Constructor declaration public Foo() {
Constructor invocation
  • this();
  • super();
Statement declaration
  • i = 0;
  • if (ok)
  • if (exit) {
  • if (3 == 4);
  • if (4 == 4) { ;
  • } else {
Label declaration fine :

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