NPATH is the number of acyclic execution paths through a function.
Also, when NPATH is correlated to NCSL, TOKENS, and V(G), the resulting co relations are 0.
Since NPATH measures the functional complexity and testability of code, it follows that NPATH can be used in determining the level of review/inspection of a function.
The rank order of the functions based on NPATH is being used by developers to allocate testing resources using this criterion.
NPATH is also being used to establish a functional design criterion and identify functions appropriate for redesign early in the development process.
Any decision to allocate inspections, testing, or design effort based on NPATH must also take into account
the criticality of the function: Whereas even moderately high NPATH values in a heavily used function would identify the function for thorough inspection and testing as well as possibly redesign, a noncritical function of similar NPATH complexity might not warrant the same level of attention; and
Thus, the use of NPATH cannot provide absolute principles for software development, but is a useful adjunct to traditional and intuitive measures of software complexity.
Many strategies to reduce the NPATH complexity of functions are being used by software developers.
To reduce NPATH for a function, divide the function into blocks of code that logically belong together.
This is not true in all cases; for example, in the case of sequential code, NPATH is not changed by making the sequential code a function and then calling the function.
Another way to reduce NPATH for a function is to implement multiple if statements via the switch and case statements.