Forcing Software Diversity by Making Diverse Design Decisions – an Experimental Investigation
by R. Feldt
When developing software versions for a multi-version system, the probability for coincident failures may be decreased by forcing the development efforts to be different by making diverse design decisions. There are theorems showing that the probability is minimized by making as diverse design decisions as possible but it is not known if the assumptions made in proving the theorems are valid in practice. To investigate this we have developed 435 versions of a software controller for an aircraft braking system. The versions were developed using genetic programming. Analyses of the failure behavior of these versions showed that the assumptions of failure independence among the decisions were valid, on average, for 74% of the test cases. The assumption of indifference between methodologies were not valid in a single case which seems to be the major cause invalidating the theorem. Thus, if we are not indifferent between design decisions, it is not guaranteed that increased diversity of design decisions will decrease the probability of coincident failures.


  author =    "Robert Feldt",
  title =     {Forcing Software Diversity by Making Diverse Design Decisions – an Experimental Investigation},
  year =      "1998",
  institution = "Dept. of Computer Engineering, Chalmers University of Technology, Gothenburg",
  number =    "Tech. report 98-46",
  keywords =  "Automated Programming; Genetic Programming; Design Diversity; Controlled Experiment",
  url =       "",