Metric | Description |
---|---|

Absolute Complexity | Absolute Complexity of methods. |

Binary Decisions | Binary Decisions of methods. |

Blank Lines | Number of blank lines of source (sequence number area content is ignored). |

Catch Clauses | Number of catch clauses. |

Computational Statements | Number of statements performing arithmetic calculations. |

Conditional Complexity | Binary Decisions, plus Unique Operands in Conditions. |

Conditional Statements | Number of branching statements with nested statements executed under certain conditions. |

Cyclomatic Complexity | v(G) = e - n + 2, where v(G) is the cyclomatic complexity of the flow graph (G) for the program in question, e is the number of edges in G, and n is the number of nodes. Quantity of decision logic. The number of linearly independent paths (minimum number of paths to be tested). v(G) = DE + 1, where DE is the number of binary decisions made in the program. |

Difficulty | D = (n1 / 2) * (N2 / n2), where n1 is Unique Operators, N2 is Operands, and n2 is Unique Operands. |

Essential Complexity | Quantity of unstructured logic (a loop with an exiting GOTO statement, for example). v(G) for reduced graph without D-structured primes. |

Executable Statements | All assignments, function calls (alone on a line), calls, returns, IF, DO, FOR, CHOOSE, EXIT, CONTINUE, and GOTO statements. |

Extended Cyclomatic Complexity | Cyclomatic Complexity, plus Logical Operators in Conditions. Number of all paths in the program. |

Function Calls | Number of function calls. |

Function Points | Lines of Code divided by K, where K depends on the language: Cobol=77, Natural=52, PL/I=67. Estimate of the number of end-user business functions implemented by the program. |

GoTo Statements | Number of GOTO statements, including conditional GOTOs. |

IF Statements | Number of IF statements. |

Intelligent Content | I = L * V, where L is Program Level and V is Program Volume. Complexity of a given algorithm independent of the language used to express the algorithm. |

Lines of Code | Number of lines of code, plus the number of lines of code in included files and any files they include. Comments and blank lines are not counted. |

Lines with Both Comments and Code | Number of lines of source containing both comments and code. |

Lines with Comments | Number of lines of source containing comments, including inline comments placed on lines with statements. |

Logical Operators in Conditions | Number of binary logical operators used in conditions. |

Loop Statements | Number of repetitively executing statements. |

Maintainability Index | MI = 171 - 5.2 * ln (PgmVolume) - 0.23 * ExtCycComp - 16.2 * ln (LOC) + 50 * sin (sqrt (2.46 * CommentLines/SourceLines)), where PgmVolume is Program Volume, ExtCycComp is Extended Cyclomatic Complexity, LOC is Lines of Code, CommentLines is Comment Lines, and SourceLines is Source Lines. |

Maximum Depth of Logic Nesting | Maximum nesting of logic. |

Maximum Switch Cases | Maximum Switch Cases. |

Member Function Calls | Number of member function calls. |

Operands | Number of operand occurrences (N2). Operands are variables and literals used in operators. Compare Unique Operands. |

Operators | Number of operator occurrences (N1). Operators are executable statements and unary and binary operations. Compare Unique Operators. |

Parameters | Number of parameters in method calls. |

Program Length | N = N1 + N2, where N1 is Operators and N2 is Operands. |

Program Level | L = 1 / D, where D is Difficulty. |

Program Volume | V = N * log2(n), where N is Program Length and n is Vocabulary. Minimum number of bits required to code the program. |

Programming Effort | E = V / L, where V is Program Volume and L is Program Level. Estimated mental effort required to develop the program. |

Source Lines | Number of lines of source. |

Switch Cases | Number of SWITCH cases. |

SWITCH/SELECT Statements | Number of SWITCH statements. |

Unique Method Calls | Number of distinct method calls. |

Unique Operands | Number of distinct operands (n2). Operands are variables and literals used in operators. Uniqueness of literals is determined by their notation. Compare Operands. |

Unique Operands in Conditions | Number of distinct operands used in conditions. |

Unique Operators | Number of distinct operators (n1). Operators are executable statements and unary and binary operations. Compare Operators. |

Vocabulary | n = n1 + n2, where n1 is the number of Unique Operators and n2 is the number of Unique Operands. |