Principles of Antifragile Software

@article{Martin2017PrinciplesOA,
  title={Principles of Antifragile Software},
  author={Monperrus Martin},
  journal={Companion to the first International Conference on the Art, Science and Engineering of Programming},
  year={2017}
}
  • Monperrus Martin
  • Published 11 April 2014
  • Computer Science
  • Companion to the first International Conference on the Art, Science and Engineering of Programming
There are many software engineering concepts and techniques related to software errors. But is this enough? Have we already completely explored the software engineering noosphere with respect to errors and reliability? In this paper, I discuss an novel concept, called "software antifragility", that is unconventional and has the capacity to improve the way we engineer errors and dependability in a disruptive manner. This paper first discusses the foundations of software antifragilty, from… 
Automatic Software Repair
TLDR
This article considers behavioral repair where test suites, contracts, models, and crashing inputs are taken as oracle, and state repair, also known as runtime repair or runtime recovery, with techniques such as checkpoint and restart, reconfiguration, and invariant restoration.
Automatic Software Repair: a Bibliography
TLDR
A novel and structured overview of the diversity of bug oracles and repair operators used in the literature is provided, with techniques such as checkpoint and restart, reconfiguration, invariant restoration.
A Game Theoretic Approach for Quality Assurance in Software Systems Using Antifragility-Based Learning Hooks
TLDR
An innovative approach is proposed which uses a fault injection methodology to perform the task of quality assurance and incorporates the anti-fragility aspects into the software system within the existing framework of object-oriented development.
Software robustness: a survey, a theory, and prospects
TLDR
It is theorised that for failed disruption propagation to occur, a necessary condition is that the code region where the disruption occurs is composed with or succeeded by a subsequent code region that suffers entropy loss over all executions.
A Chaos Engineering System for Live Analysis and Falsification of Exception-Handling in the JVM
TLDR
The results show that <sc>ChaosMachine</sc> reveals both strengths and weaknesses of the resilience code of a software system at the level of exception handling.
A theory of change for prioritised resilient and evolvable software systems
TLDR
A full formalisation of operations on software systems inspired by the Alchourrón–Gärdenfors–Makinson (AGM) paradigm for belief revision of human epistemic states is proposed, representing specifications as finite sets of formulas equipped with a priority relation that models functional entrenchment of properties.
Software that Learns from its Own Failures
TLDR
A new paradigm in which software systems learn from their own failures is proposed, in which they have a constant awareness of their own state and health and automatically explore alternative recovery strategies inferred from past successful and failed executions.
Simulation of chaos engineering for Internet-scale software with ns-3 TAI
TLDR
This paper seeks to attain a simplified illustration about these submitted studies of chaos engineering applied on a simulated Netflix environment in ns-3 with the intention to provide some enlightenment for the principles of chaos Engineering.
...
1
2
3
...

References

SHOWING 1-10 OF 40 REFERENCES
Design of self-checking software
TLDR
This paper discusses different techniques for constructing a piece of self-checking software for systems where ultra-reliability is required and overhead can be reduced considerably by implementing these techniques in hardware.
Fundamental Concepts of Dependability
TLDR
The Origins and Integration of the Concepts Critical Applications was held in 1989 fostered the interaction of the dependability and security communities, and advanced the integration of security into the framework of dependable computing.
System structure for software fault tolerance
  • B. Randell
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1975
TLDR
The aim is to facilitate the provision of dependable error detection and recovery facilities which can cope with errors caused by residual design inadequacies, particularly in the system software, rather than merely the occasional malfunctioning of hardware components.
Chaos Engineering
TLDR
Netflix engineers call the approach chaos engineering several principles underlying it and have used it to run experiments to verify such systems' reliability.
ICSE 2003 WADS Panel: Fault Tolerance and Self-Healing
The objective of this panel was to discuss, in the context of software architectures, the differences between the existing area of fault tolerance, and the upcoming area of self-healing. The panel
Automatically patching errors in deployed software
TLDR
Aspects of ClearView that make it particularly appropriate for this context include its ability to generate patches without human intervention, apply and remove patchesto and from running applications without requiring restarts or otherwise perturbing the execution, and identify and discard ineffective or damaging patches by evaluating the continued behavior of patched applications.
Automatic detection and repair of errors in data structures
We present a system that accepts a specification of key data structure consistency constraints, then dynamically detects and repairs violations of these constraints, enabling the program to continue
A Study of The Fragile Base Class Problem
TLDR
This paper formulate and formally prove a flexibility theorem demonstrating that the restrictions the authors impose on inheritance are sufficient to permit safe substitution of a base class with its revision in presence of extension classes.
WADS Panel : Fault Tolerance and Self-Healing
The objective of this panel was to discuss, in the context of software architectures, the differences between the existing area of fault tolerance, and the upcoming area of self-healing. The panel
A critical review of "automatic patch generation learned from human-written patches": essay on the problem statement and the evaluation of automatic software repair
TLDR
A critical review of Kim et al.'s PAR, a novel template-based approach for fixing Java bugs, and the main evaluation criteria of automatic software repair: understandability, correctness and completeness shows that depending on how one sets up the repair scenario, the evaluation goals may be contradictory.
...
1
2
3
4
...