SEApr 11, 2016

Software Assumptions Failure Tolerance: Role, Strategies, and Visions

arXiv:1605.02040v124 citations
Originality Synthesis-oriented
AI Analysis

This addresses software engineering challenges for developers and system architects, but it is incremental as it builds on existing concepts without introducing a new paradigm.

The paper tackles the problem of hidden assumptions in software design that affect system reliability, proposing strategies to manage them and a vision for a holistic development approach.

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 denial, and propose three strategies to facilitate their treatment. Finally we propose our vision towards a new holistic approach to software development to overcome the shortcomings offered by fragmented views to the problem of assumption failures.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes