Dealing With Software Collapse

Dealing With Software Collapse
复制标题

处理软件崩溃

DOI:
10.1109/mcse.2019.2900945
复制
发表时间:
2019
影响因子:
2.1
通讯作者:
K. Hinsen
K. Hinsen
中科院分区:
计算机科学4区
文献类型:
--
作者:
K. Hinsen

文献摘要

被引文献

相似文献

很有可能你以前从未听说过软件崩溃,原因很简单,这是我两年前在一篇博客文章中自己创造的一个术语。然而,如果你已经从事计算科学几年了,你很有可能经历过软件崩溃,而且可能不是一次愉快的经历。在本文中,我将解释什么是软件崩溃,什么导致它,以及如何管理它发生在您身上的风险。我所说的软件崩溃通常被称为软件腐烂:如果不积极维护,软件最终会停止工作。腐烂的比喻有着悠久的历史,第一个有记载的参考是1983年版的黑客词典[1]。当时,它被一小群计算机专家开玩笑地使用,他们非常了解这种现象,因此一个有趣但技术上不准确的比喻不是问题。今天,它正在更广泛的圈子里讨论,例如在可重复研究的背景下。在我看来,引入一个有用的隐喻来代替传统的幽默隐喻是合适的,因为好的隐喻有助于更好地理解实际发生的事情。腐烂隐喻的主要问题是它把责任推到了错误的部分。如果软件随着时间的推移变得不可用,这并不是因为对该软件的任何更改需要逆转。相反,软件的基础已经发生了很大的变化,从实际的硬件到操作系统,再到编程语言和库,软件已经不再与之兼容。由于不稳定的基础类似于房屋被地震摧毁,而不是腐烂的食物被真菌转化,我认为崩溃是一个合适的比喻。Fig. 1.一个典型的科学软件栈
There is a good chance that you have never heard of software collapse before, for the simple reason that it's a term I have made up myself two years ago in a blog post. However, if you have been doing computational science for a few years, there is a good chance that you have experienced software collapse, and probably it was not a pleasant experience. In this article, I will explain what software collapse is, what causes it, and how you can manage the risk of it happening to you. What I call software collapse is more commonly referred to as software rot: the fact that software stops working eventually if is not actively maintained. The rot metaphor has a long history, the first documented reference being the 1983 edition of the Hacker's Dictionary [1]. Back then, it was used jokingly by a small community of computer experts who understood the phenomenon perfectly well, and therefore a funny but technically inaccurate metaphor was not a problem. Today, it is being discussed in much wider circles, for example in the context of reproducible research. In my opinion, it is appropriate to introduce a useful metaphor in place of the traditional humorous one, because good metaphors contribute to a better understanding of what's actually going on. The main issue with the rot metaphor is that it puts the blame on the wrong piece of the puzzle. If software becomes unusable over time, it's not because of any alteration to that software that needs to be reversed. Rather, it's the foundation on which the software has been built, ranging from the actual hardware via the operating system to programming languages and libraries, that has changed so much that the software is no longer compatible with it. Since unstable foundations resemble how a house is destroyed by an earthquake, rather than how spoiling food is transformed by fungi, I consider collapse an appropriate metaphor. Fig. 1. A typical scientific software stack