diverse programming

views updated

diverse programming (n-version programming) The implementation to a common specification of two (or more) different versions of a program, usually using two completely different teams of programmers. The purpose is to create versions of the program that are unlikely to have the same faults. On comparison of the two programs, identification of any differences can point to errors that occurred in interpreting the specification, errors in design, and errors during implementation.

The use of diverse programming inevitably leads to an increase in the development cost of a software system, but this is compensated by an increase in confidence in the quality of the software and often leads to a lower cost in validation, verification, and testing.