Software Assumptions Failure Tolerance: Role, Strategies, and Visions
Vincenzo De Florio

TL;DR
This paper discusses the importance of managing assumptions in software execution, highlighting risks of assumption failures, and proposes strategies and a holistic approach to improve assumption handling in software development.
Contribution
It introduces a comprehensive view on assumption failures, identifies dangerous consequences, and proposes strategies and a vision for better assumption management in software systems.
Findings
Assumption failures can lead to significant software vulnerabilities.
Current tools often hide or discard critical assumptions.
A holistic approach can improve software robustness against assumption failures.
Abstract
At our behest or otherwise, while our software is being executed, a huge variety of design assumptions is continuously matched with the truth of the current condition. While standards and tools exist to express and verify some of these assumptions, in practice most of them end up being either sifted off or hidden between the lines of our codes. Across the system layers, a complex and at times obscure web of assumptions determines the quality of the match of our software with its deployment platforms and run-time environments. Our position is that it becomes increasingly important being able to design software systems with architectural and structuring techniques that allow software to be decomposed to reduce its complexity, but without hiding in the process vital hypotheses and assumptions. In this paper we discuss this problem, introduce three potentially dangerous consequences of its…
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
TopicsAdvanced Software Engineering Methodologies · Software System Performance and Reliability · Software Engineering Research
