Download : http://www.scitools.com/download/latest.php

Understand is a static analysis tool for maintaining, measuring, & analyzing critical or large code bases We've noticed that some basic metrics are more useful to engineers then others, such as number of lines of code, number of classes etc. while other metrics are usually more helpful for management and code analysis.
  • AltAvgCountLineBlank -- Average number of blank lines for all nested functions or methods, including inactive regions.
  • AltAvgCountLineCode -- Average number of lines containing source code for all nested functions or methods, including inactive regions.
  • AltAvgCountLineComment -- Average number of lines containing comment for all nested functions or methods, including inactive regions.
  • AltCountLineBlank -- Number of blank lines, including in inactive regions.
  • AltCountLineCode -- Number of lines containing source code, including inactive regions.
  • AltCountLineComment -- Number of lines containing comment, including inactive regions.
  • AvgCyclomatic -- Average cyclomatic complexity for all nested functions or methods.
  • AvgCyclomaticModified -- Average modified cyclomatic complexity for all nested functions or methods.
  • AvgCyclomaticStrict -- Average strict cyclomatic complexity for all nested functions or methods.
  • AvgEssential -- Average essential cyclomatic complexity for all nested functions or methods.
  • AvgLine -- Average number of lines for all nested functions or methods.
  • AvgLineBlank -- Average number of blank for all nested functions or methods.
  • AvgLineCode -- Average number of lines containing source code for all nested functions or methods.
  • AvgLineComment -- Average number of lines containing comment for all nested functions or methods.
  • CountClassBase -- Number of immediate base classes.
  • CountClassCoupled -- Number of other classes coupled to. Coupling means using a type, data, or member from that class. Any number of couplings to a given class counts as 1 towards the metric total.
  • CountClassDerived -- Number of immediate subclasses. (i.e. the number of classes one level down the inheritance tree from this class).
  • CountDeclClass -- Number of classes.
  • CountDeclClassMethod -- Number of class methods.
  • CountDeclClassVariable -- Number of class variables.
  • CountDeclFile -- Number of files. Note that this doesn't count files brought in via includes unless they are also defined in the Understand project file.
  • CountDeclFileCode -- Number of code files.
  • CountDeclFileHeader -- Number of header files.
  • CountDeclFunction -- Number of functions.
  • CountDeclInstanceMethod -- Number of instance methods.
  • CountDeclInstanceVariable -- Number of instance variables.
  • CountDeclInstanceVariablePrivate -- Number of private instance variables.
  • CountDeclInstanceVariableProtected -- Number of protected instance variables.
  • CountDeclInstanceVariablePublic -- Number of public instance variables.
  • CountDeclLibunit -- Number of library units. A "library unit" in Ada is a top-level (not nested) Ada program unit.
  • CountDeclMethod -- Number of local (not inherited) methods.
  • CountDeclMethodAll -- Number of methods, including inherited ones.
  • CountDeclMethodConst -- Number of local const methods.
  • CountDeclMethodDefault -- Number of local default visibility methods.
  • CountDeclMethodFriend -- Number of local (not inherited) friend methods.
  • CountDeclMethodPrivate -- Number of local (not inherited) private methods.
  • CountDeclMethodProtected -- Number of local protected methods.
  • CountDeclMethodPublic -- Number of local (not inherited) public methods.
  • CountDeclModule -- Number of modules.
  • CountDeclProgUnit -- Number of program units.
  • CountDeclSubprogram -- Number of subprograms.
  • CountInput -- The number of inputs a function uses. Inputs include parameters and global variables that are used in the function. Of the two general approachs to calculating FANIN (informational versus structural) ours is the informational approach.
  • CountLine -- Number of all lines.
  • CountLineBlank -- Number of blank lines.
  • CountLineCode -- The number of lines that contain source code. Note that a line can contain source and a comment and thus count towards multiple metrics. For Classes this is the sum of the CountLineCode for the member functions of the class.
  • CountLineCodeDecl -- Number of lines containing declarative source code. Note that a line can be declarative and executable - int i =0; for instance.
  • CountLineCodeExe -- Number of lines containing executable source code.
  • CountLineComment -- Number of lines containing comment. This can overlap with other code counting metrics. For instance int j = 1; // comment has a comment, is a source line, is an executable source line, and a declarative source line.
  • CountLineInactive -- This is the number of lines that are inactive from the view of the preprocessor. In other words, they are on the FALSE side of a #if or #ifdef preprocessor directive.
  • CountLinePreprocessor -- Number of preprocessor lines.
  • CountOutput -- The number of outputs that are SET. This can be parameters or global variables. Of the two general approachs to calculating FANOUT (informational versus structural) ours is the informational approach.
  • CountPath -- Number of unique paths though a body of code, not counting abnormal exits or gotos.
  • CountSemicolon -- Number of semicolons.
  • CountStmt -- Number of declarative plus executable statements.
  • CountStmtDecl -- Number of declarative statements. Note that there can be overlap here with executable statements - int i = 0; for instance.
  • CountStmtEmpty -- Number of empty statements.Note that there can be overlap here with executable statements - int i = 0; for instance.
  • CountStmtExe -- Number of executable statements.Note that there can be overlap with declarative statements (int i = 0; )
  • Cyclomatic -- Cyclomatic complexity as per the original NIST paper on the subject. Edges - Nodes + Connected Components.
  • CyclomaticModified -- Modified cyclomatic complexity.The Cyclomatic Complexity except that each decision in a multi-decision structure (switch in C/Java, Case in Ada, computed Goto and arithmetic if in FORTRAN) statement is not counted and instead the entire multi-way decision structure counts as 1
  • CyclomaticStrict -- Strict cyclomatic complexity. The Cyclomatic Complexity with logical conjunction and logical and in conditional expressions also adding 1 to the complexity for each of their occurrences.
  • Essential -- Essential complexity.
  • Knots -- Measure of overlapping jumps.
  • MaxCyclomatic -- Maximum cyclomatic complexity of all nested functions or methods.
  • MaxCyclomaticModified -- Maximum modified cyclomatic complexity of all nested functions or methods.
  • MaxCyclomaticStrict -- Maximum strict cyclomatic complexity of all nested functions or methods.
  • MaxEssentialKnots -- Maximum Knots after structured programming constructs have been removed.
  • MaxInheritanceTree -- The depth of a class within the inheritance hierarchy is the maximum number of nodes from the class node to the root of the inheritance tree. The root node has a DIT of 0. The deeper within the hierarchy, the more methods the class can inherit, increasing its complexity.
  • MaxNesting -- Maximum nesting level of control constructs (if, while, for, switch, etc.) in the function.
  • MinEssentialKnots -- Minimum Knots after structured programming constructs have been removed.
  • RatioCommentToCode -- Ratio of number of comment lines to number of code lines.Note that because some lines are both code and comment, this could easily yield percentages higher than 100
  • PercentLackOfCohesion -- 100% minus average cohesion for class data members. Calculates what percentage of class methods use a given class instance variable. To calculate, average percentages for all of that class'es instance variables and subtract from 100%. A lower percentage means higher cohesion between class data and methods.
  • SumCyclomatic -- Sum of cyclomatic complexity of all nested functions or methods.
  • SumCyclomaticModified -- Sum of modified cyclomatic complexity of all nested functions or methods.
  • SumCyclomaticStrict -- Sum of strict cyclomatic complexity of all nested functions or methods.
  • SumEssential -- Sum of essential complexity of all nested functions or methods.

