| Abstract Classes
|
Number of abstract classes and interfaces.
|
| Abstract Methods
|
Number of abstract methods.
|
| Abstractness
|
Ratio of Number of Abstract Classes (and interfaces) in the analyzed package to the total number of classes in the analyzed
package.
|
| Afferent Coupling
|
Number of classes outside the package that depend on classes inside the package. An indicator of the package’s responsibility.
|
| Average Absolute Complexity
|
Average Absolute Complexity of methods.
|
| Average Binary Decisions
|
Average Binary Decisions of methods.
|
| Average Catch Clauses
|
Average Catch Clauses in methods.
|
| Average Computational Statements
|
Average Computational Statements of methods.
|
| Average Conditional Complexity
|
Average Conditional Complexity of methods.
|
| Average Cyclomatic Complexity
|
Average Cyclomatic Complexity of methods.
|
| Average Depth of Inheritance Hierarchy
|
Average Depth of Inheritance Hierarchy of classes and interfaces.
|
| Average Essential Complexity
|
Average Essential Complexity of methods.
|
| Average Extended Cyclomatic Complexity
|
Average Extended Cyclomatic Complexity of methods.
|
| Average IF Statements
|
Average IF Statements in methods.
|
| Average Lack of Cohesion Per Type
|
Average Lack of Cohesion of classes and interfaces.
|
| Average Loop Statements
|
Average Loop Statements in methods.
|
| Average Maximum Switch Cases
|
Average Maximum Switch Cases in methods.
|
| Average Nested Block Depth
|
Average Nested Block Depth of methods.
|
| Average Parameters
|
Average Parameters in methods.
|
| Average Specialization Index Per Type
|
Average Specialization Index of classes and interfaces.
|
| Average Subtypes
|
Average Subtypes in methods.
|
| Average Switch Cases
|
Average Switch Cases in methods.
|
| Average Switch Statements
|
Average Switch Statements in methods.
|
| Average Unique Method Calls
|
Average Unique Method Calls in methods.
|
| Blank Lines
|
Number of blank lines of source (sequence number area content is ignored).
|
| Comments Ratio
|
Number of Comments divided by Lines of Code.
|
| Constructors
|
Number of constructors.
|
| Efferent Coupling
|
Number of classes inside the package that depend on classes outside the package. An indicator of the package’s independence.
|
| Error Estimate
|
B = E**(2/3) / 3000, where E is Programming Effort.
|
| Executable Statements
|
All assignments, function calls (alone on a line), calls, returns, IF, DO, FOR, CHOOSE, EXIT, CONTINUE, and GOTO statements.
|
| Fields
|
Number of fields.
|
| 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.
|
| Import Statements
|
Number of import statements.
|
| Include Statements
|
Number of include statements.
|
| Instability
|
Ratio of Efferent Coupling (Ce) to total coupling (Ce + Ca), such that I = Ce / (Ce + Ca). An indicator of the package’s resilience
to change.
|
| 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.
|
| Interfaces
|
Number of interfaces.
|
| 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 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.
|
| 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.
|
| Methods
|
Number of methods.
|
| Normalized Distance
|
|A + I - 1|, where A is the ratio of abstract types to all types defined in the package and I is Instability. An indicator
of the package’s balance between abstractness and stability.
|
| Number of Comments
|
Number of lines of source containing comments, including inline comments placed on lines with statements.
|
| 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.
|
| Overridden Methods
|
Number of overridden methods.
|
| 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.
|
| Programming Time
|
T = E / 18, where E is the Programming Effort and 18 is Stroud’s Number. Estimated amount of time required to implement the
algorithm, in seconds.
|
| Response for Class
|
Response for class.
|
| Source Lines
|
Number of lines of source.
|
| Static Fields
|
Number of static fields.
|
| Static Methods
|
Number of static methods.
|
| 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.
|
| Weighted Methods
|
Number of weighted methods.
|