Metric-Halstead.Effort

Halstead Effort

Required inputs: RFG

Let

  • n1 = the number of different operators
  • n2 = the number of different operands
  • N1 = the total number of operators
  • N2 = the total number of operands
  • n = n1 + n2 (vocabulary)
  • N = N1 + N2 (program length)
  • V = N * log2(n) (volume)
  • D = (n1/2)*(N2/n2) (difficulty)
  • E = D * V (effort)

For more information on what is considered an operator please refer to the documentation (Project Configuration / Language Schema / Language Representation for C / Metrics / Halstead metrics).

Possible Messages

This rule has no predefined messages.

Options

display_name

display_name : str | None = 'Halstead Effort'

Description of the metric shown in the dashboard. If None, rfg_metric_name is used.
 

max_value

max_value : float | None = None

Maximum allowed value. None if unlimited.
 

min_value

min_value : float | None = None

Minimum allowed value. None if unlimited.
 

rfg_metric_name

rfg_metric_name : str = 'Metric.Halstead.Effort'

Name of the node attribute storing the metric value in the RFG.