HALSTEAD METRICS
Program Length | Program
Volume | Program Difficulty
Intelligent Content |
Programming Effort | Error Estimate |
Programming Time
For all the Halstead Metrics the following is true:
n1 = count of unique operators
n2 = count of unique operands
N1 = total number of operators
N2 = total number of operands
The program vocabulary, n, is given by n = n1+n2
Program length (N)
Handle: Program Length
Description: This is a Halstead metric that includes the total number of
operator occurrences and total number of operand occurrences.
Observation: This metric is generated with McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one operator or operand - one count. N = N1 +
N2.
Range: No maximum exists.
Usage: None currently.
Relationship: It is a measure of size.
Threshold: No known threshold.
Validation: None known.
+ Top
Program volume (V)
Handle: Program Volume
Description: This is a Halstead metric that contains the minimum number
of bits required for coding the program.
Observation: This metric is generated with McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is V = N * log n.
Range: Unknown.
Usage: None currently.
Relationship: Related to effort.
Threshold: None.
Validation: None known.
+ Top
Program level (L)
Handle: Program Level
Description: Level at which the program can be understood.
Observation: This metric is generated with McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is L=(2/n1) * (n2/N2).
Range: Greater than 0.
Usage: None known.
Relationship: Unknown.
Threshold: Unknown.
Validation: One research effort identifies it as the best predictor of
error when measured against McCabe complexity metrics and other Halstead
metrics.
+ Top
Program difficulty (D)
Handle: Program Difficulty
Description: Level of difficulty in the program.
Observation: This metric is generated with McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is D=1/L.
Range: Greater than 0.
Usage: None known.
Relationship: Unknown.
Threshold: Less than .38 suggests error free code.
Validation: None.
+ Top
Intelligent content (I)
Handle: Intelligent Content
Description: Complexity of a given algorithm independent of the language
used to express the algorithm.
Observation: This metric is generated with McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is unknown.
Range: Unknown.
Usage: None, currently
Relationship: Unknown.
Threshold: Unknown.
Validation: None known.
+ Top
Programming Effort (E)
Handle: Programming Effort
Description: Estimated mental effort required to develop the program.
Observation: This metric is generated with McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is E = D * V.
Range: Unknown.
Usage: None, currently.
Relationship: Unknown.
Threshold: Unknown.
Validation: None currently.
+ Top
Error Estimate (B)
Handle: Error estimate
Description: Estimated number of errors in the program.
Observation: This metric is generated with McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is unknown.
Range: Unlimited.
Usage: None, currently.
Relationship: Unknown.
Threshold: Unknown.
Validation: None, currently.
+ Top
Programming Time (T)
Handle: Programming time
Description: Estimated amount of time to implement the algorithm.
Observation: This metric is generated with McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is T= E/18.
Range: Unlimited.
Usage: None, currently.
Relationship: Unknown.
Threshold: Unknown.
Validation: None, currently.
+ Top
|