Automatic Repair of Software Systems

Emil Vassev, Paddy Nixon, Mike Hinchey, Benoit Gaudin

Research output: A Conference proceeding or a Chapter in BookEntry for encyclopedia/dictionarypeer-review


Software maintenance nowadays comprises the largest portion of the total cost and effort of the software development process. Usually, maintenance is required to handle issues that arise once a software system is deployed and it targets either correction or enhancement of software. However, addressing changed requirements or fixing software defects requires effort that is proportional to the size of a software program. Complex contemporary software often exceeds millions of lines of code and locating a specific defect or deficiency that led to unexpected behavior can be painful, time consuming, and very expensive. This problem becomes more severe when we talk about critical systems or cases when errors must be fixed at runtime without stopping the program execution. This entry presents techniques and mechanisms for automatic repair of software systems. The aim of such automation is to reduce both diagnosis and repair time and, therefore, to react more quickly to fault occurrences. The entry spans over automatic verification, automatic diagnosis, and automatic repair approaches such as model checking, architecture-, correlation-, probabilistic-, and model-based diagnosis, rollback, genetic programming (GP) and mutations, event filtering, and machine learning.
Original languageEnglish
Title of host publicationEncyclopedia of Software Engineering
Place of PublicationUnited Kingdom
Number of pages2
ISBN (Electronic)9781351249270
ISBN (Print)9781420059779
Publication statusPublished - 2012
Externally publishedYes


Dive into the research topics of 'Automatic Repair of Software Systems'. Together they form a unique fingerprint.

Cite this