The Power of 10 Rules were created in 2006 by Gerard J. Holzmann of the NASA/JPL Laboratory for Reliable Software. The rules are intended to eliminate certain C coding practices which make code difficult to review or statically analyze. These rules are a complement to the MISRA C guidelines and have been incorporated into the greater set of JPL coding standards.

Rules

The ten rules are: Avoid complex flow constructs, such as goto and recursion. All loops must have fixed bounds. This prevents runaway code. Avoid heap memory allocation. Restrict functions to a single printed page. Use a minimum of two runtime assertions per function. Restrict the scope of data to the smallest possible. Check the return value of all non-void functions, or cast to void to indicate the return value is useless. Use the preprocessor sparingly. Limit pointer use to a single dereference, and do not use function pointers. Compile with all possible warnings active; all warnings should then be addressed before release of the software.

The Power of 10: Rules for Developing Safety-Critical Code

Uses

The NASA study of the Toyota electronic throttle control firmware found at least 243 violations of these rules.

The Power of 10: Rules for Developing Safety-Critical Code

See also

Life critical system

Coding conventions

Software quality

Software assurance

Further reading

References

External links

Open Source Satellite: How do you make software that is reliable enough for space missions?

The Power of 10: Rules for Developing Safety-Critical Code

C (programming language) Programming principles