CS 435 - Week 13 Lecture 1 - 2014-04-22
Metrics... (from Jalote Ch. 7)
* LOC, KLOC
* Jalote mentions a standard definition:
non-comment, non-blank lines
* often: generally? only new or modified lines
are counted
* heavily used, although it has shortcomings
* another size metric: Halstead's Volume
* proposes: basing metrics on the number
of OPERATORS and OPERANDS
* n1: number of distinct operators
* n2: number of distinct operands
* N1: total occurrences of operators
* N2: total occurrences of operands
* Vocabulary n of a program: n = n1 + n2
* Length N of a program: N = N1 + N2
* Volume V = N log2 (n)
* "represents the minimum number of bits
necessary to represent the program"
* but this is considered a size metric;
* experiments have shown Halstead's volume
is highly correlated with the size in
LOC?!
* some COMPLEXITY metrics:
cyclomatic complexity
* perhaps the most widely-used measure?
* rep. program as a control flow graph
* nodes n: decisions
* edges e: where control can transfer based on
a decision
* p: connected components
* cyclomatic complexity:
V(G) = e - n + p
which can be shown to be the same as:
* number of linearly independent cycles in the
graph
which can be shown to be the same as
* number of decisions in the program plus 1