The Multiple Facets of Software Diversity: Recent Developments in Year 2000 and Beyond
Benoit Baudry (INRIA - IRISA), Martin Monperrus (INRIA Lille - Nord, Europe)

TL;DR
This paper provides a comprehensive survey of recent developments in software diversity since 2000, covering classical and modern approaches across fault tolerance, security, and software engineering, highlighting the field's broadening scope.
Contribution
It offers an inclusive overview of software diversity, integrating classical, cybersecurity, natural diversity, and management perspectives, emphasizing recent advances and unifying the field.
Findings
Expands understanding of software diversity's multiple facets.
Highlights recent advances in automated and managed diversity.
Connects classical and modern approaches across various domains.
Abstract
Early experiments with software diversity in the mid 1970's investigated N-version programming and recovery blocks to increase the reliability of embedded systems. Four decades later, the literature about software diversity has expanded in multiple directions: goals (fault-tolerance, security, software engineering); means (managed or automated diversity) and analytical studies (quantification of diversity and its impact). Our paper contributes to the field of software diversity as the first paper that adopts an inclusive vision of the area, with an emphasis on the most recent advances in the field. This survey includes classical work about design and data diversity for fault tolerance, as well as the cybersecurity literature that investigates randomization at different system levels. It broadens this standard scope of diversity, to include the study and exploitation of natural diversity…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Reliability and Analysis Research · Distributed systems and fault tolerance · Advanced Software Engineering Methodologies