Share
Related Documents
  1. Software Test Planning Metrics (2822)
  2. [Free] LocMetrics : Metrics tool for C#, C++, Java, and SQL (4473)
  3. Experience with the cost of different coverage goals for testing (1487)
  4. Peer Code Review Process (2096)
  5. [Paid] Vigilant Sentry : a static code analyzer for C/C++ (2184)
  6. [Free] SourceMonitor : software source code Review Tool (2122)
  7. [Paid] Ada-ASSURED : Testing and reviewing for coding style (1806)
  8. The Value and Importance of Code Review (815)
  9. Static Analysis and Statistical Analysis (1892)
  10. Code Analysis in an Agile (1704)
  11. [Webinar] Are Code Reviews Keeping Pace with Modern Development Practices? (781)
  12. Trimming the Test Suite:Using Coverage Analysis to Minimize Retesting (1440)
  13. Software Portfolio Analysis With Function Point Metrics (1187)
  14. Static analysis and ROI (991)
  15. Examining the Code (1318)
  16. Statement Coverage, decision coverage (2372)
  17. The Value of an Expert Review and 5-Step Review Checklist (1256)
  18. 44 Metrics for Test Case Review Effectiveness (1898)
  19. [Free] ftnchek : Static analyzer for Fortran (1563)
  20. IPL WhitePaper - Structural Coverage Metrics (1591)