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} }
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…
24 Citations
Automatic Software Repair
- Computer ScienceACM Comput. Surv.
- 2018
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
- Computer Science
- 2020
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
- Computer ScienceJ. Cases Inf. Technol.
- 2020
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
- Computer ScienceESEC/SIGSOFT FSE
- 2021
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
- Computer ScienceIEEE Transactions on Software Engineering
- 2021
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
- Computer ScienceSynthese
- 2019
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
- Computer ScienceArXiv
- 2015
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
- Computer Science
- 2018
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.
References
SHOWING 1-10 OF 40 REFERENCES
Design of self-checking software
- Computer Science
- 1975
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
- Computer Science
- 2000
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
- Computer ScienceIEEE Transactions on Software Engineering
- 1975
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
- Computer ScienceIEEE Software
- 2016
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
- Computer Science
- 2003
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
- Computer ScienceSOSP '09
- 2009
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
- Computer ScienceOOPSLA '03
- 2003
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
- Computer ScienceECOOP
- 1998
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
- Computer Science
- 2003
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
- Computer ScienceICSE
- 2014
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.