software diversity