{"id":4503,"date":"2018-01-08T10:54:24","date_gmt":"2018-01-08T10:54:24","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/?p=4503"},"modified":"2018-01-08T10:54:24","modified_gmt":"2018-01-08T10:54:24","slug":"compare-between-rsm-and-sonar","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/compare-between-rsm-and-sonar\/","title":{"rendered":"Compare between RSM and Sonar"},"content":{"rendered":"<table border=\"2\" cellspacing=\"0\" cellpadding=\"0\">\n<colgroup>\n<col width=\"211\" \/>\n<col width=\"316\" \/>\n<col width=\"264\" \/>\n<col span=\"2\" width=\"64\" \/><\/colgroup>\n<tbody>\n<tr>\n<td colspan=\"3\">Metrics<\/td>\n<td colspan=\"2\">Tools<\/td>\n<\/tr>\n<tr>\n<td>Category<\/td>\n<td>Metric<\/td>\n<td>Comment<\/td>\n<td><a href=\"http:\/\/msquaredtechnologies.com\/m2rsm\/index.html\" target=\"_blank\" rel=\"noopener\">RSM<\/a><\/td>\n<td>Sonar<\/td>\n<\/tr>\n<tr>\n<td>Function Metrics<\/td>\n<td>LOC Lines of Code<\/td>\n<td>Per Function, All Functions<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>eLOC (Effective LOC)<\/td>\n<td>Per Function, All Functions<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>lLOC (Logical Statements LOC)<\/td>\n<td>Per Function, All Functions<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>FP Function Points Derived from LOC metrics<\/td>\n<td>Per Function, All Functions<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Comments Lines<\/td>\n<td>Per Function, All Functions<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Blank Lines<\/td>\n<td>Per Function, All Functions<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Physical Lines<\/td>\n<td>Per Function, All Functions<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of Input Parameters<\/td>\n<td>Per Function,<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of Return Points<\/td>\n<td>Per Function,<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Interface Complexity (Parameters + Returns)<\/td>\n<td>Per Function,<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Cyclomatic Complexity Logical Branching<\/td>\n<td>Per Function, All Functions<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Functional Complexity (Interface + Cyclomatic)<\/td>\n<td>Per Function, All Functions<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Functional Quality Analysis<\/td>\n<td>Per Function,<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of functions Total, Average, Maximum and Minimums<\/td>\n<td>All Functions<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Logical Lines<\/td>\n<td>All Functions<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Return Points<\/td>\n<td>All Functions<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Function Parameters<\/td>\n<td>All Functions<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Total Quality Profile<\/td>\n<td>All Functions<\/td>\n<td>Yes<\/td>\n<td>?<\/td>\n<\/tr>\n<tr>\n<td>Class Metrics<\/td>\n<td>Number of public, private, protected data attributes<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of public, private, protected methods<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Template Type<\/td>\n<td>Per Class,<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Inheritance<\/td>\n<td>Per Class,<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Depth of Inheritance Tree<\/td>\n<td>Per Class,<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of derived child classes per base class<\/td>\n<td>Per Class,<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>LOC Lines of Code<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>eLOC (Effective LOC)<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>lLOC (Logical Statements LOC)<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Comments Lines<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Blank Lines<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Physical Lines<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of Input Parameters<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of Return Points<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Interface Complexity (Parameters + Returns)<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Cyclomatic Complexity Logical Branching<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Class Complexity (Interface + Cyclomatic)<\/td>\n<td>Per Class, All Classes<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Class Quality Analysis RSM Quality Analysis<\/td>\n<td>Per Class,<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Total number of classes<\/td>\n<td>All Classes<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Inheritance Tree<\/td>\n<td>All Classes<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of Base Classes<\/td>\n<td>All Classes<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of Derived Classes<\/td>\n<td>All Classes<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Derived\/Base Class Ratio<\/td>\n<td>All Classes<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Maximum and Average Inheritance Depth<\/td>\n<td>All Classes<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Maximum and Average Number of Child Classes<\/td>\n<td>All Classes<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Total Quality Profile<\/td>\n<td>All Classes<\/td>\n<td>Yes<\/td>\n<td>?<\/td>\n<\/tr>\n<tr>\n<td>Namespace or Package Metrics<\/td>\n<td>Number of classes<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of functions<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Average functions per class<\/td>\n<td>Per Namespace,<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of public, private, protected data attributes<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of public, private, protected methods<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>LOC Lines of Code<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>eLOC (Effective LOC)<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>lLOC (Logical Statements LOC)<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Comments Lines<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Blank Lines<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Physical Lines<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of Input Parameters<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of Return Points<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Interface Complexity (Parameters + Returns)<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Cyclomatic Complexity Logical Branching<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Package\/Namespace Complexity (Interface + Cyclomatic)<\/td>\n<td>Per Namespace, All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Quality Analysis RSM Quality Analysis<\/td>\n<td>Per Namespace,<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Total Quality Profile<\/td>\n<td>All Namespace\/Packages<\/td>\n<td>Yes<\/td>\n<td>?<\/td>\n<\/tr>\n<tr>\n<td>File Metrics<\/td>\n<td>LOC Lines of Code<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>eLOC (Effective LOC)<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>lLOC (Logical Statements LOC)<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>FP Function Points Derived from LOC<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Comments Lines<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Blank Lines<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Logical and Physical Lines<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Comment and White space percentages<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Average Character line length<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Memory Allocation and De-allocation metric<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Language Keyword use<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Language Construct use<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Extract Comments per file for understandability rating and spell checking<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Extract Strings per file for spell checking<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Create files in line numbered format for code reviews<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Number of Quality Notices per file<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Metrics differentials between two file version<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td>Project Metrics<\/td>\n<td>Total LOC, eLOC, lLOC, Comment, Blanks, Lines<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>FP Function Points Derived from LOC metrics<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Total Function Metrics<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Total Class Metrics<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Total Namespace Metrics<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Inheritance Tree and Metrics<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Language Keywords, constructs and metrics<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Quality Profile<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>?<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Metric Estimation Factors for software estimates<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Total Language Metrics Example<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Total C, C++ and Header Files<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Total Java Files<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Total Number of Files<\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td>Baseline Metric Differential<\/td>\n<td><\/td>\n<td><\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Metrics Tools Category Metric Comment RSM Sonar Function Metrics LOC Lines of Code Per Function, All Functions Yes Yes eLOC (Effective LOC) Per Function, All Functions Yes Yes lLOC (Logical&#8230; <\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[10],"tags":[4392,4395,4394,4396,4393,516],"class_list":["post-4503","post","type-post","status-publish","format-standard","hentry","category-tools-comparison","tag-compare-between-rsm-and-sonar","tag-difference-between-rsm-and-sonar","tag-rsm","tag-rsm-and-sonar-comparision","tag-rsm-vs-sonar","tag-sonar"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/4503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=4503"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/4503\/revisions"}],"predecessor-version":[{"id":4504,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/4503\/revisions\/4504"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=4503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=4503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=4503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}